Functional Integration Test Planning

[article]
Member Submitted

testing is to verify proper functionality between components, not to retest every combination of lower-level functionality. So we will want to test each unique message/action between the modules. Since the verification module only sends a message to the banking module if there is a successful authentication, we would only test a single failed authentication as a negative test, in order to verify that the verification module does not send a message to the banking module.

Inside the banking module, there is no integration with the hardware control module during the following scenarios: balance check, attempt to withdraw more money than the account contains and cancelled transaction. However, we don't need to test all of these scenarios, so we would only test one of them as a negative test. Positive tests would be run on the withdrawal and deposit processes. There are two messages the banking module can pass to the hardware control module: deposit and withdrawal. There are two messages the hardware control module can send back to the banking module: withdrawal success and withdrawal failure.

Test Cases
Test Case #1 : Deposit–Use a valid card with associated PIN to login to the ATM. Verify that the verification module passes bank account number to the banking module. Select deposit. Verify that the banking module passes the command to accept the deposit to the hardware control module.

Test Case #2 : Withdrawal success–Use a valid card with associated PIN for an account with a $100 balance to login to the ATM. Verify that the verification module passes bank account to the banking module. Select withdrawal of $40. Verify that the banking module passes the command to deliver $40 to the user. Verify that the ATM delivers $40. Verify that the banking module records a successful withdrawal transaction.

Test Case #3 : Withdrawal failed–Use a valid card with associated PIN for an account with a $20 balance to login to the ATM. Verify that the verification module passes bank account to the banking module. Select withdrawal of $100. Verify that the banking module passes the command to deliver $100 to the user. Verify that the ATM delivers no money. Verify that the banking module records a failed withdrawal transaction.

Test Case #4 : Negative test between verification module and banking module–Use a valid card with an incorrect PIN to attempt to login to the ATM. Verify that the verification module does not pass the bank account number to the banking module.

Test Case #5 : Negative test between banking module and hardware control module–Use a valid card with associated PIN to login to the ATM. Verify that the verification module passes bank account to the banking module. Select the option to check account balance. Verify that the banking module does not pass anything to the hardware control module.

Conclusion
The example we looked at is fairly typical of a functional integration test. It demonstrates several components that pass messages between each other. It is at each junction between components that integration testing occurs. In our case, the components were software modules inside an application. In your case, it may be at the module, application, system or corporate level. Once you determine the level at which you need to test, the next step is to understand each component at that level. Then you can determine each component interaction. With this information, you should be able to put together a comprehensive set of test cases.

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Sep 22
Sep 24
Oct 12
Nov 09