0% found this document useful (0 votes)
4 views18 pages

Program Testing and Maintenance Guide

The document outlines the importance of a test strategy and plan in the program development lifecycle, detailing the types of tests that need to be performed to ensure the program meets its requirements. It categorizes test data into normal, abnormal, extreme, and boundary types, emphasizing the need for thorough testing. Additionally, it discusses the necessity of ongoing program maintenance, which includes corrective, perfective, and adaptive maintenance to address errors and improve functionality.

Uploaded by

dc1901020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views18 pages

Program Testing and Maintenance Guide

The document outlines the importance of a test strategy and plan in the program development lifecycle, detailing the types of tests that need to be performed to ensure the program meets its requirements. It categorizes test data into normal, abnormal, extreme, and boundary types, emphasizing the need for thorough testing. Additionally, it discusses the necessity of ongoing program maintenance, which includes corrective, perfective, and adaptive maintenance to address errors and improve functionality.

Uploaded by

dc1901020
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Program testing and maintenance

There needs to be a test strategy set out in the analysis


stage of the program development lifecycle showing an
overview of the testing required to meet the requirements
specified. This shows how and when the program is to be
tested.

In order to clarify what tests need to be performed, a test


plan is drawn up showing all the stages of testing and
every test that will be performed. As the testing is carried
out, the results of the tests can be added to the plan
showing that the program has met its requirements.
Likely contents of a test plan
In the first instance, an outline plan is designed, for example:
flow of control: does the user get appropriate choices and does the chosen option
go to the correct module?
validation of input: has all data been entered into the system correctly? do loops
and decisions perform correctly?
is data saved into the correct files?
does the system produce the correct results?
This outline test plan needs to be made into a detailed test plan.
Test data for test plan
Normal test data that is to be accepted by a program and is used to show the program is working
and expected

Abnormal test data that should be rejected by a program as it is unsuitable or could cause
problems

Extreme test data that is on the limit of that accepted by a program for example when testing the
validation rule such as number >= 12 AND number <=32 the extreme test value will be 12 at the
lower limit and 32 at the upper limit ; both these values should be accepted

Boundary test data that is on the limit of that accepted by a program or data that is just outside
the limit of that rejected by a program e.g when testing a validation rule like number>=12 AND
number<=32 the boundary test data would be 12 and 11 at the lower limit and 32 and 33…
Test data continuation…
at the upper limit. 12 and 32 should be accepted, 11 and 33 should be rejected.
The need for continuing maintenance of a system and the
differences between each type of maintenance
Program maintenance is not like maintaining a piece of equipment by replacing worn out parts.
Programs do not wear out, but they might not work correctly in unforeseen circumstances. Logic
or run-time errors that require correction may occur from time to time, or users may want to use
the program in a different wav.
Program maintenance can usually be divided into three categories:
• Corrective maintenance: is used to correct any errors that appear during use, for example
trapping a run-time error that had been missed during testing.
• Perfective maintenance: is used to improve the performance of a program during its use, for
example improving the speed of response.
• Adaptive maintenance: is used to alter a program so it can perform any new tasks required by
the customer, for example working with voice commands as well as keyboard entry.

Common questions

Powered by AI

Corrective maintenance addresses unforeseen errors that manifest during program use, such as runtime errors not caught during initial testing, which necessitates quick fixes to maintain functionality. For example, if a program crashes under a new operating system update, corrective actions are needed. Perfective maintenance improves efficiency without changing the program's core function, such as optimizing code for faster performance, responding to unforeseen user feedback on application speed. Adaptive maintenance involves modifying the program to meet new environmental or user requirements, such as updating software to incorporate voice command functionality in response to new technological trends, thus addressing unforeseen user needs .

Integrating test strategies early in the development lifecycle can identify potential design and logic flaws before they propagate into later stages, reducing the number of errors found post-deployment. This proactive approach enables the detection and resolution of issues related to control flow, input validation, and output accuracy during the initial phases, which diminishes the need for extensive corrective maintenance. It creates a culture of quality where errors are anticipated and addressed early, thereby minimizing the costs and efforts associated with ongoing error correction once the system is in use .

Corrective maintenance addresses and corrects errors found during the use of a system that were not caught during initial testing, which ensures the program remains functional in response to newly discovered bugs. In contrast, perfective maintenance focuses on improving system performance, such as enhancing speed or user interface, contributing to user satisfaction and system efficiency. Both types of maintenance are crucial for software longevity; corrective maintenance maintains basic correctness, while perfective maintenance ensures the software evolves with user needs and performance expectations .

Technological advancements significantly influence the types of maintenance required by necessitating adaptive updates, such as integrating new interfaces or supporting new hardware, to keep software relevant. They may increase the demand for perfective maintenance as performance expectations rise alongside technological capabilities. Furthermore, continuous technological evolution might expose previously hidden design flaws, requiring additional corrective maintenance. As technologies advance, the maintenance focus shifts toward ensuring interoperability with the latest standards and devices, enabling the software to leverage new opportunities while maintaining its reliability and performance .

Testing for boundary conditions improves software reliability by ensuring that the program can handle input values at the edges of its defined operating limits accurately. By verifying that the system correctly accepts values that lie precisely on the boundary and rejects those just outside, developers can confirm the robustness and correctness of input validations. This thorough validation ensures that unexpected behaviors do not occur due to mis-handling of such edge cases, thus enhancing the overall stability and reliability of the software under a wide range of input scenarios .

Adaptive maintenance plays a crucial role in allowing software to evolve over time by enabling it to perform new tasks required by customers, such as integration with new technologies like voice commands. This type of maintenance affects software development by necessitating a forward-thinking architecture that can accommodate future changes, promoting flexibility and scalability. It ensures the software remains relevant and competitive as user needs evolve and new technological advancements emerge .

Normal test data consists of inputs that the program is expected to handle and is used to show the program works as intended. Abnormal test data includes inputs that should be rejected due to unsuitability, ensuring robustness against misuse or data entry errors. Extreme test data refers to input values at the very limit of what the program accepts, verifying validation logic precision (e.g., 12 and 32 for a rule such as number >= 12 AND number <= 32). Boundary test data tests values at the edge of acceptable ranges or just outside, such as 12 and 11 at the lower limit, and 32 and 33 at the upper limit, with those inside accepted and those outside rejected, thereby testing the program's ability to correctly handle edge cases .

A detailed test plan should include specific elements such as flow of control, validation of input, loop and decision performance, data saving correctness, and system output accuracy. It is important because it provides a structured approach to confirm that the program meets its requirements. The plan includes different types of test data (normal, abnormal, extreme, and boundary) to ensure the program handles all possible inputs correctly, which minimizes the risk of errors and enhances the reliability of the program .

A test strategy established during the analysis stage outlines the testing procedures and requirements, ensuring thorough vetting of the program from the outset. By defining how, when, and what to test, it helps identify potential issues early, reducing future maintenance needs. A robust strategy lays groundwork for easier corrective, perfective, and adaptive maintenance by ensuring comprehensive documentation and a clear understanding of the system's capabilities and limits. This leads to a stable base for addressing errors, improving performance, and adapting the system to new requirements efficiently .

Inadequate maintenance planning can severely hinder a software's ability to adapt to new user requirements, leading to issues such as increased time and cost for modifications, reduced software lifespan due to irrelevance, and potential customer dissatisfaction. Without proper planning, incorporating new functionalities or adapting to new technologies becomes challenging, making the software less competitive. It may also result in a rigid architecture that does not support seamless integration of changes, thereby limiting the program's usability in dynamic environments .

You might also like