¶ … top-down and bottom-up programming, testing in these two specific situations is obviously adapted to the specifics of each type of programming.
In this sense, because top-down programming implies that the initial program's functionality is divided into a series of subroutines and each further divided into sub-functions until the smallest remaining unit, testing in this case will be applied to each component in part and will address the functionalities of each unit. The tester, in many cases assimilated to the programmer here, will check that the graph he has designed actually reflects the mathematical requirements or that the Save button actually does what it is supposed to.
On the other hand, because of the particularities of bottom-up programming, bottom-up testing will comprise the entire system's functionality, being referred to, in this case, as integration testing
. In my opinion, such testing may prove more difficult because of the encompassing view it needs to have. In this sense, the tester is not interested only in discovering the particular components' functionality, but also needs to see how these components fit together in the overall functionality of the application. The second type of testing may, in this sense, include the first.
A test script is a most helpful element in both cases, but particularly in the latter. Indeed, this points out to the most important functionalities the program needs to abide by in the end. It is also a simple way to keep track of things that work or those that may not and follow through on the debug.
2. In order to best address this question, we need to point out that, in theory, there is a large spectrum of programming errors, ranging from errors in the computer code (compilation and linking errors, execution time errors), truncation errors, resolution errors, round-off errors or data errors
In the case of to-down testing or component testing, the fact that each component's functionality is verified implies that compilation errors are easiest to discover and later correct. Indeed, any syntax error in the modules is equivalent to a compile-time error, at which point the programmer will not be able to complete an executable that can be used.
In the case of bottom-up testing or integrated testing, the fact that the entire functionality of the program is verified means that the compile-time error is probably among the last things one may consider in the case of a malfunction and will proceed to checking overall problems that may have appeared.
On the other hand, the data errors may seem more likely to be discovered earliest in the case of bottom-up programming. In my opinion, the reason for this is closely linked to the overall functionality.
Indeed, if there is an error in the output data referring to the expected mathematical response, it is most likely that either the mathematical model that has been used is incorrect, in which case you need it needs to be corrected, or that the input data was wrong. In both cases, receiving an output that does not correspond to the reality will provide a clue on the malfunction of the integrated system and is easiest discovered with bottom-up testing.
3. In my opinion, top-down testing requires a larger number of testers, because the idea is that each one is specialized in testing a certain module of the overall application. In this sense, the integrated testing approach is more likely to employ only one or two testers for the final application and its functionality. The bottom-up approach, on the other hand, employs extra resources in terms of test scripts and bug tracking devices, because it is more extensive and tends to be exhaustive.
In terms of capturing important errors early in the testing process, component testing seems to make more sense, because many of the programming errors may be discovered in the lower levels of the process. Indeed, it is often the case that applications don't work because of simple syntax errors or infinite loops that are created because of not paying attention at the respective time.
You’re 82% through this paper. Sign up to read the full paper.
Sign Up Now — Instant Access Already a member? Log inAlways verify citation format against your institution’s current style guide requirements.