Thursday, February 12, 2009

Software Testing Documents

Test Plan: The purpose of Test Plan document is to describe the overall test approach for the . The test approach will consist of the scope of the testing that is required for this Project, the activities that need to be completed, the resources required (people, software, hardware), test methodology, general release criteria, and any risks or dependencies for this project.
It should be noted, that test planning is an essential step in the overall software development framework. It sets expectations for the amount of testing (functional, system, and performance) that should occur for a project.

Test Effort Estimation: This document will give the details on how much time will be required for completion of the given Project / Module based on the priority of testcase (Low, Medium, High or Complex). For doing any effort estimation following few things are considered: Requirement Analysis, Testcase Design, Review, Automation/Performance Test, Manual Test Execution, Trainings if any & Project Management/Configuration Management.

Test Strategy: The purpose of a test strategy is to clarify the major tasks and challenges of the test project. Test strategy will consist of the following:
- Understand the decision algorithm and generate a parallel decision analyzer using Perl or Excel that will function as a reference oracle for high volume testing of the app.
- Create a means to generate and apply large numbers of decision scenarios to the product. This will be done either through the use of a GUI test automation system, if practical, or through a special test facility built into the product (if development is able to provide that), or through the direct generation of Decide Right scenario files that would be loaded into the product during test.
- Review the documentation, and the design of the user interface and functionality for its sensitivity to user error that could result in a reasonable misunderstanding of decision parameters, analysis, or suggestions.
- Test with decision scenarios that are near the limit of complexity allowed by the product. (We will investigate creating these scenarios automatically.)
- Compare complex scenarios (Automatically, if practical). - Test the product for the risk of silent failures or corruptions in the decision analysis.
- Using requirements documentation, user documentation, or by exploring the product, we will create an outline of product elements and use that to guide user-level capability and reliability testing of the product.

The principal issues in executing the test strategy are as follows:
- The difficulty of understanding and simulating the decision algorithm.
- The risk of coincidental failure of both the simulation and the product.
- The difficulty of automating decision tests.

Test Case: This document will contain the steps to be followed to achieve its objective. In a testcase document we will give the testcase Name, the steps to be followed, Test data, Expected and Actual results, Pass/Fail and remarks. We also specify the testcase version number and the author.

Software Testing

Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software. The difficulty in software testing stems from the complexity of software: we can not completely test a program with moderate complexity. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing. Software testing is a trade-off between budget, time and quality.