Project for Fall 2014


Form a team of 4-6 people in the class. Let Prof. Dunsmore know via email (dunsmore@purdue.edu) by Friday, August 29 who is on your team. If you cannot form a team, let Prof. Dunsmore know as soon as possible and he will put those people together into teams or add them to existing teams that still need people.

Project Coordinator Responsibilities -- Teaching Assistant who will review all your work, accept things or request that further work be done, and will meet with you as needed concerning your project. The Project Coordinator will grade all submissions by your team.

Team Leader Responsibilities -- Schedule meetings with other team members and Project Coordinator as needed, coordinate work of all other team members, ensure that all things are done on time, and discuss with your Project Coordinator if there are team problems.

CS 40800 Software Testing Project

Your project will be divided into two parts --
(1) Your team will develop a software product doing inspections and testing during the software development process
(2) Your team will do Black Box Testing and White Box Testing on another team's software product

Note: All documents submitted to Project Coordinators in CS 40800 must be "professional quality". Any documents that are not professional quality will be returned ungraded. They can be re-submitted for grading with a 25% penalty.

(1) Your team will develop a software product doing inspections and testing during the software development process

  • Start by forming a 4-6 person team of students in the class.
  • Let Prof. Dunsmore know via email (dunsmore@purdue.edu) by Friday, August 29 who is on your team.
  • If you cannot form a team, let Prof. Dunsmore know and he will put those people together into teams or add them to existing teams that still need people.
  • Teams will be announced on the class Website by Saturday, August 30.

  • Develop a Project Charter (What the software will do). This must be turned in via Blackboard by 11:59 pm, Friday, September 5.
  • Your Project Coordinator will give you feedback in a day or two -- either approving the software product or asking for changes.

  • Develop a Product Backlog (Requirements Document) for this software.
  • Your software product should be approximately 2500 lines of code or more -- not counting comments or blank lines, that is 2500 actual lines of code or more. It should be written in Java or C.
  • The reason why we say "It should be written in Java or C" is to ensure that the testing process should not be too difficult for the other team that will test your product in part 2 of the project. If you do anything other than a simple desktop application, make sure that other teams can test it without a lot of trouble. If during development you use an emulator (like an android emulator), a specific database configuration, external libraries, etc., be sure to provide everything needed for testing in your repository, including directions about how to access such things. The bottom line is the Golden Rule -- Do Unto Other Teams as You Would Have Them Do Unto You! If you have any specific questions, ask your Project Coordinator for advice.
  • Develop a thorough Test Plan before beginning programming.
  • Use the principles of Black Box and White Box Testing when developing this Test Plan.
  • Use the SCRUM process to implement this software product.

  • Each team must use some version control system. Note that you must use a private repository (one which requires authentication). This is so that no other team can gain access to your repository.
  • Instead of turning in code on BlackBoard, teams will simply commit their code to their repository.
  • Also, keep things like your Project Charter, Product Backlog, and Test Plan in your repository.
  • "Invite" your Project Coordinator to your repository by Friday, September 12.

  • Put your Product Backlog and Test Plan in Blackboard and your repository by 11:59 pm, Friday, September 12.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

  • Sprint 1: Do Design Inspection, Code Inspection, and Unit Testing on your software product.
  • After each of the three steps, fix all defects found.
  • Create a log (report) of all defects found by Inspection and Unit Testing and how they were corrected.
  • You should create a Design for your product that shows major components. Start by inspecting that. List any defects found in the Design Inspection in the log. Then, move on to writing code. Inspect as many modules as you can. List any defects found in those Code Module Inspections in the log. Then, proceed to Unit Testing. List any defects found in Unit Testing in the log.
  • Put in Blackboard and your repository your log of all defects found by Design Inspection, Code Inspection, and Unit Testing by 11:59 pm, Friday, September 19.
  • You will receive a grade of 0-100 and this will count as 7.5% of your project grade.

  • Sprint 1: Do Incremental Testing and Regression Testing on your software product using the test cases from your Test Plan.
  • After each of the two steps, fix all defects found.
  • Create a log (report) of all defects found by Incremental Testing and Regression Testing and how they were corrected.
  • Put your log of all defects found by Incremental Testing and Regression Testing in Blackboard and your repository by 11:59 pm, Friday, September 26. (The grading rubric above was modified slightly from the version Prof. Dunsmore showed in class on Mon Sep 22. Section 5 was changed to make this easier for you.)
  • You will receive a grade of 0-100 and this will count as 7.5% of your project grade.

  • Sprint 2: Do Design Inspection, Code Inspection, and Unit Testing on your software product.
  • After each of the three steps, fix all defects found.
  • Create a log (report) of all defects found by Inspection and Unit Testing and how they were corrected.
  • Put in Blackboard and your repository your log of all defects found by Design Inspection, Code Inspection, and Unit Testing by 11:59 pm, Friday, October 3.
  • You will receive a grade of 0-100 and this will count as 7.5% of your project grade.

  • Sprint 2: Do Incremental Testing and Regression Testing on your software product using the test cases from your Test Plan.
  • After each of the two steps, fix all defects found.
  • Create a log (report) of all defects found by Incremental Testing and Regression Testing and how they were corrected.
  • Put in Blackboard and your repository your log of all defects found by Incremental Testing and Regression Testing by 11:59 pm, Friday, October 10.
  • You will receive a grade of 0-100 and this will count as 7.5% of your project grade.
  • Thus, Friday, October 10 is when your software product must be finished -- completely written and tested.

  • Next, you will seed your software product with at least 50 defects . These should not be syntax errors detectable by a compiler. They should neither be obvious nor make the code unrunnable.
  • Start by putting back in defects that you found during Inspection and Testing.
  • Add likely defects that might reasonably have happened during the software development process to get to a total of at least 50 defects.
  • Create a log (report) of all defects and suggested corrections.
  • Create an executable version of your product with the defects in it.
  • Create a set of instructions for how to run your product. Make sure that other teams can test it without a lot of trouble. If during development you use an emulator (like an android emulator), a specific database configuration, external libraries, etc., be sure to provide everything needed for testing in this set of instructions.
  • Put your executable, seeded-defect log, and set of instructions for running your product in Blackboard and your repository by 11:59 pm, Friday, October 17.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

    (2) Your team will do Black Box Testing and White Box Testing on another team's software

  • On Monday, October 20, you will be given by your Project Coordinator some other team's software -- their Project Charter, Product Backlog, instructions for running their product, and an executable version of their software.
  • Start by making a Test Plan for the other team's project and put that Test Plan in your repository.
  • Put your Test Plan for the other team's software in Blackboard and your repository by 11:59 pm, Friday, October 24.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

  • Conduct Higher-Order Testing (such as Performance Testing, Volume Testing, Stress Testing, Usability Testing, Security Testing) on the other team's project using the test cases from your Test Plan.
  • Create a log (report) of all defects found, but do not correct them. (You can't! You won't have their source code.)
  • Put in Blackboard and your repository your log of all defects found by Higher-Order Testing 11:59 pm, Friday, October 31.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

  • Conduct Black Box Testing on the other team's project using the test cases from your Test Plan.
  • Create a log (report) of all defects found by Black Box Testing, but do not correct them. (You can't! You won't have their source code.)
  • Put in Blackboard and your repository your log of all defects found by Black Box Testing by 11:59 pm, Friday, November 21.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

  • On Monday, November 24, you will be given by your Project Coordinator the source code of this software.
  • Conduct White Box Testing on the other team's project.
  • Create a log (report) of all defects found by White Box Testing.
  • Correct all defects found by both Black Box Testing and White Box Testing.
  • As you correct defects, do Regression Testing.
  • Put in Blackboard and your repository your log of all defects found and corrected by Black Box Testing, White Box Testing, and Regression Testing by 11:59 pm, Friday, December 12.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.

  • Finally, on one of the dates Fri, Dec 5, Mon Dec 8, Wed Dec 10, or Fri Dec 12, your team will give a Final Project Presentation.
  • You will receive a grade of 0-100 and this will count as 10% of your project grade.
  • Your team will be given a 15-minute time slot during class time to present a summary of what happened during both phases of the project.
  • You may use this 15 minutes in any way you like.
  • We suggest that you address the following questions. Note that the first three bullets of (1) below may be the most important things you learn from this class:

    (1) How you used Design Inspection, Code Inspection, Unit Testing, Incremental Testing, and Regression Testing on your own software product

  • Which things worked well?
  • Which did not?
  • What would you do differently in Inspection and Testing if you could do it all over again?
  • What strategy did you use to seed your software product with defects?

    (2) How you did Black Box Testing and White Box Testing on another team's software

  • How good was your Test Plan?
  • How good was the Black Box Testing part?
  • How many defects did you find?
  • How good was the White Box Testing part?
  • How many more defects did you find?
  • How good were your corrections?
  • Did you find some not logged by the other team?

    CS 40800 Software Testing Project Deadlines

  • Phase 1 ---
  • Fri, Aug 29 -- Team Assignments due
  • Fri, Sep 5 -- Project Charter due
  • Fri, Sep 12 -- Product Backlog, Test Plan due
  • Fri, Sep 12 -- Sprint 1 begins
  • Fri, Sep 19 -- Sprint 1 Design Inspection, Code Inspection, Unit Testing due
  • Mon, Sep 22 -- Monthly meeting between Project Coordinators and team members which includes demo of Sprint 1 (Mon-Fri, Sep 22-26)
  • Fri, Sep 26 -- Sprint 1 Incremental Testing, Regression Testing due
  • Fri, Sep 26 -- Sprint 2 begins
  • Fri, Oct 3 -- Sprint 2 Design Inspection, Code Inspection, Unit Testing due
  • Mon, Oct 6 -- Monthly meeting between Project Coordinators and team members which includes demo of Sprint 2 (Mon-Fri, Oct 6-10)
  • Fri, Oct 10 -- Sprint 2 Integration Testing, Regression Testing due
  • Fri, Oct 10 -- First Peer Evaluation due
  • Fri, Oct 17 -- Seed Project with at least 50 Defects

  • Phase 2 ---
  • Fri, Oct 24 -- Test Plan due
  • Fri, Oct 31 -- Higher-Order Testing: Performance Testing, Volume Testing, Stress Testing, Usability Testing, Security Testing due
  • Mon, Nov 10 -- Monthly meeting between Project Coordinators and team members (Mon-Fri, Nov 10-14)
  • Fri, Nov 21 -- Black Box Testing due
  • Fri, Dec 5 -- Defects Found and Corrected by Black Box Testing, White Box Testing, and Regression Testing due

  • Wrapup --
  • Mon, Dec 8 -- Project Presentations
  • Wed, Dec 10 -- Project Presentations
  • Fri, Dec 12 -- Project Presentations


    © 2014 by Purdue University Department of Computer Science.  All rights reserved.