V Model and Testing - KU-SKE17/Software-Process GitHub Wiki
V-Model
| Activities or phases in SDLC | V | V&V, including different kinds of testing | ||
|---|---|---|---|---|
| Requirements Elicition or... | <-> | create acceptance test | -> | Acceptance Testing |
| System Design (Arch) | -> | create acceptance test | -> | System Testing Integration Testing |
| Software, Module, or Detail Design | ||||
| Implantation on (coding) | create Test Plan | Unit Testing |
- In Agile
- developers are supposed to write and run unit tests while writing code
- use C.I.
- In V-Model
- last line [Implantation, Test Plan, Unit Testing] might overlap at the same time
Problem when having a developer write tests for his own
psychological problem- The developer doesn't try very hard to make his own code fail
- Thorough tests -> more work to fix code
understandingorperspective problem- (test from the code, not test from the spec)
- You write tests based on the code you already wrote, not based on what software should do
- Your thinking is biased (code for too long)
- Your tests might be incomplete (fail to test some part of the spec)
2 techniques to measure how thorough our tests
Code Coverage-> statement coverage, branch coverage, path coverageMutation Testing-> modify some part of the code & run the tests to see if the change is defected- Change operators [+, -, *, /, //, %, or, and, not]
What are the current systems and why are they difficult to test
- System with multiple threads and/or events that can arrive in
undetermined order - Different hardware environment can have different number of cores and CPUs, so the number of simultaneously running threads may differ, too.