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.