SYSTEM TESTING METHODS - Anna University Internal marks 2018

SYSTEM TESTING METHODS

Testing is a process of executing a program with the intent of finding an error. Testing is a crucial element of software quality assurance and presents ultimate review of specification, design and coding.
System Testing is an important phase. Testing represents an interesting anomaly for the software.  Thus a series of testing are performed for the proposed system before the system is ready for user acceptance testing.
A good test case is one that has a high probability of finding an as undiscovered error. A successful test is one that uncovers an as undiscovered error.
5.1 Testing Objectives:
·        Testing is a process of executing a program with the intent of finding an error
·        A good test case is one that has a probability of finding an as yet undiscovered error
·        A successful test is one that uncovers an undiscovered error
5.2 Testing Principles:
·    All tests should be traceable to end user requirements
·    Tests should be planned long before testing begins
·    Testing should begin on a small scale and progress towards testing in large
·    Exhaustive testing is not possible
·    To be most effective testing should be conducted by a independent third party
The primary objective for test case design is to derive a set of tests that has the highest livelihood for uncovering defects in software. To accomplish this objective two different categories of test case design techniques are used. They are
·  White box testing.
·  Black box testing.

White-box testing:

White box testing focus on the program control structure. Test cases are derived to ensure that all statements in the program have been executed at least once during testing and that all logical conditions have been executed.

Block-box testing:

Black box testing is designed to validate functional requirements without regard to the internal workings of a program. Black box testing mainly focuses on the information domain of the software, deriving test cases by partitioning input and output in a manner that provides through test coverage. Incorrect and missing functions, interface errors, errors in data structures, error in functional logic are the errors falling in this category.
Testing strategies:
A strategy for software testing must accommodate low-level tests that are necessary to verify that all small source code segment has been correctly implemented as well as high-level tests that validate major system functions against customer requirements.
5.3 Testing fundamentals:
Testing is a process of executing program with the intent of finding error. A good test case is one that has high probability of finding an undiscovered error. If testing is conducted successfully it uncovers the errors in the software. Testing cannot show the absence of defects, it can only show that software defects present.
5.4 Testing Information flow:
Information flow for testing flows the pattern. Two class of input provided to test the process. The software configuration includes a software requirements specification, a design specification and source code. Test configuration includes test plan and test cases and test tools. Tests are conducted and all the results are evaluated. That is test results are compared with expected results.
Unit testing:
Unit testing is essential for the verification of the code produced during the coding phase and hence the goal is to test the internal logic of the modules.  Using the detailed design description as a guide, important paths are tested to uncover errors with in the boundary of the modules.
Integration testing:
Integration testing focuses on unit tested modules and build the program structure that is dictated by the design phase.

Acceptance Testing:

This testing is done to verify the readiness of the system for the implementation. Acceptance testing begins when the system is complete. Its purpose is to provide the end user with the confidence that the system is ready for use. It involves planning and execution of functional tests, performance tests and stress tests in order to demonstrate that the implemented system satisfies its requirements.
Tools to special importance during acceptance testing include:
Test coverage Analyzer – records the control paths followed for each test case.
Timing Analyzer – also called a profiler, reports the time spent in various regions of the code are areas to concentrate on to improve system performance.
Coding standards – static analyzers and standard checkers are used to inspect code for deviations from standards and guidelines.
5.5 Test Cases:
Test cases are derived to ensure that all statements in the program have been executed at least once during testing and that all logical conditions have been executed.
Using White-Box testing methods, the software engineer can drive test cases that
·        Guarantee that logical decisions on their true and false sides.
·        Exercise all logical decisions on their true and false sides.
·        Execute all loops at their boundaries and within their operational bounds.
·        Exercise internal data structure to assure their validity.
The test case specification for system testing has to be submitted for review before system testing commences

No comments:

Post a Comment