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
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
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.
- A README file that explains the directory structure of your assignment deliverables and documents
how to compile the code (with and without Emma instrumentation), run the test suite, generate the
Emma report, and so on.
- Entire ATM source code, which will include code for the newly designed API of the ATM.
- A comprehensive black-box test suite that extends the test suite from the first assignment to use
- junit code to make calls to the ATM API in order to execute the entire black-box test suite automatically.
(Do not use junit to create a white-box test suite).
- A document that contains: (a) a description of the comprehensive test suite; (b) documentation of the
ATM API; (c) the actual outcomes of the automatically executed tests; (c) the pass rate of the
test cases of the entire test suite; and (d) commentary on how well the functional tests cover the source
code of the ATM simulator.
- An html report generated by Emma indicating the code coverage when executing the comprehensive black-box