Testing
•No program or system design is perfect communication between the user and the designer is not always complete or clear and time is also short the result is errors.
•Number and nature of errors depend upon
•Communication between user and designer
•The programmer ability to generate code that reflect exactly the
system specification
•The time frame for the design
In a new design system should have all the piece in working order, but in reality each piece work independently. now is the time to put all pieces in one system and test it to determine whether it meets the user requirement.
• Unit testing: testing change made in the existing or new program.
• Sequential or series testing is checking the logic of one or more programs in candidate system ,where output of one program will affect he processing
done by another program.
• System testing: is executing a program to check logic change made in it with intension of finding errors.
• Positive testing : making sure that new programs do in fact processes certain transaction according to specification.
• Acceptance testing : running the system with live data by the actual user.
Why system testing
• Logical assumption if all part of system are correct, the goal will be successfully achieved.
• Inadequate testing or non testing leads to error that may not appear months later this creates 2 problems.
– Time lag between cause and appearance of the problem.
– The effect of system error on files and records within a system.
• Its utility as a user oriented vehicle before implementation.
What do we test for?
• The first test of a system is to see whether it produces the correct output.
– Online response : online system must have a response time that will not
cause hardship to the user e.g. input transactions in as many CRT screen
as would normally be used in peak hours and time the response to each
online function.
– Volume : we create as many records as would normally be produced to
verify that hardware and software will function correctly user is asked to
provide test data.
– Stress testing : is to check that candidate system does not malfunction
under peak loads i.e. high volume of data over a short time.
– Recovery and security: a forced system failure to test a backup recovery
procedure for file integrity, inaccurate data are entered to see how the
system responds in terms of error detection and protection and
demonstrate data and programs are secure from unauthorized access.
– Usability documentation and procedure: the usability test verifies the
user friendly nature of the system it relates to normal operating and error handling procedure e.g. accurate and complete documentation.
The nature of test data
• The proper choice of test data is important as the test itself.
• Test data can be artificial or live.
• Properly created artificial test data should provide combination of values and format and make it possible to test all logic and
transaction path subroutines.
• For large complex system a computer program is used to generate the necessary test data.
The test plan
• The first step in system testing is to prepare a plan that will test all aspect of the system
– Programmer do better job in unit testing because they are expected to document and report on method and extent of their testing
– Users are involved , which means communication is improved between user and designer group
– Programmers are involved when they become aware of user problems and expectation . The user also become more aware of complexity of programming and testing. The upshot of all this is a more realistic and cooperative user for successful testing.
Activity network for system testing
• Prepare test plan
• Specify conditions for user acceptance testing
• Prepare test data for program testing
• Prepare test data for transaction path testing
• Plan user training
• Compile/assemble programs
• Prepare job performance aids
• Prepare operational documentation
Prepare a test plan
• A workable test plan must be prepared in accordance with established design specifications. It include the following points
– Output expected from the system
– Criteria for evaluating output
– A volume of test data
– Procedure for using test data
– Personnel and training requirements
Specify condition for user acceptance testing
• Planning for user acceptance testing calls for the analyst and the user to agree on the condition for the test.
• Many of these conditions may be derived for the test plan , agreement on the test schedule , test duration , person designated for the test and the start and the termination dates for the test should also be specified in advance.
Prepare test data for program testing
• As each program is coded , test data are prepared and documented to ensure that all aspects of the program are properly tested . After testing data are properly filed for future reference.
Prepare test data for transaction path testing
• This activity develops the data required for testing every condition and transaction to be introduced into the system
• The path of each transaction from origin to destination is carefully tested for reliable result
• The test verifies that the test data are virtually comparable to live data .
Plan user training
• User training is designed to prepare the user for testing and converting the system
• User involvement and training takes place parallel with programming
– The system group has time available to spend on training while programs are being written
– User training program gives the system group a clearer image of the user’s interest in the new system
– A trained user participates more effectively in system testing
• A checklist is useful for user training
• The training plan is followed by user training manuals and other text materials
• Facility requirement and necessary hardware are specified and documented
• A common procedure is to train supervisor and department heads who in turn train their staff as they see fit for the following reasons
– Supervisor are knowledgeable about the capabilities of staff and overall operations
– Staff members respond more favorably from supervisors then outsiders
– Familiarity of users with their particular problem (bugs) make them better candidates for handling user training than the system analyst. The analyst get feed back to ensure that proper training is provided.
Compile/assemble programs
• All programs have to be compiled /assembled for testing
• Before this , a complete program description should be available .included is purpose of program , it use , the programmer who prepared it and amount of computer time it takes to run it . Program and system flowchart of the project should also be available for reference.
• In addition to these activities , desk checking the source code uncover programming errors. Before actual program testing , a run order schedule and test schemes are finalized
• A run order schedule specifies the transaction to test and the order in which they should be tested
• High priority transactions that make special demand on the candidate system are tested first
• Test scheme specifies how program software should be debugged
• A common approach called bottom up programming tests small
scale program modules which are linked to a higher level module
and so on until program is completed
Prepare job performance aids
• The material to be used by personnel to run the system are specified and scheduled . This include a display of materials such as program
codes , a list of input codes attached to the CRT terminal and a posted instruction schedule to load the disk drive . These aid reduce the training time and employ personnel at lower positions
Prepare operational documents
• During the test plan stage , all operational documents are finalized , including copies of the operational format required by the candidate system
• Related to operational documentation is a section on the experience , training and educational qualification of personnel for proper operation of new system