Carleton University - School of Computer Science Honours Project
Fall 2020
Parallel Acceptance Test of Concurrency in Web Application
Guanhong Wu
SCS Honours Project Image
ABSTRACT
The majority of web application servers may face some concurrent requests from different clients. Web applications have to asynchronously allow all requests, process them at the server-side, and update the correct data in the database. The parallel automatic unit test and acceptance test for development are essential to ensure all functionalities are correct and help developers reduce testing time in the whole development. However, simply running all test cases by a built-in parallel framework could cause many database conflicts in the database because of some unique fields, such as Id. Moreover, manually maintaining all unique data in the test case is not a long-term solution. And it could potentially cause test case failures by any small changes in future development. This project builds an airline reservation system that includes back-end server, front-end web application, and MySQL database. Using this system to demonstrate how to parallelly run test cases without any unexpected failures and verify the real concurrent scenarios. This project uses Junit for unit testing and Cucumber for acceptance testing. A data generator was implemented to control all unique data to avoid conflicting in the database. Thereby all test cases can be run either sequent or concurrent without any failures. Also, the test case can verify concurrency scenarios and reduce testing time by a built-in parallel framework.