Mid-term Exam Account for 20% of the grade 100 points in total 50% multiple choice 50% questions and answer 1
Introduction to software quality Aspects of software quality Approaches to remove bugs* Testing Static Detection Verification Review 2
General Principles of Testing Basic Concepts* Test case, test oracle, test suite, test driver, test script, test coverage Boundary value testing* Equivalent classes* 3
Unit Testing Unit testing framework* Handle Dependencies 4 State machine of JUnit Find errors (incorrect way of using JUnit, low quality assertions, incomplete tear down, …) in test code Handle Dependencies Dependency injection Reduce dependency Test Double 4
Unit Testing (cont.) Test Doubles 5 Difference between types of doubles* Dummies Stubs : Configurable Stubs Fake Objects Mocks* Concepts, reason for using mocks Write test mocks with easymock 5
Higher level Testing Pros and Cons of different integration strategies* Big bang, bottom-up, top-down Environment issues to be considered in system testing Difference between Event-based and Screen- based GUI testing* 6
Test Coverage Code coverage* Input Combination Coverage* 7 Calculate statement/branch/data flow/path coverage of given code and input Know about code coverage status in practice Input Combination Coverage* Combination width Calculate input combination coverage given model, inputs and width Approach to extract model from inputs of non- enumerated types 7
Test Coverage (cont.) Mutation coverage* 8 Calculate mutation score given mutants and inputs Know about equivalent mutants 8
Regression Testing How to calculate APFD based on faults and a sequence of test cases* How to do coverage based test prioritization (Total & Additional Strategy)* Concept of data / control dependency Pros & Cons of record and replay* 9