Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jmewes

jmewes/notes.md Secret

Last active October 12, 2017 05:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmewes/c6b7a0e83311bfb72a8313efee07e87f to your computer and use it in GitHub Desktop.
Save jmewes/c6b7a0e83311bfb72a8313efee07e87f to your computer and use it in GitHub Desktop.
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