Software Testing: by Jagannath Ojha (Jagat)
Software Testing: by Jagannath Ojha (Jagat)
3/25/12
What is Testing?
According to ANSI/IEEE1099
Testing is the process of analyzing a software item to detect the differences between existing and required conditions and to evaluate the features of the software item.
Testing is questioning a product in order to evaluate it. Planned process, used to identify the correctness, completeness, security and quality of software.
3/25/12
(contd.)
Try it and see if it works. Done to demonstrate the software what it is supposed to do as well as what it is not supposed to do. Intended to finding defects. Testing does not make the software perfect only catch defects that are contrary to specification.
3/25/12
Testing is debugging. Testing is not job of programmer. Software can be tested completely. Testers can find all the bugs. Testing is not a creative or skilled job.
3/25/12
Why?
To improve quality. To verification and validation. Identify areas of weakness and enhancements. For reliability estimation.
3/25/12
3/25/12
Wrong requirements: not what the customer wants. Missing requirements. Requirements impossible to implements. Faulty analysis , design , implementation. Wrong assumption.
3/25/12
Principles
All tests should be traceable to customer requirements. Tests should be planned long before testing begins. Testing should begin in the small and progress toward testing in the large. Exhaustive testing is not possible.
3/25/12
(contd..)
Do not plan tests assuming that no errors will be found. The probability of locating more errors in any one modules is directly proportional to the number of errors already found in that module. Include test cases for invalid or unexpected conditions. Test early and regularly.
3/25/12
Testing approach
1.
2.
3/25/12
The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. Require internal perspective of the system, programming skills. White-box test design technique includes:
3/25/12
(contd.)
Data
Branch Path
Code Data
3/25/12
Conducted at the software surface. Used to demonstrate that software functions are operational. Also called behavioral testing and focuses on the functional requirements. Programming knowledge in general is not required.
3/25/12
(contd.)
in data structure or external database access. or performance errors. and termination errors.
Behavior
Initialization
3/25/12
Testing levels:
3/25/12
Type of testing
There are different types of testing:
Performance Testing:
Database Testing:
check the data flow between front end back end. Consistency and integrity of data.
3/25/12
(contd.)
Functional Testing:
Verifies the crucial business functions are working in the application. Tests would include, using both valid and invalid data
It verifies whether all the objects of user interface design specifications are met.
Stress Testing:
3/25/12
(contd.)
Load Testing:
It verifies the performance of the server under stress of many clients requesting data at the same time. under heavy load.
3/25/12
(contd.)
Recovery/Error Testing: Alpha Testing: Beta Testing: Regression Testing: Usability Testing:
3/25/12
Testing artifacts:
Test plan:
Test case
a set of conditions or variables consists of a unique identifier, preconditions, events, a series of steps to follow, input, output, expected result, and actual result.
3/25/12
(contd.)
Test suite
collection of test cases is a test suite. more detailed instructions or goals for each collection of test cases.
Test data
3/25/12
3/25/12