Learn to develop a quality testing plan including unit testing and integration testing
Learn about the Turing Machine.
Overview of the lab
Learn about the Turing Machine by reading online about it. Wikipedia is a good source.
You do NOT need to write a program to simulate a Turing machine. You are provided with one (with some sample code to run it). You are to develop a testing suite for it and see if there are errors. The primary goal is to learn to do quality testing. The code is in the github classroom. URL: https://classroom.github.com/a/zDrErhey
Specifics
The code is found the GitHub Classroom repository for this lab.
You need to develop comprehensive unit testing for: Tape, Instruction, Instructions
Also develop integrated testing
Phase 1
Create a UML diagram for the code
Design a testing plan
Complete a Software Design Report and submit one pdf containing it.
The grade will focus on the quality of the testing plan
Phase 2
Write a driver to do the unit testing for Tape, Instruction, and Instructions. Create a separate method for each class tested.
Fix any mistakes found. Highlight the changes to the code in the documentation. Make it VERY obvious what you changed
Implement the integration testing (as a separate method). Fix any mistakes found. Highlight the changes to the code in the documentation. Make it VERY obvious what you changed
Create a Software Development Report incorporating any changes from feedback on phase 1
In Lessons Learned, discuss
What you learned about testing
Insights you got from working with the code provided
Create zip folder with
All code you created or modified
Your SDR as a single pdf file
A complete description (in the SDR or a separate file) as to exactly what the output should look like if it passes your tests. This would be used to do regression testing later if changes were made to the code.
Optional improvements
Change to code so that it works with command line arguments and then create a Linux script to automate the testing
Unit test the TuringMachine class with only stubs for its classes