Table of Contents
219343: Software Testing
General Information
- Instructor: Jittat Fakcharoenphol
- Section: 450 (ske): F 9 -12
- Textbooks:
- Main text
- Workload
- Two group projects (one tiny (15%), one small (25%))
- Homework (10%)
- One midterm (25%), one final examination (25%)
Announcement
- Please check out Software Testing Portal at Wikipedia.
- 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
- Homework 1 due Friday 21th Nov.
- Homework 3. Write test cases for project use cases. Details are on e-mail.
Schedule
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 (Acceptance_testing) 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 (Unit testing). Test-driven development (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:
- Codes: TopK.java
- Week 4. Testing in software development process. Test levels and test types. (slides) Testing principles. (slides) Discussion on project 1.
- Video on Agile Testing: Agile Testing by Elisabeth Hendrickson
- Videos on Pair Programming: Real programmers use sign language, Introduction to Pair Programming
- 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 6. Testing dependent units (cont.): mocks (Mock object) and stubs (Method stub)). (slides) Code coverage (slides). Test design (1) (slides).
- Codes: EasyCoverage.java
- Week 8. Exploratory Testing/Rapid Testing (1) (Materials by James Bach). Discussion of project.
- Week 9. Use case testing. Practice with project 2.
- Week 10. Discussion on testcase design homework. (slides) Test planning. (slides) Performance testing (intro). (slides)
- Test strategy: slides by James Bach
- Samples of test plans (in no particular order): SQAtester.com, Toolbox for IT, bazman, software testing help, qaquestions
- Scripting language for web browsing: twill
- Week 11. Test Execution. Defect management. Test automation. In-browser testing: Selenium.
- Slides: Test execution, Test automation. Both sets of slides are developed by Uwe Gühl.
- Week 12. Non-functional testing. Case study. Retrospective.