In this thesis we introduced the topic of software testing, which is a key part of software development and focuses on quality during development and quality of the final product. We touched on the motivations and goals for software testing and found that there are many of them. We described that there are several levels of testing. We touched on unit testing, integration testing, system testing and acceptance testing.
We described the concepts of functional and non-functional testing and described them. We have also mentioned the concepts of white box and black box testing. We also stressed the importance of regression testing and when to do it.
In the following sections we describe why test automation is well suited for regression testing and the tools that enable us to do it. We focused on Cypress, which is the newest tool and offers a lot of features, Puppeteer, which is a product of the Google team and allows us to do the most direct testing in the Chrome web browser, and Selenium. Selenium is currently the leading automation tool because it is the most flexible, the most supported and the most extendable - if we take the time to develop it.
In the practical part of the thesis, we introduced Moodle 4.0 and highlighted why it is a good successor to the current FRI online classroom. We also described how Moodle is currently tested and gave the goals of automating the testing. We concluded that by extending Selenium we can make it easier to implement and read tests. With the extension implemented, we wrote three key tests covering the key interactions with the web interfaces. We also suggested some improvements to the thesis, such as the formal definition of the tests in a tool designed for this purpose and the integration of the tests in CI/CD.
|