Automated Test Generation

Software testing is important, we all know that. It's laborious, error-prone, boring and expensive, we know that too. That makes testing the right candidate for automation.

There are several dimensions of the problem of software testing:

  • Software testing activities: test case generation, test execution, test evaluation
  • Software domains: embedded, web-based, object-oriented, enterprise ...
  • Automation technologies: Formal methods, e.g. model-checking, theorem proving, program analysis; AI based techniques; NLP based techniques
  • Types of testing: Unit-testing, integration testing, specification based testing, regression testing ...; non-function testing: performance, security, reliability ...

The area provides us with a rich treasure of interesting problems. Research in software testing, therefore, aims to reduce the labour-intensiveness of this unavoidable but uninteresting software engineering activity. In there, you get to use everything interesting you have learnt in computer science.