The requirements from consumers and stakeholders of high-quality and reliable software, puts pressure not only on the developers but also on the project management. With software getting more features and projects getting bigger, more work is demanded from the developers and more funds are funneled to their projects. This has led to cumbersome strategies such as ad-hoc and traditional testing techniques being disregarded since they're time-consuming in favor of automated testing, where machine learning is often used to automate and streamline the development.
How can Angluin’s algorithm be used in simulating and conducting unit tests for software systems? What would be the implications in regards of efficiency and reliability?
To answer this question, an software artefact was created which implements Angluin's algorithm, capable of recreating methods written in Java as nondeterministic finite automatons. With the artefact's help, software testers would simulate unit-testing software components solely with the visual depiction created, to explore if it would limit the time spent testing without compromising reliability.
The overall findings indicate that Angluin's algorithm holds substantial promise for advancing automated software testing. However, a notable limitation was identified when the artefact failed to terminate in a specific scenario, suggesting the need for further refinement of the algorithm. Addressing this issue is crucial to ensure the robustness and reliability of the approach across diverse testing scenarios. Integrating advanced model checking techniques such as Linear Temporal Logic (LTL) could further enhance the verification process, ensuring compliance with temporal properties. Future work will focus on refining the algorithm, exploring hybrid approaches, and conducting extensive evaluations to solidify the benefits of using Angluin's algorithm in automated software testing.