Software Testing

Image 1 of 1
Testing Frontpage

Our society is built on software. It powers our homes, manages our private information, controls our cars, automates our factories, and even regulates our bodies. It is incredibly important that we construct robust, operational systems, especially given the growing demand for complex features, limited development budgets and strict time constraints.

Software testing is the dynamic execution of software under different scenarios and operating conditions. These executions are monitored, and the results are compared to the expectations of the development team. Testing is the most common – and often, most effective - method of assessing whether complex systems meet their correctness, performance, and quality goals.

Software testing is a non-trivial, expensive, and error-prone process. Researchers in our division are attempting to answer questions such as:

  • Given the near-infinite number of scenarios that could be executed, which should be attempted to best assess whether the system-under-test meets our goals or to identify faults in the system-under-test?
  • Which test cases should be executed during a given build to decrease build time and improve feedback time?
  • How can testing for non-functional properties, e.g., software performance, be integrated effectively into CI/CD pipelines?
  • How should expected behaviors be specified, especially when a system behaves in a non-deterministic manner?
  • How should test suites evolve over the development lifecycle?
  • How can the human burden of testing be reduced through automation and AI-based support tools?

New and improved testing tools, techniques, and methodologies are needed for today’s complex systems – especially with the increased use of machine learning and distributed architectures. The researchers in our division have decades of experience as pioneers in the testing field, especially with regard to test automation and automated test case generation.

Research areas

  • Test automation and automated test case generation
  • Testing of AI, ML, and autonomous systems
  • Testing of embedded and automotive systems
  • Performance testing
  • Mutation and fault-based testing

Computer Science and Engineering, a joint department between Chalmers and the University of Gothenburg.