Changes for page Test Speedup
Last modified by chrisby on 2025/03/08 11:39
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Test Speed up1 +Enhance Test Execution Speed - Content
-
... ... @@ -1,18 +1,18 @@ 1 -Fast testingnotonlysaves time,butalsoenablesmore frequentexecution, leading to improved code quality.Optimizing thespeedoftest executionistherefore critical. While extensive andfrequent testing isideal, it shouldn'texcessively slow the pace of development.1 +Fast-executing tests require less time and are executed more frequently, contributing to improved code quality. Therefore a high test execution speed is beneficial. 2 2 3 3 4 4 === Measures === 5 5 6 -* **Test type segregation**: endtorun much faster than other types of tests. For large test suites,you shouldconsider running unit tests regularly on the developer's local machine, while scheduling more resource-intensive testsin a CI environment.The CI environmentcan,for example,runtheslower testsinparalleland notify youjustincase something fails. If thetests take too longforhis approach, you canrun them at a fixedrate, usuallyonce a day atmidnight.Also see [[Types ofTests>>doc:SoftwareEngineering.Testing.Types of Tests.WebHome]].7 -* ** SelectiveTesting**: You don'tneedto run all tests every time.Itcanbesufficient to run only the tests related to recently changed code, or only the fast tests, and then run all the tests when you finished a major implementation step.6 +* **Test type segregation**: Unit tests typically run much faster than other types of tests. For large test suites, consider running unit tests regularly on the developer's local machine, while scheduling more resource-intensive tests to run at a fixed rate in a continuous integration environment, for example. 7 +* **Partial testing**: You don't have to run all tests every time. Often, it is sufficient to run only the tests related to recently changed code. 8 8 * **Mock slow dependencies** to minimize code execution time, especially operations such as I/O, transaction management, and networking. 9 9 * **Prefer in-memory databases during testing** for cleaner and faster operations compared to standard databases. 10 10 * **Identify performance bottlenecks** by increasing the number of threads: 11 11 ** If execution time remains constant, CPU is the bottleneck. Mitigate with faster CPUs, more cores, or additional machines. 12 -** If execution time decreases, I/O is the bottleneck. Use more threads, faster storage (such as SSDs), or additional storage for concurrent filesystemoperations.12 +** If execution time decreases, I/O is the bottleneck. Use more threads, faster storage (such as SSDs), or additional storage for concurrent persistence operations. 13 13 * **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. 14 14 * **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 I/O. 15 -* **Offload CPU-intensive tasks** to cloud-based computing resources using automation scripts:15 +* **Offload CPU-intensive tasks** to cloud-based computing resources: 16 16 ** Upload project files to the cloud. 17 17 ** The cloud service builds the project, runs tests, and generates a test report. 18 18 ** Upon completion, download the test report from the cloud.