Create a gist now

Instantly share code, notes, and snippets.

@jmewes /notes.md Secret
Last active Oct 12, 2017

Embed
What would you like to do?
State-of-the-Art Software Testing -- Diomidis Spinellis

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8048644

Motivation

  • rising code base size and complexity
  • requirements for development spped and agility
  • distributed teams

Techniques

Unit testing

  • write tests for routines

Test-driven development

  • keeps tight focus on requirements
  • helps with testable design
  • better test coverage

Test pyramid

  • lost of unit tests
  • "selective doce of component and integration tests", e.g. REST service calls
  • A few end-to-end tests

Continuous Integration

  • run tests after each commit

Test coverage analysis

  • what code and percentage is covered by the automated tests
  • low/decreasing levels are warning signs
  • examine test effectiveness
  • measure runtime
  • measure brittleness

A/B testing

  • feature only released to a sub-set of users
  • compare the behavior of different groups
  • use feature toggles
  • easy way to measure outcome: detailed server logs with user interactions

Tips

Reduce boilerplate

  • e.g. with projects like Lombok

Reduce test smells

  • tools for intelligent selection of test cases to run => reduce test execution time
  • flag and correct brittle tests
  • have a stable staging environment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment