Overview
Qualification (Sanity) testing is conducted to ensure that the build / code handed over to QA team is qualified to perform further Functional/Integration testing. In order to perform functional testing on the build / code; all the major functionality must be accessible and there are no obvious errors on main pages. Objective of sanity testing is to validate the testability of the system under consideration to check all the major functionality is accessible and there are no obvious errors. Testing will be performed based on the approved sanity test scripts. A round of qualification test shall be performed after a build is completed and QA is notified.
Entry Criteria
Successful completion of unit testing of all the application modules involved with minimal or no errors. Unit testing log or Unit testing status report from the dev team should be received prior start of the sanity test.
Success Criteria
Successful completion of the tests without any failures and within acceptable time allocation. If any of the modules and/or major dependent functionalities fails during the qualification testing, QA will determine the testability of the system. QA lead will perform discussion on the same with Project Manager and Dev lead. In agreement with PM and Dev Lead, QA lead can partially accept the QA build or reject the build.
Hello, I am starting this blog to share my experience as a software tester. I wish to share the real time challenges in my job and current news about software testing. Thanks!!
Wednesday, August 27, 2008
Friday, August 8, 2008
Software Testing Tools
In this post I am going to explain the different types of Software Testing Tools(Automation) with feature.
1. Funtionality Testing Tools(Capture/playback tools)
a) Capture user operations including keystrokes, mouse activity, and display output.
b) These captured tests form a baseline for future testing of product changes.
c) The tool can automatically play back previously captured tests whenever needed and validate the results by comparing them to the previously saved baseline.
Example: WinRunner, QTP, SilkTest, etc
d) This makes regression testing easier.
2. Memory testing (bounds-checkers):
Memory testing tools are software programs that perform detailed tests of your computer's memory system. Detect memory problems, exceeding array bounds, memory allocated but not freed, reading and using uninitialized memory.
The memory installed in your computer is very sensitive. It's always a good idea to test newly purchased memory for errors and a memory test is always in order if you suspect that you may have a hardware problem.
Example: Memtest86, Memtest86+, Windows Memory Diagnostic, M2K MemScope etc
3. Tools for performance testing of client/server applications:
System performance is generally assessed in terms of response time and throughput rates under differing processing and configuration conditions. Performance testing can serve different purposes. It can demonstrate that the system meets performance criteria. It can compare two systems to find which performs better. Or it can measure what parts of the system or workload cause the system to perform badly. In the diagnostic case, software engineers use tools such as profilers to measure what parts of a device or software contribute most to the poor performance or to establish throughput levels (and thresholds) for maintained acceptable response time. It is critical to the cost performance of a new system, that performance test efforts begin at the inception of the development project and extend through to deployment. The later a performance defect is detected, the higher the cost of remediation. This is true in the case of functional testing, but even more so with performance testing, due to the end-to-end nature of its scope.
Example: Load Runner, Jmeter etc
4. Test case management Tools
1. Provide a user interface for managing tests.
2. Organize tests for ease of use and maintenance
3. Start and manage test execution sessions that run user-selected tests
4. Provide seamless integration with capture/palyback and coverage analysis tools
5. Provide automated test reporting and documentation.
Example: Test Director, Quality Center etc.
5. Defect tracking tools:
1. Used to record, track, and generally assist with the management of defects
2. Submit and update defect reports
3. Generate pre-defined or user-defined management reports
4. Selectively notify users automatically of changes in defect status
5. Provide secured access to all data via user-defined queries.
Example: Bugzilla, Remedy, Bug Tracker, Request Tracker etc
6. Coverage analyzers:
1. Tell us which parts of the product under test have been executed (covered) by the current tests
2. Identifies parts not covered varieties of coverage - statement, decision, … etc.
1. Funtionality Testing Tools(Capture/playback tools)
a) Capture user operations including keystrokes, mouse activity, and display output.
b) These captured tests form a baseline for future testing of product changes.
c) The tool can automatically play back previously captured tests whenever needed and validate the results by comparing them to the previously saved baseline.
Example: WinRunner, QTP, SilkTest, etc
d) This makes regression testing easier.
2. Memory testing (bounds-checkers):
Memory testing tools are software programs that perform detailed tests of your computer's memory system. Detect memory problems, exceeding array bounds, memory allocated but not freed, reading and using uninitialized memory.
The memory installed in your computer is very sensitive. It's always a good idea to test newly purchased memory for errors and a memory test is always in order if you suspect that you may have a hardware problem.
Example: Memtest86, Memtest86+, Windows Memory Diagnostic, M2K MemScope etc
3. Tools for performance testing of client/server applications:
System performance is generally assessed in terms of response time and throughput rates under differing processing and configuration conditions. Performance testing can serve different purposes. It can demonstrate that the system meets performance criteria. It can compare two systems to find which performs better. Or it can measure what parts of the system or workload cause the system to perform badly. In the diagnostic case, software engineers use tools such as profilers to measure what parts of a device or software contribute most to the poor performance or to establish throughput levels (and thresholds) for maintained acceptable response time. It is critical to the cost performance of a new system, that performance test efforts begin at the inception of the development project and extend through to deployment. The later a performance defect is detected, the higher the cost of remediation. This is true in the case of functional testing, but even more so with performance testing, due to the end-to-end nature of its scope.
Example: Load Runner, Jmeter etc
4. Test case management Tools
1. Provide a user interface for managing tests.
2. Organize tests for ease of use and maintenance
3. Start and manage test execution sessions that run user-selected tests
4. Provide seamless integration with capture/palyback and coverage analysis tools
5. Provide automated test reporting and documentation.
Example: Test Director, Quality Center etc.
5. Defect tracking tools:
1. Used to record, track, and generally assist with the management of defects
2. Submit and update defect reports
3. Generate pre-defined or user-defined management reports
4. Selectively notify users automatically of changes in defect status
5. Provide secured access to all data via user-defined queries.
Example: Bugzilla, Remedy, Bug Tracker, Request Tracker etc
6. Coverage analyzers:
1. Tell us which parts of the product under test have been executed (covered) by the current tests
2. Identifies parts not covered varieties of coverage - statement, decision, … etc.
Wednesday, August 6, 2008
Testing and SQL
Lot of times people ask me that "is it necessary to know SQL to become good software Tester? the answer depends on the type of Software you are going to test. Almost all web applications interact with the databases. So if you are testing any web applications you must be knowing the language to access the database. SQL is a standard computer language for accessing and manipulating databases. If you know the SQL you can play with the database.
For example: you are testing an e-commerce website and you want to when exactly the purchase details are inserted into the main table in the databse? User can add products to the cart and then remove them and do many iterations before hi finally purchases the products. But whatever transactions the user does, the data must be saved somewhere. There will be different tables in database which hold data in different phases. When user completes his shopping then the data will be entered into the main table and you might be using some batch process code to insert this data into the main tables.
There are many such scenarios where you must be knowing SQL and database concepts to play with the database. So, if you are planning to enter into the Software Testing field then I suggest you to get yourself familiar with the RDBMS concepts and SQL language.
SQL Data Manipulation Language (DML)
SQL (Structured Query Language) is a syntax for executing queries. But the SQL language also includes a syntax to update, insert, and delete records.
These query and update commands together form the Data Manipulation Language (DML) part of SQL:
* SELECT - extracts data from a database table
* UPDATE - updates data in a database table
* DELETE - deletes data from a database table
* INSERT INTO - inserts new data into a database tab
SQL Data Definition Language (DDL)
The Data Definition Language (DDL) part of SQL permits database tables to be created or deleted. We can also define indexes (keys), specify links between tables, and impose constraints between database tables.
The most important DDL statements in SQL are:
* CREATE TABLE - creates a new database table
* ALTER TABLE - alters (changes) a database table
* DROP TABLE - deletes a database table
* CREATE INDEX - creates an index (search key)
* DROP INDEX - deletes an index
w3schools is a best place to learn basic SQL language. The tutorial is presented very nicely. If you start reading and understanding one by one it will be very easy for you to understand SQL. The best part about w3schools is that you can write some test queries and execute them while learning. Visit the site to learn more.
For example: you are testing an e-commerce website and you want to when exactly the purchase details are inserted into the main table in the databse? User can add products to the cart and then remove them and do many iterations before hi finally purchases the products. But whatever transactions the user does, the data must be saved somewhere. There will be different tables in database which hold data in different phases. When user completes his shopping then the data will be entered into the main table and you might be using some batch process code to insert this data into the main tables.
There are many such scenarios where you must be knowing SQL and database concepts to play with the database. So, if you are planning to enter into the Software Testing field then I suggest you to get yourself familiar with the RDBMS concepts and SQL language.
SQL Data Manipulation Language (DML)
SQL (Structured Query Language) is a syntax for executing queries. But the SQL language also includes a syntax to update, insert, and delete records.
These query and update commands together form the Data Manipulation Language (DML) part of SQL:
* SELECT - extracts data from a database table
* UPDATE - updates data in a database table
* DELETE - deletes data from a database table
* INSERT INTO - inserts new data into a database tab
SQL Data Definition Language (DDL)
The Data Definition Language (DDL) part of SQL permits database tables to be created or deleted. We can also define indexes (keys), specify links between tables, and impose constraints between database tables.
The most important DDL statements in SQL are:
* CREATE TABLE - creates a new database table
* ALTER TABLE - alters (changes) a database table
* DROP TABLE - deletes a database table
* CREATE INDEX - creates an index (search key)
* DROP INDEX - deletes an index
w3schools is a best place to learn basic SQL language. The tutorial is presented very nicely. If you start reading and understanding one by one it will be very easy for you to understand SQL. The best part about w3schools is that you can write some test queries and execute them while learning. Visit the site to learn more.
Subscribe to:
Posts (Atom)

