Great post from our friends at Source link
One of the most fundamental concepts in software testing is the so-called “testing pyramid”. This mental framework helps inform software engineers of which types of tests they need.
As you go up the pyramid, the tests become more expensive to run, so you should have fewer of them. Unit tests are fast and cheap to write and run, so you can have many of them. End-to-end tests are expensive, so you should only have a few of them for your most critical user paths.
This model is not always easy to adhere to, though.
When dealing with a legacy codebase with no testing, it is often important to build a scaffold of testing before starting to work on the codebase. That way, the software engineer can ensure they don’t break the software as they’re making the code cleaner or adding new functionality. The safest and easiest way to do this is often to work top-to-bottom on the testing pyramid, adding E2E tests before cleaning up the code enough to add integration tests and unit tests.
Even in well-written applications, as these applications become even more mission-critical for different people, it can become important to add more and more of these critical paths as end-to-end tests. This results in tests taking longer and longer to run, slowing down developers every time they want to merge in a change.
Over time, different approaches have been developed to make end-to-end tests faster to run and less brittle. The Selenium open source project has created a framework that others have used to build integrations, optimizations, and analytics tools.
LambdaTest is one company building cloud solutions for Selenium test suites. Whilst LambdaTest offers many of the current features that developers need to scale end-to-end tests (including dashboards to monitor flaky tests and parallel tests), they are now taking performance one step further with their new HyperTest offering.
HyperTest promises to be “up to 70% faster than other traditional cloud test execution platforms”. The reason behind this is their focus on cutting latency. While cloud test platforms often use many different components to execute tests on, instead, HyperTest runs all the tests in a single execution environment while remaining in the cloud.
Latency is a tough problem for engineers to work around, as given there is a limit on the speed of light, there is always a delay for data to be communicated between different computer systems. By removing this distance, LambdaTest is able to achieve greater performance for their customer’s test environments.
This experience shows us that when we’re working on testing problems, complexity can affect speed and reliability in ways we don’t at first consider. Latency request-to-request can be milliseconds but quickly compounds to minutes as our system grows. By choosing simplicity, LambdaTest has gained a competitive advantage.
#LambdaTest #Cuts #E2E #Test #Speeds