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