ソフトウェア開発プロセスにおける結合テストの実施内容として, 適切なものはどれか。
平成23年度 秋期 ITパスポート試験 問41
This question's explanation and your answers so far.
問 41
Incorrectア
Connecting several PCs with LAN cables and testing that files can be shared is not part of the process of developing software; it is a network operation check, a connectivity check that confirms whether the LAN that has been built works correctly. What is verified is not an interface between programs but the cabling, the device settings, and the sharing settings, and there is not even any concept of modules that have already passed unit testing as a premise. Checking work carried out after a network has been built is never called integration testing, so this is incorrect.
Incorrectイ
Checking the shape of the socket of the cable that joins a PC and a peripheral device, and confirming that the cable can be inserted without difficulty, is nothing more than a hardware connection check that looks at whether the connector shapes and interface standards match physically. The interface here is not a calling specification between programs but the physical shape of a connector; the words resemble each other, but the objects are completely different. Since no software is run at all, this does not fall under a test phase of the software development process.
Incorrectウ
Confirming that a website can be viewed in a browser after signing a contract with an Internet service provider is a service activation check, in which the user confirms that the Internet connection service has been opened correctly. It merely uses a ready-made browser and an external service, and does not combine programs that were developed by oneself. It involves neither the process of combining modules that have passed unit testing nor the verification of conformity with an interface specification, so it cannot be called integration testing.
- エ
正解 The correct answer is エ. Integration testing is the test phase in which several programs (modules) that have passed unit testing are combined and run, in order to verify whether the interfaces between the modules are built as specified and whether the modules work together correctly. Testing in software development is structured as a stepwise build-up from the bottom: first unit testing checks the internal processing of each individual module, then integration testing checks the joints between modules, next system testing checks that the system as a whole behaves as required, and finally operational testing and acceptance testing let users confirm that it is suitable in the actual business environment. In エ, the premise “combine two programs that have passed unit testing” corresponds exactly to the position of integration testing as coming after unit testing is finished, and what is verified is also “whether the interface between the programs is created as specified and works together correctly,” which is precisely the joint between the modules itself. The problems that integration testing actually uncovers are inconsistencies that unit testing can never find: the number, order, or data types of arguments differ between the calling side and the called side; the number of digits or the units of the data passed differ; return values or error codes are interpreted differently; or the order or timing of calls differs from what was assumed. No matter how correctly each individual module is built, if the people in charge interpret the interface specification differently, everything breaks down the moment the modules are combined, which is why this phase is needed as an independent step. Therefore, エ is the appropriate content for integration testing.
- Definition of integration testing — the phase in which several modules that have passed unit testing are combined, and it is verified whether the interfaces between the modules (the number, order, and data types of arguments; the number of digits and the units of the data passed; the interpretation of return values and error codes; the order of calls) are as specified and work together correctly. The purpose is to uncover inconsistencies at the joints that unit testing cannot find.
- Stages of the test phases and what each verifies — the scope of verification widens from the bottom upward, in the order unit testing (the processing inside a module) → integration testing (the interfaces between modules) → system testing (whether the system as a whole meets the requirements) → operational testing and acceptance testing (users confirm suitability for business in the actual operating environment). When asked which test something is, judge by “what is being verified.”