Changes for page Test Speedup

Last modified by chrisby on 2025/03/08 11:39

From version 1.58
edited by chrisby
on 2024/06/07 11:38
Change comment: There is no comment for this version
To version 1.59
edited by chrisby
on 2024/06/07 11:43
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -11,14 +11,14 @@
11 11  * **Improve I/O speed by using RAM disks**, such as Linux's tmpfs tool. Configure your tests to direct all file interactions to the RAM disk.
12 12  * **Parallelize test execution.** Multiple threads can improve execution speed even on single-core processors by keeping the CPU busy while other threads wait for disk
13 13  
14 -### Using DevOps Infrastructure
14 +### Use DevOps Infrastructure
15 15  
16 -A good developer should learn modern DevOps concepts, especially CI pipelines/jobs (in GitLab terms). Beginners may want to start with a third-party DevOps infrastructure provider, such as GitLab or GitHub.
16 +A good developer should learn modern DevOps concepts, especially CI/CD pipelines and jobs. Beginners may want to start with a third-party DevOps infrastructure provider, such as GitLab or GitHub.
17 17  
18 -* **Test type segregation**: You should consider regularly running fast tests, such as unit tests, on the developer's local machine, while scheduling more resource-intensive tests in a CI environment.
19 -* **Asynchronous Testing**: Running the entire test suite locally results in long wait times that block development. In such cases, you simply push the code to the source repository and have a CI environment that runs the test suite while you continue development immediately. If a CI job fails, you are notified so you can stop development and fix the problem first.
20 - * **CI Concurrency** can drastically enhance test execution speed.
21 - * **Enable concurrent CI pipelines**: The developer should be able to push code and spawn new CI pipelines that run immediately on different machines while old pipelines may still be running.
22 - * **Enable concurrent CI jobs**: Split the test suite into multiple independently executable CI jobs to allow concurrently execution.
23 - * Both of these measures require multiple machines to run the jobs, which is quite demanding on the DevOps infrastructure, but often worth the cost.
24 - * **Scheduled Testing**: A less resource-intensive alternative to the above approach is to run large test suites at a fixed rate, typically once a day at midnight, which is less demanding on the DevOps infrastructure.
18 +* **Test type segregation**: Regularly run fast tests, such as unit tests, on the developer's local machine, while scheduling more resource-intensive tests in a CI environment.
19 +* **Asynchronous Testing**: Running the entire test suite locally results in long wait times that block development. Instead, push the code to the source repository and let the CI environment run the test suite while you continue development. If a CI job fails, you will be notified so that you can prioritize fixing the problem.
20 + * **CI Concurrency**: Drastically enhance test execution speed by enabling concurrent CI pipelines and jobs.
21 + * **Concurrent CI pipelines**: Allow the developer to push code and spawn new CI pipelines immediately on different machines, even if previous pipelines are still running.
22 + * **Concurrent CI jobs**: Split the test suite into multiple independently executable CI jobs to allow concurrent execution.
23 + * Both of these measures require multiple machines to run the jobs, which can be demanding on the DevOps infrastructure but is often worth the cost.
24 + * **Scheduled Testing**: A less resource-intensive alternative is to run large test suites at a fixed interval, typically once a day at midnight, and run only the fast or important tests locally.