Application testing must be performed in order to ensure that an application is capable of proper function, even if presented with invalid or conflicting data. It also provides a simple measure of base functionality within the expected operational environment. Automated alpha-phase testing may be done using code-based agents based on classes within the System.Diagnostics namespace of the .NET Framework. Test users often perform additional human-interaction testing during the beta-testing phase.
Testing should include each module when the code is first created (unit testing); then combinations of modules should be tested as each module is integrated into the application (integration testing). Testing is also crucial after a correction or update has been performed in order to ensure that the changes have not introduced new errors or caused unexpected results (regression testing).
When planning for a test, you need to determine which software segment or functionality will be tested, what approach will be used during testing, what constitutes a success or failure within the testing boundaries, and who the responsible individuals will be during testing. Reporting and documenting during testing, including both successful and failed results, are important parts of the complete documentation for your application. Testing should include a measure of three key elements of operation:
The following sections discuss three forms of testingunit testing, integration testing, and regression testing. Unit TestingUnit testing involves the testing of a single code module or class. This level of testing ensures that each module can perform properly alone and allows testing to be conducted before other code segments may have been created. This approach also limits the scope of testing to a smaller segment of code and makes it possible to test modules of very resource- intensive applications without heavily loading the development server. Integration TestingIntegration testing ensures that all modules work with one another within an application by locating errors that may arise between code segments. Integration testing is performed in several ways:
Which method of integration testing you use is largely a matter of personal preference. Bottom-up testing is most useful on large applications, where substantial code may be available before the entire application is sufficiently finished to be tested. Top-down testing is useful when there is a main code path that's finished while other code is still being written. Umbrella testing is often used when an application is to be released in a limited form, with additional functionality added in successive versions as more elements are tested and integrated into the product. Regression TestingRegression testing is performed each time a change is made to an application to ensure that the modification has not introduced new errors into the application and that the change provides the desired result. Regression testing takes place throughout an application's lifecycle, both during development and when an application is being upgraded or patched.
|