A case study on improving the software testing process
Harjunheimo, Daniel (2024)
Harjunheimo, Daniel
2024
Automaatiotekniikan DI-ohjelma - Master's Programme in Automation Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
Hyväksymispäivämäärä
2024-12-02
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024112710586
https://urn.fi/URN:NBN:fi:tuni-2024112710586
Tiivistelmä
Software testing is a critical part of the software development process that ensures the quality, accuracy, and safety of software and builds trust between the user and the software. Testing is particularly essential in safety-critical, high user count, or complex applications, where undetected issues can lead to serious consequences. Effective testing processes support risk management, user safety, and the business goals of the company, ensuring a high-quality product for the market. As quality and safety requirements evolve continuously, testing processes also must be developed to meet these new demands. In recent years, security and safety requirements have become central, and software increasingly needs to meet quality standards such as reliability and compatibility with other systems. Due to these rising demands, testing processes must be constantly adapted and improved to meet up-to-date quality and safety goals, providing an excellent user experience in increasingly tight market competition.
This thesis studies software testing processes and their potential for improvement from a qualitative perspective, as well as with possible methods for measuring quality. The research includes a literature review of theories and methods in testing processes and both qualitative and quantitative research sections. Through interviews and data analysis, the strengths and areas for improvement in the commissioning company’s testing processes were identified. The literature review explored fundamentals and various aspects of software testing, such as risk management, the importance of test automation, and the definition and use of metrics for monitoring processes. Additionally, the study reviewed various testing process models to identify areas and ideas for improvement. In thematic interviews, the organization’s testing strategy, structure, testing lifecycle, and the compatibility of tools and environments with testing needs were evaluated. Quantitative analysis, in turn, examined issue detection and resolution times by severity level across projects.
The results of this thesis demonstrate clear opportunities for improving the commissioning company's software testing processes. Qualitative analysis revealed the strengths of the testing process, such as the professional skills and teamwork of testers and a foundational basic testing process. However, areas for development were also identified, including the need for more precise process models and practices, product segregation management, and standardization of testing practices across teams. Quantitative analysis examined the size and resolution speed of issues across projects, showing that critical errors are typically detected and fixed quickly. However, project-specific differences were noted, particularly in terms of complexity and resources, which significantly impact issue handling and prioritization. Suggested improvements, such as expanding and clarifying metrics and establishing a team dedicated to testing process development, aim to improve testing quality and efficiency. The results also indicate that the organization would benefit from a systematic approach to managing technical debt and broader use of test automation. This would enable faster product releases and reduce the need for manual work. Furthermore, the study identified that as systems become more complex, testing processes increasingly require advanced technical expertise and problem-solving skills.
This thesis studies software testing processes and their potential for improvement from a qualitative perspective, as well as with possible methods for measuring quality. The research includes a literature review of theories and methods in testing processes and both qualitative and quantitative research sections. Through interviews and data analysis, the strengths and areas for improvement in the commissioning company’s testing processes were identified. The literature review explored fundamentals and various aspects of software testing, such as risk management, the importance of test automation, and the definition and use of metrics for monitoring processes. Additionally, the study reviewed various testing process models to identify areas and ideas for improvement. In thematic interviews, the organization’s testing strategy, structure, testing lifecycle, and the compatibility of tools and environments with testing needs were evaluated. Quantitative analysis, in turn, examined issue detection and resolution times by severity level across projects.
The results of this thesis demonstrate clear opportunities for improving the commissioning company's software testing processes. Qualitative analysis revealed the strengths of the testing process, such as the professional skills and teamwork of testers and a foundational basic testing process. However, areas for development were also identified, including the need for more precise process models and practices, product segregation management, and standardization of testing practices across teams. Quantitative analysis examined the size and resolution speed of issues across projects, showing that critical errors are typically detected and fixed quickly. However, project-specific differences were noted, particularly in terms of complexity and resources, which significantly impact issue handling and prioritization. Suggested improvements, such as expanding and clarifying metrics and establishing a team dedicated to testing process development, aim to improve testing quality and efficiency. The results also indicate that the organization would benefit from a systematic approach to managing technical debt and broader use of test automation. This would enable faster product releases and reduce the need for manual work. Furthermore, the study identified that as systems become more complex, testing processes increasingly require advanced technical expertise and problem-solving skills.