Software Testing
Software testing is a very important activity before implementation. Some large organizations usually have a dedicated team for testing software before it is implemented. However, not all organizations have such a team. Therefore, some organizations involve analysts in testing, because analysts understand the organization's needs better and can measure software performance in terms of functional and non-functional requirements.
Users can be involved in testing specifications, and even in deciding whether the system is accepted. In situations like this, a test scenario that has been approved by all parties is usually prepared in advance.
The main principle of testing is to make sure that all requirements are met by the new system. There are 2 testing techniques that are commonly used: black box testing and white box testing.
Black box testing is done by entering input into the system and checking whether the output matches what is expected. How the output is produced is not examined in black box testing.
In white box testing, on the other hand, testing is done precisely to find out how the output is produced (which black box testing does not do). The problem is that doing so requires the program's source code. Unfortunately, not all developers offer this option. As a middle ground, some organizations require developers to give a copy of the source code to a third party. That way, if the developer goes out of business midway, the organization can still obtain the source code from the third party and develop it according to their needs. Testing is usually carried out at three levels:
Level 1
- Testing individual modules
- Followed by testing the whole program
- Then testing the entire series of programs
Level 2
- Known as alpha testing or verification
- The program is run in a simulated environment
- Input testing is performed specifically by:
- Entering a negative value when a positive result is expected (and
- vice versa)
- Entering values outside or near the tolerance limits
- Entering incorrect combinations
Level 3
- Known as beta testing or validation
- The program is run in the live user environment
- To find out the application's execution time
- Involving large amounts of data
- To find out how long recovery from errors or failures takes
The final stage of testing is user acceptance testing. This final stage is an evaluation by users against the requirements agreed at the beginning. The result of this acceptance (evidenced by the user's signature) will end the project. Usually, the documentation from the analysis results (especially use case scenarios and non-functional requirements) is used to check the final product. Thorough testing requires documentation of what is planned and what is expected. This includes the expected output of each test, the actual output obtained, and the technique for re-testing if there are failures. Many organizations already have a standard format for this. Spreadsheets are usually used for this record-keeping, because they make it easy to present test result reports in terms of percentage achieved. Testers must be careful with unexpected test results. Testing on different operating systems can often reveal these unexpected results. A common problem when testing on different operating systems is the use of uppercase or lowercase letters (case sensitivity). Problems like this are usually reported as bugs that must be fixed by the developer.
Bibliography
Munawar, M. (2023). Analisis Perancangan Sistem Beroritenasi Objek Dengan Unified Modelling Language Edisi 2. Bandung, Jawa Barat, Indonesia: Informatika