Home
Case study
Optimized processes by improving the level of testing automation

Industry

Energy & natural resources

Location

USA

Platform

.NET

Optimized processes by improving the level of testing automation

ABOUT THE CLIENT

Our client (NDA) is at the stage of transformation from .Net framework v 1.1 to .Net Core, as well as from Angular.js to Angular 16, working in real-time with electricity, heat, and temperature sensors.  The company's main goal is to save energy, for which equipment and solutions are developed and hosted in the Azure Cloud with further reporting using Microsoft Power BI. The challenge they faced was to implement automated testing in the management of the system that makes up the energy-saving ecosystem, and it is also worth noting that such solutions have not been used in the development of their projects before.

PROJECT CHALLENGES

The main challenge was to find a method to integrate the solution that needed to be developed in such a way that end-to-end (E2E) test development did not involve programming.

There were also problems with the smooth operation of the CI/CD Pipelines, which required testers to intervene and disrupt the timeline.

The NetLS developer, who first introduced the project team to the new method of implementing this solution, took on the task of becoming a pioneer in the implementation of automation testing.

The client chose an outstaffing model of cooperation and enlisted the support of our specialized developer. 

WHAT WAS DONE

  • Development of libraries for automated testing

The NetLS developer, who worked on this project as an outstaffer, began by creating a customized test automation library to meet the client's unique needs. This library was designed to provide testers with a robust set of tools designed to simplify the complexities of automated testing. Specflow (C#) and Cypress (JavaScript) were integrated into 2 separate libraries (each separately) using different approaches — from XPath element selector to Selenium, and a Behavior Driven Development approach was applied to allow testers to use Gherkin syntax.

The path to creating a comprehensive testing solution involves overcoming a whole range of challenges.

Монтажна область 1-2

  • Efficient implementation of AWAIT

When developing this test automation library, we paid considerable attention to the efficient processing of AWAIT operations. Our team faced several technical challenges, including the need to ensure accurate page loading, uninterrupted data storage at all stages, and preventing errors during page reloads.

  • Working with asynchronous operations

The key aspect was working with asynchronous operations. In addition to standard page loading scenarios, it was necessary to skillfully manage cases when asynchronous server requests updated only part of the page. The NetLS developed solution skillfully considered these variations, ensuring that the tests ran flawlessly in these dynamic situations. The tests were accurately synchronized with JavaScript execution, satisfying both standard page reloads and asynchronous server requests.

  • Improved compatibility with the Angular website

Additionally, the client wanted to implement this for another site that was implemented in Angular, so the project evolved to testing an Angular-based site that required improved page load checking. In the context of Angular, where JavaScript continues to execute after the user perceives the page as loaded, our solution skillfully handled this subtlety and ensured accurate synchronization.

  • Custom scrolling logic

Special scrolling logic was also implemented to solve problems with interference from site menus and different bootstrap screen sizes, when an important element was technically present on the screen but remained hidden from the user. The problem was solved by developing special scrolling logic that allowed automated tests to determine the true visibility of the element.

  • Flexibility of modal windows

Another requirement from the client was introduced to the project — the frequent appearance and disappearance of modal windows. These <iframe> elements have a particular problem, which could spoil the overall impression of the site page. The developer responded to this by incorporating intelligent logic that allowed the tests to dynamically assess the presence of modal windows. If they were detected, the tests automatically performed predefined actions. However, if they were not, the tests did not generate a "modal not found" error but instead ignored the absence of the modal.

The client's website contained custom autocomplete elements, which created some difficulties. Custom autocomplete elements were closely linked to hidden elements on the web page. This connection required a customized approach to ensure smooth interaction and testing. We developed special steps where workflows worked within the specified parameters to solve this problem, which allowed us to fully test these elements. 

 

  • Dynamic value processing

One of the unique aspects of these autocomplete elements was their ability to change dynamically. When pending programmable actions occur, the values in the autocomplete change according to predicted expectations. We developed a solution that takes this behavior into account, allowing our testers to capture and store initial values until certain actions are performed. This data was then used for accurate comparisons in subsequent test phases, ensuring the accuracy and reliability of the testing process.

image (3)

  • Transferring data between test stages

Automated test phases typically work in isolation, but this project required a seamless flow of data between these phases. It took an integrated approach, allowing data to be shared and transferred between test stages as needed, a departure from the typical standalone approach.

RESULT

The most important result of this work was the elimination of the need for developers to write end-to-end (E2E) tests because the NetLS developer wrote automated .NET Gherkin tests for BA or QA. Now these tasks can be delegated to testers who are not necessarily programmers or have deep programming knowledge. This transition promises to bring significant cost savings to our client. By making automated tests more accessible and less dependent on programming expertise, the project has achieved a higher level of efficiency and flexibility.

Thus, the innovative work of outstaffer developer NetLS significantly improved the client's testing processes, potentially increasing the overall cost-effectiveness and productivity of the project and reducing budget costs by 30% for the delivery process thanks to the expertise of a NetLS Full-Stack .Net expert, which proved to be a cheaper solution to fix the problem once rather than spending the budget on adjusting the quality of deliveries when they fail.

 

TECHNOLOGIES

Have you interested in our case study?

Please fill out the form and our specialists will come back to you with a proposal

By sending a message you agree with your information being stored by us in relation to dealing with your enquiry. Please have a look at our Privacy Policy

;