Software Testing is a process of investigation carried out to obtain information about the quality of a product or service being tested, or more specifically software testing is the process of executing a program to find bugs (errors or other defects) of the software.
Software testing also provides an objective and independent view of the software, which is useful for understanding the level of risk in its implementation.
This can also be stated as a process of validation and verification that a program:
- Meet the technical requirements and needs that underlie the design and development of the software
- Work as expected
- Can be applied using the same characteristics.
Testing Levels
Some of the testing stages commonly passed by the application are as follows:
Unit / Component Testing
Divided into testing of units and components:
Unit testing is a testing process where testing is done on the basic part of program code, for example in testing program code for events, procedures and functions. With Unit testing make sure that each unit works as it should.
Component testing is, testing is done in a part of the program code separately from other parts, component testing can be done every time a kdoe unit is complete, unit code testing is run line by line to ensure the process runs as desired.
Integrating Testing
After Unit / Component testing is run, the next step is to examine how the units work as a combination (working together), no longer as an individual unit. If at the unit testing stage there are two functions that are going well individually, then at the Integration Testing stage, testing will be carried out from the results of the interaction of the two functions, whether working according to the results expected, testing must also be carried out in all conditions that may occur from the results between these units.
System Testing
Includes testing of applications that have been developed. Therefore, the application must look and function as it should for end-users or end users. For this reason, testing is carried out using data that describes the real user of the application.
Acceptance Testing
Like Integration Testing, Acceptance Testing also includes testing the entire application. The difference is in who does the testing. At this stage, the selected end-user tests the application functions and reports the problems found. The testing carried out is a simulation of the real use of the application in the actual environment. This process is one of the final stages before the user approves and accepts the application of the new application system. Therefore at this stage it is no longer focused on raising minor issues such as typos, or application design. Minor things like the above should be handled during Unit / Component Testing and Integration Testing.
Regression Testing
Regression Testing includes re-testing the unit, component, process, or the entire application after repairing an error is done. Regression Testing ensures that problems occur have been overcome, and no new problems arise as a result of these improvements. In addition, this stage is not only useful for testing applications, but can also be used to monitor the quality of the output produced. For example, Regression Testing monitors file size, the time needed to do a test, the time needed to compile, and so on.
Testing Methods
White box testing is testing that is based on checking the design details, using the control structure of the program design procedurally to divide the test into several test cases. At a glance it can be concluded that white box testing is a guide to getting the program 100% correct.
White box testing:
To find out how to work a software internally.
To ensure internal operations are in accordance with predetermined specifications using the control structure of the designed procedure.
White box testing:
Guarantee that all independent paths are executed at least once. Independent path is a path in a program that shows at least one set of processes or new conditions.
Undergo logical decisions on the side and false.
Execute looping within specified limits.
Test the internal data structure.
White box steps:
Defines all logic flow
Build cases for use in testing
Doing testing.
White Box Testing Strengths
Logic error. Used in the ‘if’ syntax and repetition. Where White Box Testing will detect conditions that are not appropriate and detect when the repetition process will stop.
Assumption mismatch. Showing assumptions that are not in accordance with reality, to be analyzed and corrected.
Typo. Detect programming languages that are case sensitive.
Weaknesses White Box Testing
For software that is classified as large, White Box Testing is considered a strategy that is classified as wasteful, because it will involve large resources to do it.
Black Box Testing
Black box testing is a test that is only carried out observing the results of execution through test data and functional checking of the software. So analogous as we see a black koatak, we can only see the outer appearance, without knowing what’s behind the black wrapper. Just like testing a black box, evaluating only from the outside appearance (its interface), its functionality. Without knowing what really happened in the process of detail (only knowing the input and output).
Black Box Strengths
Can choose subset tests effectively and efficiently
Can find defects
Maximizing investment testing
Black Box Weaknesses
The tester is never sure whether the OT really passed the test.