Software QA FYI - SQAFYI

FUNCTIONAL SYSTEM TESTING TECHNIQUES

By:

FUNCTIONAL SYSTEM TESTING TECHNIQUES


" Functional Testing techniques are designed to ensure the system requirements and specifications are achieved.
" Objective is to -
" The process normally involves creation of test conditions and then using them to evaluate that system developed is correct.
" The Different Functional System Testing Techniques are -
1. Requirements Testing
2. Regression Testing
3. Error - Handling Testing
4. Manual - support Testing
5. Intersystem Testing
6. Control Testing
7. Parallel Testing


1) Requirements Testing Technique :

Usage " To ensure that system performs correctly
" To ensure that correctness can be sustained for a considerable period of time.
" System can be tested for correctness through all phases of SDLC but incase of reliability the programs should be in place to make system operational.
Objectives " Successfully implementation of user requirements
" Correctness maintained over considerable period of time
" Processing of the application complies with the organization's policies and procedures.
" Secondary users needs are fulfilled -
Security officer
DBA
Internal auditors
Record retention
Comptroller
How to Use " Test conditions created
These test conditions are generalized ones, which becomes test cases as the SDLC progresses until system is fully operational.
Test conditions are more effective when created from user's requirements.
Test conditions if created from documents then if there are any error in the documents those will get incorporated in Test conditions and testing would not be able to find those errors.
Test conditions if created from other sources (other than documents) error trapping is effective.
" Functional Checklist created.
When to use " Every application should be Requirement tested
" Should start at Requirements phase and should progress till operations and maintenance phase.
" The method used to carry requirement testing and the extent of it is important.
Examples " Creating test matrix to prove that system requirements as documented are the requirements desired by the user.
" Creating checklist to verify that application complies to the organizational policies and procedures.

2) Regression Testing Technique, :

Background " One segment of system is developed and thoroughly tested.
" Another segment is changed which has disastrous effect on the tested segment.
" The implemented change, new data or parameters have created change in the already tested segment.
Usage " All aspects of system remain functional after testing.
" Change in one segment does not change the functionality of other segment.
Objectives " Determine -
system documents remain current
System test data and test conditions remain current.
Previously tested system functions properly without getting effected though changes are made in some other segment of application system.
How to Use " Test cases, which were used previously for the already tested segment is, re-run to ensure that the results of the segment tested currently and the results of same segment tested earlier are same.
" Test automation is needed to carry out the test transactions (test condition execution) else the process is very time consuming and tedious.
" In this case of testing cost/benefit should be carefully evaluated else the efforts spend on testing would be more and payback would be minimum.
When to use " When there is high risk that the new changes may effect the unchanged areas of application system.
" In development process: Regression testing should be carried out after the pre-determined changes are incorporated in the application system.
" In Maintenance phase : regression testing should be carried out if there is a high risk that loss may occur when the changes are made to the system
Examples " Re-running of previously conducted tests to ensure that the unchanged portion of system functions properly.
" Reviewing previously prepared system documents (manuals) to ensure that they do not get effected after changes are made to the application system.
" Obtaining printout of data dictionary to ensure that the data elements reflect the changes being incorporated.
Disadvantage " Time consuming and tedious if test automation not done.

3) Error - Handling Testing Technique :

Background " Pre determination of Error handling features is the basic difference between Automated and manual systems.
" Manual System: can deal with problems as they occur.
" Automated Systems: Must pre program error handling.
Usage " It determines the ability of applications system to process the incorrect transactions properly
" Errors encompass all unexpected conditions.
" In some system approx. 50% of programming effort will be devoted to handling error condition.
Objectives " Determine:
" Application system recognizes all expected error conditions.
" Accountability of processing errors has been assigned and procedures provide a high probability that errors will be properly corrected.
" During correction process reasonable control is maintained over errors.
How to Use " A group of knowledgeable people is required to anticipate what can go wrong in the application system.
" It is needed that all the application knowledgeable people assemble to integrate their knowledge of user area, auditing and error tracking.
" Then logical test error conditions should be created based on this assimilated information.
" The error handling testing technique should test -
Error
Processing of error
Control condition
Reentry of condition is proper or not.
" The iterative process should be used where first the errors in the system trapped should be corrected and then the corrected system should be re-tested to check the authenticity of application operation and to complete the error handling testing cycle.
" Tester should think negatively to trap errors.
" Testers should determine how the system should fail so that they can test to determine if the software can properly process the erroneous data.
When to use " Throughout SDLC
" Impact from errors should be identified and should be corrected to reduce the errors to acceptable level.
" Used to assist in error management process of system development and maintenance.
Examples " Create a set of erroneous transactions and enter them into the application system then find out whether the system is able to identify the problems.
" Using iterative testing enters transactions and trap errors. Correct them. Then enter transactions with errors, which were not present in the system earlier.

4) Manual Support Testing Technique :

Usage " It involves testing of all the functions performed by the people while preparing the data and using these data from automated system.
Objectives " Verify - manual support documents and procedures are correct.
" Determine -
Manual support responsibility is correct
Manual support people are adequately trained.
Manual support and automated segment are properly interfaced.
How to Use " It involves:
Evaluation of adequacy of process
Execution of process
" Process evaluated in all segments of SDLC.
" Execution of the can be done in conjunction with normal system testing.
" Instead of preparing, execution and entering actual test transactions the clerical and supervisory personnel can use the results of processing from application system.
" It involves several iterations of process.
" To test people it requires testing the interface between the people and application system.
When to use " Verification that manual systems function properly should be conducted throughout the SDLC.
" Should not be done at later stages of SDLC.
" Best done at installation stage so that the clerical people do not get used to the actual system just before system goes to production.
Examples " Provide input personnel with the type of information they would normally receive from their customers and then have them transcribe that information and enter it in the computer.
" Users can be provided a series of test conditions and then asked to respond to those conditions. Conducted in this manner, manual support testing is like an examination in which the users are asked to obtain the answer from the procedures and manuals available to them.

5) Intersystem Testing Technique :

Background " Application systems are frequently interconnected to other application system.
" The interconnection may be data coming from another application system, leaving for another application system or both.
" Frequently multiple systems (applications) sometimes called cycles or functions are involved.
Usage " To ensure interconnection between application functions correctly.
Objectives " Determining -
Proper parameters and data are correctly passed between the applications
Documentation for involved system is correct and accurate.
" Ensure Proper timing and coordination of functions exists between the application system.
How to Use " Operations of multiple systems are tested.
" Multiple systems are run from one another to check that they are acceptable and processed properly.
When to use " When there is change in parameters in application system
" The parameters, which are erroneous then risk associated to such parameters, would decide the extent of testing and type of testing.
" Intersystem parameters would be checked / verified after the change or new application is placed in the production.
Examples " Develop test transaction set in one application and passing to another system to verify the processing.
" Entering test transactions in live production environment and then using integrated test facility to check the processing from one system to another.
" Verifying new changes of the parameters in the system, which are being tested, are corrected in the document.
Disadvantage " Time consuming
" Cost may be expensive if system is run several times iteratively.

6) Control Testing Technique :

Background " One half of total system development effort is directly attributable to controls.
" Controls include:
Data validation
File integrity
Audit trail
Back up and recovery
Documentation.
Other aspects of system related to integrity
" Control is system within a system.
" Control looks at the totality of the system.
Usage " Control is a management tool to ensure that processing is performed in accordance to what management desire or intents of management.
Objectives " Accurate and complete data
" Authorized transactions
" Maintenance of adequate audit trail of information.
" Efficient, effective and economical process.
" Process meeting the needs of the user.
How to Use " To test controls risks must be identified.
" Develop risk matrix, which identifies the risks, controls; segment within application system in which control resides.
" Testers should have negative approach i.e. should determine or anticipate what can go wrong in the application system.
When to use " Should be tested with other system tests.
Examples " file reconciliation procedures work
" Manual controls in place.

7) Parallel Testing Technique :

Usage " To ensure that the processing of new application (new version) is consistent with respect to the processing of previous application version.
Objectives " Conducting redundant processing to ensure that the new version or application performs correctly.
" Demonstrating consistency and inconsistency between 2 versions of the application.
How to Use " Same input data should be run through 2 versions of same application system.
" Parallel testing can be done with whole system or part of system (segment).
When to use " When there is uncertainty regarding correctness of processing of new application where the new and old version are similar.
" In financial applications like banking where there are many similar applications the processing can be verified for old and new version through parallel testing.
Examples " Operating new and old version of a payroll system to determine that the paychecks from both systems are reconcilable.
" Running old version of application to ensure that the functions of old system are working fine with respect to the problems encountered in the new system.

Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

FUNCTIONAL SYSTEM TESTING TECHNIQUES