CH 5 Software Testing
CH 5 Software Testing
Automation testing
Automation testing is a process of converting any manual test cases
into the test scripts with the help of automation tools, or any programming
language is known as automation testing.
With the help of automation testing, we can enhance the speed of our
test execution because here, we do not require any human efforts. We need
to write a test script and execute those scripts.
White-box testing
The white box testing is done by Developer, where they check
every line of a code before giving it to the Test Engineer. Since the code is
visible for the Developer during the testing, that's why it is also known as
glass box testing, clear box testing and transparent box testing.
White-box testing
1. White box testing techniques analyze Internal design, Code structure &
working of the complete software product.
2. It is also called Clear box testing, Open box testing, Transparent box
testing. Code-based testing and Glass box testing.
3. Tester has knowledge about the internal structure or the programming
of the software.
4. It is mostly done by software developers.
5. Perform with Unit Testing & Integration Testing.
6. 2White Box Testing Tools: EclEmma, Nunit, PyUnit, HTMLUnit,
CppUnit
1. Path Coverage/Testing:
2. Loop Testing:
There are loops such as while, for and do-while loops etc.
It checks all Simple, Nested loops.
The logical conditions for every value are checked, whether it is true or
false.
This means that both the if and else conditions are verified.
4. Statement Coverage:
Black-box testing
1. Equivalent Partitioning
Here, input values that provide to system are divided into different
classes or groups based on its similarity in the outcome.
Instead of using each & every input value, use any one value from the
group to test outcome.
It test, boundary values are those that contain the upper and lower limit
of a variable.
It tests, while entering boundary value whether the software is
producing correct output or not.
4. Error Guessing
2. Test Planning: Test Planning is the most efficient phase of the software
testing life cycle where all testing plans are defined. In this phase manager
of the testing team estimate the time and cost required for testing. This
phase gets started once the requirement-gathering phase is completed.
3. Test Case Development: The test case development phase gets started
once the test planning phase is completed. In this phase testing team notes
down the detailed test cases. The testing team also prepares the required
test data for the testing. When the test cases are prepared then they are
reviewed by the quality assurance team.
5. Test Execution: After the test case development and test environment
setup test execution phase gets started. In this phase testing team starts
executing test cases based on prepared test cases in the earlier step.
6. Test Closure: Test closure is the final stage of the Software Testing Life
Cycle (STLC). The main objective of the test closure stage is to ensure that
all testing-related activities have been completed and that the software is
ready for release.
Unit Testing
Disadvantages
1) It takes time to write test cases.
2) Unit testing is not able to catch each and every error in a program.
3) If developer can make a mistake that will impact the whole system.
Component Testing
Step7: Completion
After completed all the above steps successfully, we will come to the last
step of the component testing process. In this particular step, the results will
be evaluated in order to deliver a good quality product.
System Testing
Test Environment Setup: Create testing environment for the better
quality testing.
Create Test Case: Generate test case for the testing process.
Create Test Data: Generate the data that is to be tested.
Execute Test Case: After the generation of the test case and the test
data, test cases are executed.
Defect Reporting: Defects in the system are detected.
Regression Testing: It is carried out to test the side effects of the
testing process.
Log Defects: Defects are fixed in this step.
Retest: If the test is not successful then again test is performed.
Benefits:
1. Regression testing
A regression test suite is developed incrementally as a program is
developed.
2. Simplified debugging
When a test fails, it should be obvious where the problem lies. The
newly written code needs to be checked and modified.
3. System documentation
The tests themselves are a form of documentation that describe what the
code should be doing.
Release testing
User testing
1. Alpha Testing
It is a type of software testing performed to identify bugs before
releasing the product to real users or to the public.
Alpha testing involves both, white box and black box testing
approaches and techniques.
2. Beta Testing
Beta testing is performed by real users of the software
applications in a real environment.
As real users perform beta testing only black box approach is
used here
3. Acceptance Testing
Acceptance Testing is the last phase of software testing performed
after System Testing.
Acceptance testing is a process of verifying that software
meets the expectations of users. Acceptance tests are
typically performed by end users, to determine if the
software is functioning as expected.
There are six stages in the acceptance testing process, as shown in Figure
They are:
1. Define acceptance criteria
2. Plan acceptance testing
3. Derive acceptance tests
4. Run acceptance tests
5. Negotiate test results
6. Reject/accept system