ABSTRACT
CONTENTS 2
LIST OF FIGURES 4
GLOSSARY 5
INTRODUCTION 6
1 Designing a concept for automated web testing evaluation 7
1.1 Defining a Task and Solution structure 7
1.2 Testing a submitted solution 7
2 Requirements analysis 14
2.1 Analyzing CodeHedgeHog 14
2.2 Recognizing the main business process 15
2.3 Functional and Nonfunctional requirements 17
2.4 Formalizing requirements 18
2.4.1 Use cases 18
2.4.2 Problem Domain Model 23
3 Choosing the stack of technology 26
3.1 .NET 26
3.2 Dapper 27
3.3 RabbitMQ 28
3.4 Reactjs, JQuery, EasyUI 30
4 Design and development of the system 32
4.1 System architecture 32
4.2 Setting up Selenium Grid 42
4.2.1 Starting Components locally 43
4.2.2 Starting components using Docker 44
4.3 Containerizing the systems components 44
4.4 Sandboxing 46
4.4.1 Namespaces 46
4.4.2 Control groups 48
4.4.3 Implementation 48
5 Prototypes 51
CONCLUSION 56
Software testing plays a crucial role in the software development lifecycle, ensuring that product releases adhere to requirements and remain free of defects. Consequently, the inclusion of software testing and quality assurance as part of the curriculum is essential for educating students and equipping them with industry-standard competencies.
In the traditional approach to teaching software testing, instructors manually evaluate each submitted solution. However, this method is often time-consuming and restricts the number of students a single teacher can effectively instruct. To address similar limitations in other areas of teaching, solutions have been devised to enhance such processes in the realm of IT education. One notable success story in this context is the implementation of online judges for data structures and algorithms.
However, the absence of platforms dedicated to automated software testing is evident. Consequently, the purpose of this work is to devise a conceptual framework for automated website testing—a subset of software testing. Then, with this framework as the foundation, create an educational website testing platform tailored for both students and educators.
Such a platform will have the following benefits:
• Reduced workload on teachers due to automatic marking,
• Improved student interaction due to gamification of the learning process, and competition with peers,
• Availability of metrics ( time, memory and other computer resources)
To achieve this goal, it is necessary to solve the following tasks:
• Design a concept for automated web testing
• Formulate requirements for an application to be developed
• Design the application being developed
• Implement the application
In conclusion, this thesis presented the design and development of a prototype for an automated testing system for checking automated tests developed by students. The project began with the conceptualization of a system capable of evaluating automated web testing scripts submitted by students. This was followed by the formulation of requirements for the application to be developed, ensuring that it would meet the needs of its intended users.
The design and implementation of the application were carried out with careful consideration of these requirements, resulting in a robust and efficient system
Future work could include:
• Deploying and measuring performance
• Refining the application based on user feedback
• Add test recording and screenshot functionality
• Integrate with other educational tools in TSU