Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Need For Testing & Testing Cycle
1. C:Mudasir HamidBooksSETesting
Need for Software Testing
Testing is a major component of software development, and is a major science in itself. What is the
need for testing?
Software development involves developing software against a set of requirements (whether they be a
specific client's requirements for a project, or generic requirements for a shrink-wrapped product).
Software testing is needed to verify and validate that the software that has been built has been built to
meet these specifications. Testing ensures that what you get in the end is what you wanted to build.
Testing enhances the integrity of a system by detecting deviations in design and errors in the system.
Testing aims at detecting error-prone areas. This helps in the prevention of errors in a system.
Testing also adds value to the product by conforming to the user requirements.
Another way to say this is: The desired result of testing is a level of confidence in the software so that
the organization is confident that the software has an acceptable defect rate. What constitutes an
acceptable defect rate depends on the nature of the software.
Another way of saying this in an even more business-like manner is: Testing is a process of technical
investigation, performed on behalf of stakeholders, that is intended to reveal quality-related
information about the product with respect to the context in which it is intended to operate. This
includes, but is not limited to, the process of executing a program or application with the intent of
finding errors.
And what are some the common things that necessitate the need for a testing plan:
1. Communication gaps between the requirement specifier and the developer
2. Over commitment by the developer
3. Not proper understanding of all the complexities of the system
4. Inadequate requirements gathering
A sample testing cycle
Although variations exist between organizations, there is a typical cycle for testing.The sample below
is common among organizations employing the Waterfall development model.
Requirements analysis: Testing should begin in the requirements phase of the software
development life cycle. During the design phase, testers work with developers in determining
what aspects of a design are testable and with what parameters those tests work.
Test planning: Test strategy, test plan, testbed creation. Since many activities will be carried out
during testing, a plan is needed.
Test development: Test procedures, test scenarios, test cases, test datasets, test scripts to use
in testing software.
Test execution: Testers execute the software based on the plans and test documents then report
any errors found to the development team.
Test reporting: Once testing is completed, testers generate metrics and make final reports on
their test effort and whether or not the software tested is ready for release.
Test result analysis: Or Defect Analysis, is done by the development team usually along with the
client, in order to decide what defects should be assigned, fixed, rejected (i.e. found software
working properly) or deferred to be dealt with later.
Defect Retesting: Once a defect has been dealt with by the development team, it is retested by
the testing team. AKA Resolution testing.
Regression testing: It is common to have a small test program built of a subset of tests, for each
integration of new, modified, or fixed software, in order to ensure that the latest delivery has not
ruined anything, and that the software product as a whole is still working correctly.
Test Closure: Once the test meets the exit criteria, the activities such as capturing the key
outputs, lessons learned, results, logs, documents related to the project are archived and used as
a reference for future projects.
Mudasir Hamid mudasir011@gmail.com