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
understanding
orperspective 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.