Exhaustive testing of a software is required to determine it is working as per
expectations and requirements. Developers often do not have enough time (or at times interest) to test their codes
thoroughly. To handle such scenarios, most projects usually have a dedicated testing team. However, unit testing,
at least, is done by the developers.
Irrespective of who performs testing, or what is being tested, testing usually involve some generic steps. In this
simulation we provide a broad overview of the testing process.
Software Testing
Step
A software undergoes various types of
testing right from the beginning of its design to delivery, and even beyound. Following general steps are involved in most of the types of software testing.
Create a test plan
Create test suite
Write test scripts
Execute
Fix bugs, if any
Test Plan documents what is to be tested, by whom, under which conditions. The IEEE 829
Standards for Software Test Documentation suggests it to contain:
• Introduction to the plan
• Test items (for example, software modules)
• Test environments and Prerequistes.
• Roles and responsibilities
• Necessary approvals
Test suite is a collection of test cases. One might write a test suite to verify working of a use case, or may be to verify if it works with different web browswers.
A suite consists of:
• Title
• Description
• Set of test cases
A test case could typically be documented with the following information:
• Test case #
• Summary
• Dependency on previous test cases
• Pre and Post conditions
• Expected output
Testing large project manually is difficult:
• Automate testing with scripts
• Testing frameworks: jUnit, qunit
Scripts contain the steps a human would have manually executed. Automating test cases help by:
• Reduced time and effort
• Reduced chance of human error
• Faster feedback
• Execute all the test cases by invoking relevant test scripts.
• A test case finishes successfully if its actual output is same as the expected output
• If all test cases finish successfully, the test suite is successful.
• Otherwise bugs are reported
• Developers act on the reported bugs, and fix them
• Repeat step #4 again
• If the reported bug is not encountered anymore, it is closed
Steps #4 and #5 are repeated unitl there is no open bug