CS576: Assignment 2


The goals of this assignment are: (a) to create an Application Programming Interface (API) for the ATM (Automatic Teller Machine) simulator, which you used for the first assignment; (b) to automate the test suite created in the first assignment so that the suite can be executed without the need of human input; and (c) to extend the test suite developed for the first assignment with a more comprehensive test suite that employs the concept of equivalence partitions to achieve better statement coverage.

In the first assignment you used a suite of functional (black-box) test case descriptions to create a set of concrete test cases that contain actual values for inputs and expected outputs. These tests were executed by hand via the GUI of the ATM and the actual outcomes were compared to the expected outcomes. Using the Emma code coverage tool you were able to assess the statement coverage of the test suite you created.

In this assignment you are asked to modify the code of the ATM to create an API that captures the capabilities of the ATM. This API will enable you to execute the features of the API programmatically and thus enable you to automate the execution of your test suite. In addition to creating the API and automating the test suite, you are asked to use equivalence partitions to extend the test suite in order to achieve better statement coverage and to improve the black-box test suite for the ATM. Use the junit tool to automate the execution of your comprehensive black-box test suite. You can download junit and learn more about how to install and use the tool by accessing the www.junit.org website and reading the CS576 course slides on Testing Tools.

You are asked to submit the html output of the Emma code coverage tool along with your testing document. Simply instruct Emma to generate the html report after you are done executing the entire test suite. In your document, comment on how well the functional tests cover the source code of the ATM simulator. If your statement coverage is low you might want to improve it by adding more test cases. Obviously the GUI will be bypassed if you test the ATM via the API so just add a comment in your report explaining this.


The deliverables for this assignment are: Submit your assignment by 6:00PM of the due date via e-mail to the TA (evs23 @ drexel.edu). Please package the deliverables as a single zip file. Late assignments will not be accepted.