This repository contains the work completed during the TDDD04 Software Testing course at Linköping University. The course explored a range of software testing techniques, such as exploratory testing, automated testing, and mutation testing, utilizing various tools and programming languages. It also addressed key aspects of the testing process, including test planning, design, and execution.
The course involved using different tools and languages to apply these techniques, ensuring a hands-on approach to real-world software testing challenges.
-
Lab 2: Implemented in Java and tested using JUnit. JUnit is a widely-used framework for unit testing in Java that allows you to write and run repeatable tests to ensure the correctness of your code.
-
Lab 3: Written in C and tested using KLEE. KLEE is a symbolic execution tool that automatically generates test cases for a given program, aiming to explore all possible execution paths. It helps identify edge cases and bugs by analyzing the source code without running it.
-
Lab 4: Focused on mutation testing. Mutation testing involves modifying a program’s source code to create mutants, which are small variations. The tests are then run against these mutants to see if they can detect the introduced errors. It helps evaluate the quality of the test suite.
-
Lab 5: Tested a website using GraphWalker, with tests executed through JUnit, as described in Lab 2. GraphWalker automates test case generation based on a model of the system's behavior, ensuring thorough path, state, and transition coverage.