219343: Software Testing

General Information

  • Workload
    • Two group projects (one tiny (15%), one small (25%))
    • Homework (10%)
    • One midterm (25%), one final examination (25%)


  • Homework 1 is up.
  • Midterm 1 is an open-book open-note exam, so you can bring any documents that you have. The topics covered are what we learn in class, so you can basically look at the list of topics from the class schedule below. But if you really want to know the list of topics, here they are: acceptance test, unit testing (designing test case), testing dependent units (mocks & stubs), risk analysis, test case design (equivalence partitioning, boundary values, pair-wise testing), and other general testing knowledge.


  • Homework 1 due Friday 21th Nov.
  • Homework 3. Write test cases for project use cases. Details are on e-mail.


If you want to know roughly what each topic means, click on the wikipedia link (i.e., ) after the topic.

  • Week 1. Introduction. Acceptance test () of user stories. | slides
    • Homework: each group in Jim's Software Spec and Design class should send me the links to the requirements and specification of your project.
    • More information on user stories: intro, effective user stories both by Mike Cohn; Info at xp website.
  • Week 2. Fundamental concepts of software testing. Unit testing (). Test-driven development (). Software specification review. | slides
    • Preparation: bring your laptop with some Java IDE installed (e.g., Eclipse or Netbeans); make sure that your IDE has junit integrated (it should).
    • Example code: Triangle.java
  • Week 3. Software Disaster (slides). Good unit test (slides). Testing dependent units (with Mockito). Developing requirements and acceptance tests for project 1 (slides on project info).
    • Preparation:
      • Install Maven2, install software needed to integrate Maven to your IDE: m2eclipse (for Eclipse), Mevenide (for netbeans also works with eclipse).
      • Install mockito, either manually or through Maven2. (added this dependency to Maven pom.xml)
    • Codes: TopK.java
  • Week 5. Early feedback (slides), Risk-based testing (slides), Discussion on design for testability. Pair programming practice.
    • Preparation for class: In this class, you'll practice writing unit tests (esp. using mocks) with your project. You'll do pair programming with your teammate (see video from week 4). Therefore, you should look into the testing framework that suites your programming language and environment.
  • Week 7. Dimensions of testing techniques (slides). Test design (2) (slides). Some practice of exploratory testing.
  • Week 12. Non-functional testing. Case study. Retrospective.


software_testing.txt · Last modified: 2009/02/19 23:03 by jittat
©2008 Another cool website by 80KV