Monday, March 29, 2010

Testing Classifications

Testing can be basically classified as :

White Box Testing
• Aims to establish that the code works as designed
• Examines the internal structure and implementation of the program
• Target specific paths through the program
• Needs accurate knowledge of the design, implementation and code

Black box testing
• Aims to establish that the code meets the requirements
• Tends to be applied later in the lifecycle
• Mainly aimed at finding deviations in behavior from the specification or requirement
• Causes are inputs, effects are observable outputs

Alpha Testing
A customer conducts the Alpha testing at the developer's site. The software is used in a natural setting with the developer recording errors and usage problems. Alpha tests are conducted in the controlled environment by the developer.

Beta Testing :
The beta testing is conducted at one or more customer sites by the end user{s) of the software. The developer will not be present in the customer's place. So, the Beta test is a 'live' application of the software in an environment that cannot be controlled by a developer. The customer records all the problems (real or apparent) that are encountered during the beta testing and reports to the developer at regular interval. As a result of problems reported during beta test.

Integrated Systems Testing
Integrated System Testing (IST) is a systematic technique for validating the construction of the overall Software structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested modules and test the overall Software structure that has been dictated by design. IST can be done either as Top down integration or Bottom up Integration

User Acceptance Testing:

User Acceptance Testing (UAT) is performed by Users or on behalf of the users to ensure that the Software functions in accordance with the Business Requirement Document. UAT focuses on the following aspects:

• All functional requirements are satisfied
• All performance requirements are achieved
• Other requirements like transportability, compatibility, error recovery etc. are satisfied
• Acceptance criteria specified by the user is met.

Sample Entry and Exit Criteria for User Acceptance Testing
Entry Criteria
♦ Integration testing signoff was obtained
♦ Business requirements have been met or renegotiated with the Business Sponsor or representative
♦ UAT test scripts are ready for execution
♦ The testing environment is established
♦ Security requirements have been documented and necessary user access obtained

Exit Criteria
♦ UAT has been completed and approved by the user community in a transition meeting
♦ Change control is managing requested modifications and enhancements
♦ Business sponsor agrees that known defects do not impact a production release—no remaining defects are rated 3, 2, or 1

PRODUCTION VERIFICATION TESTING :

Production verification testing is a final opportunity to determine if the software is ready for release. Its purpose is to simulate the production cutover as closely as possible and for a period of time simulate real business activity. As a sort of full dress rehearsal, it should identify anomalies or unexpected changes to existing processes introduced by the new application. For mission critical applications the importance of this testing cannot be overstated.
The application should be completely removed from the test environment and then completely reinstalled exactly as it will be in the production implementation. Then mock production runs will verify that the existing business process flows, interfaces, and batch processes continue to run correctly. Unlike parallel testing in which the old and new
systems are run side-by-side, mock processing may not provide accurate data handling results due to limitations of the testing database or the source data.

Sample Entry and Exit Criteria for Production Verification Testing
Entry Criteria
♦ UAT testing has been completed and approved by all necessary parties
♦ Known defects have been documented
♦ Migration package documentation has been completed, reviewed, and approved by the production systems manager
Exit Criteria
♦ Package migration is complete
♦ Installation testing has been performed and documented and the results have been signed off
♦ Mock testing has been documented, reviewed, and approved
♦ All tests show that the application will not adversely affect the production environment
♦ A System Change Record with approvals has been prepared

Performance Testing
:
1. Performance testing is designed to test run time performance of software within the context of an integrated system. It is not until all systems elements are fully integrated and certified as free of defects the true performance of a system can be ascertained.
2. Performance tests are often coupled with stress testing and often require both hardware and software infrastructure. That is, it is necessary to measure resource utilization in an exacting fashion. External instrumentation can monitor intervals, log events. By instrumenting the system, the tester can uncover situations that lead to degradations and possible system failure.

Security testing:
If your site requires firewalls, encryption, user authentication, financial transactions, or access to databases with sensitive data, you may need to test these and also test your site's overall protection against unauthorizedinternal or external access.

Exploratory Testing:
Often taken to mean a creative, internal software test that is not based on formal test plans or test cases; testers may be learning the software as they test it.

'Benefits Realization tests
:
With the increased focus on the value of Business returns obtained from investments in information technology,this type of test or analysis is becoming more critical.The benefits realizatioon test is a test or analysis conducted after an application is moved into production inorder to determine whether the application is likely to deliver the original projected benefits.The analysis is usullaly conducted by the business user or client group who requested the project and results are reported back to executive management.

Mutation Testing:
Mutation testing is a method for determining if a set of test data or test cases is useful, by deliberately introducing various code changes ('bugs') and retesting with the original test data/cases to determine if the 'bugs' are detected. Proper implementation requires large computational resources.

Sanity testing - typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort. For example, if the new software is crashing systems every 5 minutes, bogging down systems to a crawl, or destroying databases, the software may not be in a 'sane' enough condition to warrant further testing in its current state.

UNIT TESTING :
Definition: By knowing the inner logic the program the test what you conduct is Unit Testing. or Testing the piece/unit of a program
Unit testing is a procedure used to validate that a particular module of source code is working properly. The procedure is to write test cases for all functions and methods so that whenever a change causes a regression, it can be quickly identified and fixed.

Benefits:
The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. Unit testing provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits.
1) Facilitates Change
2) Simplifies Integration
3) Documentation
4) Separation of Interface from Implementation

earn System Testing:
System testing is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of Black box testing, and as such, should require no knowledge of the inner design of the code
or.logic.

System testing is actually done to the entire system against the Functional Requirement Specifications (FRS) and/or the System Requirement Specification (SRS). Moreover, the System testing is an investigatory testing phase, where the focus is to have almost a destructive attitude and test not only the design, but also the behavior and even the believed expectations of the customer. It is also intended to test up to and beyond the bounds defined in the software/hardware requirements specifications.Remainaing All Testing Models comes under System Testing.

System Testing
:


No comments: