![]()
This lesson presents the philosophy, objectives, techniques and tools concerning the activities and duties of a Test Manager or Test Engineer during the formal test phases. The four formal test phases are function, system, installation and acceptance. Each of the four test phases will be discussed with regard to the activities, regression tests, entry criteria, entry inputs, exit criteria and, exit output. The philosophy for formal testing is based on the premise that if the test engineer is looking for defects they will find them. The test engineer is less biased and has a separate interpretation of the software than the software engineer who developed the software. Formal indicates that test engineering is an independent team and the team prepares the detailed test documentation to formally document test activities. Whereas informal testing is performed by the software engineering (unit & integration test) and is not meant to imply that there is not a process in place for these types of tests. Formal testing is a repeatable process. The repeatability in the test effort is achieved by documenting all test work artifacts. The test cases are especially documented so that the identical test can be rerun. Formal Test concentrates on verifying that Software Requirements Specifications are met for the CSCI’s, therefore the test engineering must be able to show traceability from requirements specification into test documentation. Software configuration management load build, means that the formal test is being conducted on controlled code under configuration management. Black box testing is performed during formal testing. This is in contrast to white-box testing. Formal testing is based on the requirements and not on the implementation of the requirements. Function testFunction test is equivalent to Formal Qualification Test (FQT) using the Government MIL-STD-2167A terminology. Function test concentrates on demonstrating that all software requirements are met. The Figure Function Test illustrates that the system requirements specification (there may be multiple documents specifying the system-level requirements) is analyzed and the software requirements are mapped into software specifications and interface specifications. From this set of documentation the function test specification document draws its requirements. The test plans are then drawn form the test specification document. For systems with security-related requirements, functional tests are performed to insure security safeguards are met. ![]() The following function test techniques are a few examples of the types of techniques that are applicable to function (black-box) testing. The descriptions for these tests were defined in previous lessons. The test techniques are:
The function test tools for the test engineer to consider are:
The function test activities were described in the previous lesson but will be reiterated. The activities are:
Regression test was not discussed in the previous lesson and is the final set of activities within the function test. The regression test activities also follow each of the next three formal tests. The objective of regression test is to ensure that no problems have been introduced into the system as a result of the change process. The use of the word system refers to both software and hardware components being delivered. The change process implies the problems resolved by problem reports and, enhancements by engineering change proposals or requests. If test engineering is using a capture or replay tool for testing and the test cases needs to be witnessed by the client (QA or security), test engineering will need to arrange for the witnesses to verify each step and the expected results from the automated output report.
Scope of regression test The master test plan is the document that identifies a general plan for when, how or what level of regression test is applicable. The master test plan guidelines must be taken into account if this is what the client approved. The project standards will have guidelines on an acceptable level of regression test. For two examples look at DoD-STD-2167A and DoD-STD-498 of which many samples can be found using an internet search. The test manager must Schedule the regression test to accommodate QA and test engineering. The level of regression test may need to be adjusted to accommodate a reduced schedule or shift availability of personnel. When deciding which test cases to rerun the test engineer must consider the severity, category, and number of errors that were fixed and will be tested. Sometimes not all test cases will be executed during regression test. Regression test activitiesThe regression test activities are the same as all other test phases. They are:
If the test engineer is using a capture or test replay tool for testing and the test cases need to be witnessed by the client, QA, or security, the test engineer will need to decide ahead of time how the witnesses are going to verify each step and the expected results from the automated output report. The example test procedure data sheet or form is necessary. An example of this form is at the end of this lesson. When does test engineering begin regression test? The test engineer must schedule the hardware and software resources and the personnel needed to begin each test activity. If the software is well divided, such as with CSCIs, the test engineer can begin anytime after each CSCI has completed function testing. Otherwise, test engineering will probably want to wait until all function test cases have been executed. The entry criteria and input activities for Function Test are:
The exit criteria & outputs for function test are:
System test is typically performed as part of formal qualification test (FQT) for Government contracts. System test can be consider just another separate test phase for commercial contracts. Function test concentrates on the system requirements. ![]()
Test engineering may want to isolate performance, stress, and other system oriented requirements in their own grouping, regardless of whether the requirements are mapped to the software level. Test engineering will need to perform end-to-end testing during system test. System test for security is only relevant to systems with security related requirements. These are a few examples of test techniques are applicable to system test. The test techniques are:
System Test Tools to consider.
The system test activities and regression testing scope are the same as for function test. The entry criteria and input activities for system test are:
The exit criteria and outputs for system test are:
|
© January 1, 2006 James C. Helm, PhD., P.E.