You are on page 1of 24

Types of Testing.

Testing Life
cycle, Bug Life cycle

Day 4-Session 1
Lavanya.M
Software Testing Life
cycle
Test Plan

Test Design

Test Execution

Test Log

Defect Tracking

Report Generation.
Testing Plan
During this phase Test Strategy, Test Plan, Test Bed will
be created.
A test plan is a systematic approach in testing a system or
software.
The plan should identify:
• Which aspects of the system should be tested?
• Criteria for success.
• The methods and techniques to be used.
• Personnel responsible for the testing.
• Different Test phase and Test Methodologies
• Manual and Automation Testing
• Defect Mgmt, Configuration Mgmt, Risk Mgmt. Etc
• Evaluation & identification – Test, Defect tracking tools
Test Design
During this phase

• Test Scenarios will be identified.


• Test Cases will be prepared.
• Test data and Test scripts prepared.
• Test case reviews will be conducted.
Test Execution

Testers execute the software based on the plans


and test.
Test cases will be executed.

Test Scripts will be tested.


Test Log

A chronological record of all relevant details about


the execution of a test.

Test Results will be analyzed


Defect Tracking

Capture, review and analyze Test Results

Raised the defects and tracking for its closure


Report Generation.

Test summary reports

Test Metrics and process Improvements made

Build release

Receiving acceptance
Bug Life Cycle
Types of Testing
List of the different types of testing that can be implemented are listed below which
will be followed by explanations of the same
 Black Box Testing
Usability Testing
 White Box Testing
Install / Uninstall Testing
 Unit Testing
Recovery Testing
 Incremental Integration Testing
Security Testing
 Integration Testing
Compatibility Testing
 Functional Testing
Exploratory Testing
 System Testing
Ad-hoc Testing
 End-to-End Testing
Comparison Testing
 Sanity Testing
Alpha Testing
 Regression Testing
Beta Testing
 Acceptance Testing
Mutation Testing
 Load Testing
Conformance Testing
 Stress Testing
Quality Assurance Testing
 Performance Testing
Black Box Testing
It can also be termed as functional testing
Tests that examine the observable behavior of software as
evidenced by its outputs without referencing to internal
functions is black box testing
It is not based on any knowledge of internal design or code
and tests are based on requirements and functionality
In object oriented programming environment, automatic code
generation and code re-use becomes more prevalent, analysis
of source code itself becomes less important and functional
tests become more important
Test if a component conforms to specification
White Box Testing

It can also be termed as Structural Testing


Tests that verify the structure of the software and require complete
access to the object’s source code is white box testing
It is known as white box as all internal workings of the code can be
seen
White-box tests make sure that the software structure itself contributes
to proper and efficient program execution
It is based in of the internal logic of an applications’ code and tests are
based on coverage of code statements, branches, paths, conditions
In this type of testing code needs to be examined by highly skilled
technicians
Test if a component conforms to design
Functionality
Testing

It is black-box testing geared to functional requirements and should be


done by testers
Testing done to ensure that the product functions the way it is designed to
according to the design specifications and documentation
This testing can involve testing of product’s user interface, database
management, security, installation, networking, etc.
Sanity Testing

Initial testing effort to determine if a new software version is performing well


enough to accept it for a major testing effort.
For example, if the new software is crashing systems every 5 minutes,
bogging down systems to a crawl, or destroying databases, the software
may not be in a 'sane' enough condition to warrant further testing in its
current state.
Regression Testing

This is re-testing of the product/software to ensure that all reported bugs


have been fixed and implementation of changes has not affected other
functions
It is always difficult to the amount of re-testing required, especially when the
software is at the end of the development cycle
These tests apply to all phases wherever changes are being made
This testing also ensures reported product defects have been corrected for
each new release and that no new quality problems were introduced in the
maintenance process
Load Testing

Testing an application under heavy loads


For example, testing of a Web site under a range of loads to determine at
what point the system’s response time degrades or fails
Accurate pre-determination of performance can be determined through this
testing
Stress Testing
This term is more often used interchangeably with ‘load’ and
‘performance’ testing.
It is system functional testing while under unusually heavy loads, heavy
repetition of certain actions or inputs, input of large numerical values,
large complex queries to a database system
Always aimed at finding the limits at which the system will fail through
abnormal quantity or frequency of inputs.
Examples could be:-
 higher rates of inputs
 data rates an order of magnitude above ‘normal’
 test cases that require maximum memory or other resources
 test cases that cause ‘thrashing’ in a virtual operating system
 test cases that cause excessive ‘hunting’ for data on disk systems
 This testing can also attempt to determine combinations of otherwise
normal inputs can cause improper processing
Performance
Testing

This term is more often used interchangeably with ‘stress’ and ‘load’ testing
To understand the applications’ scalability, or to benchmark the performance
in a environment or to identify the bottlenecks in high hit-rate Web sites, this
testing can be used
This testing checks the run-time performance in the context of the integrated
system
This may require special software instrumentation
Ideally, these types of testing are defined in requirements documentation or
QA or Test Plans.
Usability Testing

This testing is testing for ‘user-friendliness’


The target will always be the end-user or customer
Techniques such as interviews, surveys, video recording of user sessions
can be used in this type of testing
Programmers and Testers are not appropriate as usability testers
Install/Uninstall
Testing

Testing of full, partial, or upgrade install/uninstall processes The target will


always be the end-user or customer
Compatibility
Testing

Testing whether the software is compatible in particular hardware / software /


operating system / network / etc. environment
Alpha Testing

This is testing of an application when development is nearing


completion;mostly testing conducted at the developer’s site by a customer
The customer uses the software with the developer ‘looking over the
shoulder’ and recording errors and usage problems
Testing is conducted in a controlled environment
Minor design changes can be still made as a result of this testing
Typically conducted by end-users or customers and not by programmers
or testers
Beta Testing

Testing conducted when development and testing are completed and bugs
and problems need to be found before final release
It is ‘live’ testing in an environment not controlled by the developer.
Customer records the errors / problems reports difficulties at regular
intervals
Testing is conducted at one or more customer sites
Typically conducted by end-users or customers and not by programmers
or testers
Exercise
 Testing efforts should be started only after the coding
is completed. True/False

 Software testing efforts aim at preventing bugs. - True/False

 During the Construction phase in the life cycle, both


functional and structural Test data should be generated and
applied. - True/False

 The data that is generated for Statement testing, Branch


Testing and path testing is known as ____________

 Explain in your own words about


 Boundary value analysis
 Equivalence Partitioning

You might also like