Announcements
Midterm
- up to the end of week 6 stuff (including this week)
- format:
- Q1 short answer (5 of 6)
- Q2-Qn “major concepts”
- diagrams (use case, …)
- UML
- context models
- requirements
- agile + pros/cons of agile
- maybe scrum?
- important things: red stuff on slides
Note
Starting at week 6 slide 36
Software Testing
System testing
- components (off the shelf / created)
- goal is to ensure that all components interact correctly with each other
Test-driven development
- intertwine testing and code development
- tests are written before code and passing tests is critical
- introduced as a part of agile methods like Extreme Programming
- hackathon type thing, 24-48 hour “code fest”
- benefits:
- code coverage
- regression testing: new code does not cause old code to fail
- simplified testing: when a test fails, it should be obvious where the problem lies
- system documentation: tests are a form of documentation that describe what the code should be doing
Release testing
- separate team (non-developers) test a release before made public
- goal is to convince the supplier of the system that it is good enough to use
- differences from system testing:
- separate team that has not been involved in the development should be testing
- system testing is for finding bugs, release testing is for checking that it meets all requirements
Requirements based testing
- examining each requirement and developing a test/tests for it
Performance testing
- planning a series of tests where the load is steadily increased until the system performance becomes unacceptable
User testing
- users or customers provide input and advice on system testing
- types:
- Alpha testing: users of the software work with the dev team to teast the software at the devs site
- Beta testing: a release of the software is made available to users to allow them to experiment and raise problems they discover
- Acceptance testing: customers tests a system and decide whether or not it is ready to be accepted from the developers and deployed to customer environment
- primarily for custom systems
Agile methods and acceptance testing
- main problem is whether or not the embedded user is “typical” and can represent the interests of all stakeholders
Note
finished week 6 slides