New Hanover County

Information Technology

Application Testing Guidelines

Introduction

The goal of testing is to provide sufficient opportunity to satisfy ourselves that the application being tested is ready for implementation. The purpose of this guideline is to provide a common methodology that is sufficiently rigorous to accomplish this goal while being as simple as possible to achieve.  All new and/or changed programs should go through the testing process prior to being put into production.   

 

Unit Testing

Unit testing checks a single module or a related group of modules with the intention of finding errors. Check all edits, validation rules, default values, and error/warning messages.  

·        Test negative exceptions as well as positive conditions.

·        Test for boundary conditions, i.e., high, low, range values or alpha in numeric fields.

·        Verify screen navigation.

·        Verify that transaction security is at the appropriate levels.

·        Verify that screen or report layouts are to specification.

·        Verify that response time is at an acceptable level.

·        Verify that the program reaches successful completion.

·        Verify that program documentation has been created or modified.

·        Use test scripts or a plan that lists conditions and expected results for individual modules.  

·        Detected errors may be formally or informally documented by the programmer for correction and retesting.

Integration Testing

The primary purpose of integration testing is to prove that representative data will flow all the way through the system, producing valid output and will handle invalid data conditions. Integration testing also verifies that the data flow between this system and other interfacing systems are correct.

·        Ensure that modules have been unit tested.

·        Develop a formal plan of how each set of programs/modules will be integrated.

·        Create a test script to list areas to be tested at high level functions, i.e., ’order entry’, ‘update A/R’.

·        Create a sequence of specific tests including expected results within each high-level grouping. 

·        Production and test data should be used. If production data is not available, the test data should be representative of the production environment.

·        A complete review of test results by the programming staff is extremely important at this phase; users may be involved in test data entry and review of results.

·        Timing runs should be made using input volumes similar to or greater than those anticipated in actual operations to ensure peak loads can be handled.

·        Verify storage allocations are adequate for expected growth.

·        The documentation should be tested against what is actually delivered to verify that it is adequate to enable users and computer operations to run the system.

 

User Acceptance Testing

The primary purpose of user acceptance testing is to determine if the system performs to business specification. Development of the acceptance criteria and test plan and the actual performance of user acceptance testing is the responsibility of the user.

The test plan includes tests of all system functions. Each system function should

include specific test cases with expected test results. The project manager maintains the log to keep track of test cases, error resolution and retesting. The format for documenting test cases and the error log is up to the project manager.  All user acceptance testing is done in a test environment.

·        Verify valid data flows through the system correctly and invalid data is handled appropriately.

·        Check all edits, validation rules, default values, error messages and warning messages.

·        Assure system security is at appropriate levels, e.g., restricted add/update authority for tables/databases.

·        Validate system controls such as error file handling or duplicate entry processing.

·        Make sure response times for processing are acceptable.

·        Verify screen navigation is correct and easy to follow.

·        Check screen and/or report layouts to assure all required data exists and is mapped correctly.

·        Assure system can handle high volumes.

·        Where add/updates are performed, assure correct values are placed on the databases/tables.

·        Verify data transmission to and from system are successful.