(12) Software Development
Program Testing and Management-
Program testing: The process of executing a program to find bugs and verify it works correctly.
Program Maintenance: The process of modifying and updating software after it has been deployed.
Ways to avoid faults; during comprehensive and rigorous program specification at the end of the analysis phase followed by pseudocodes, structure charts, state-transition at the design stage.
Ways to expose faults; typically during the testing stage where programs are corrected. However, complex programs are not guaranteed to be corrected, it could be exposed when the software go live. If so, they will be corrected during the maintenance phase.
Syntax Errors: They are errors in grammar. Programs are often compiled or interpreted before execution.
Corrected by the IDE that will give you a proper suggestion of that particular syntax mistake.
Logic Errors: Errors that happen when the program does not do what it is intended to do. Simple logical operation.
By dry-running
Run-Time error: An error that occurs when it is executed. It either stops or is trapped in an infinite loop and must be stopped by brute force.
A patch is released, (a program that runs with the existing program to correct the mistakes.)
Program Testing:
dry-run: When pseudocode is written.
Walkthrough: A more formalised dry run where an a member dry runs the program independently or a developer walks the members through how the program would work.

When a program is being developed these tests are carried out:
White box testing: It is the detailed testing of how a procedure works. It tests the logic and structure of every path in a program module.
Black-box testing: Tests the modules inputs and outputs.
Integration testing: If any module is written separately it tests whether they work together or not, if a module is not written;
A stub testing is used, where a dummy module is used for testing purposes.
After the program has been completed these tests are carried out:
Alpha testing: First, tested when the problem is complete or almost complete, it is tested in-house by the team members.
Beta testing: Second. Tested by a few users before the full release.
Acceptance testing: Proves to customers that the program works according to the requirement for the environment it will be used in.
Test strategy: It is an overview of testing required to meet the requirements of the program. It shows when and how the program is to be tested.
Test plan: Shows a list of all the stages of testing and the test that will be performed for a particular program.
Test data for a test plan:
Normal data: accepted by the program and is used to show program is working correctly.
Abnormal data: Rejected by the program as it could cause problems.
Extreme data: It is the limited of values to be accepted by the program.
Boundary data: Values that are found just outside the limit values and is rejected by the program.
Types of Maintenance:
Corrective maintenance: It corrects any errors while the program is running.
Perfective maintenance: It improves the performance of the program while it is running.
Adaptive maintenance: It alters the program so that it can perform any task required by the customer.