Testing Lab: Turning Machine

15 Jan 2024 - 17:08 | Version 1 |

Learning Objective(s)

  1. Learn to develop a quality testing plan including unit testing and integration testing
  2. 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 Google shared drive and may be available 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.
  • Document the all code. Make sure that each file contains the name of the original author and your name.
  • 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
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
This website is using cookies. More info. That's Fine