This Is How To Implement Maintainable Automated Tests

cerberus-testing-featured-maintainable-automated-tests

An important feature is late. The development team finally commits the last changes. We run the campaign, but it is full of orange and red indicators. We don’t have time to update the tests, so the campaign is bypassed to be updated “later”. In reality, it starts to be forgotten that precise day.

The journey of test automation is full of bottlenecks. Once convinced by test automation, we can finally move forward. But with a growing test suite comes another challenge, the one of maintenance. Forgetting about test maintainability as a requirement can lead to the situation described above.

The adoption of test automation is supported by a drive to accelerate software changes frequency with stability. The natural tendency is to increase our test automation coverage until we are sufficiently confident. The thing is, software applications are evolving to iterate on the value proposition through digital interactions. Therefore, we have to deal both reactively and proactively with test maintenance.

Let’s first define automated test maintainability.

What do maintainable automated tests mean?

Maintainability is a requirement by itself, part of the non-functional requirements category. A key element of maintainable automated tests lies in the ease of dealing with changes. Like in software, the Pareto principles apply to automated tests with 80% of the effort passed on their maintenance.

Good maintainability supports ease of defects fixing at their base, acting surgically limiting impacts on the whole system. This good structuration results in preventing unexpected side-effects while performing changes.

Figure 1: Maintainability factors https://www.semanticscholar.org/paper/Maintainability-assessment-for-software-by-using-a-Kundu-Tyagi/ef8ebdddc1865ecacff32c66d006920b1f293bde 

Consequently, we can maximize the automated tests’ useful life (remember the test campaign bypass & forget?), efficiency, reliability, and safety. Most importantly, we keep the ability to meet new requirements, a must-have for a continuous testing approach.

Let’s look at specific techniques, starting far from technical details.

A structure aligned on the business domain

The product management teams manage their test referential because they have specificities. It is then more accessible for the technical team to implement only the relevant tests with specific information. We can do better than that; why having a silo in the first place?

Teams require a transversal collaboration to have a fast feedback loop on their experimentation. A shared test repository will support an active collaboration, a common vocabulary, and a similar structure. These elements are valuable for test maintenance.

Figure 2: The Cerberus Testing Shared Repository https://cerberustesting.github.io/documentation_en.html#_testcase 

We will take the example of an e-commerce platform. Traditional product areas will be present such as the Catalog, Product, Customer, Checkout, and Support. Each of these areas can then be subdivided into customer journeys composed of pages and context. This is a business structure we need to reuse in our tests to maximize alignment and understanding.

We have to close even more gaps, describing clearly the test cases.

Clear self-explanatory test cases

Imagine you just arrived as a QA replacing a leaving member. Unfortunately, no hand-over was possible. You are left with what remains of the documentation. Your first reflex will be to search for the automated tests, to find the “reality”.

Well-structured, readable, and understandable test cases are at the foundation of knowledge management. In our example, the value is to secure the continuity of knowledge within a team. Additionally, clarity is also helpful on the daily basis of collaboration.

Figure 3: The Library of Actions and Controls available in Cerberus Testing https://cerberus-testing.com/features/ 

Efficient solutions do not mean to be complex. In test automation, clear test cases with simple action and controls in plain language are required foundations. The Keyword Driven Testing (KDT) frameworks are relying on this approach.

Specific techniques can also improve our approaches, such as Behavior-Driven Development (BDD) and the Single Responsibility Principle (SRP). A more practical test is also possible: ask a business person unfamiliar with your test what he understands after reading it once.

A good structure can then be reused.

Reusable components we can easily update

Factorization is a practice trained early in engineering courses. Modules, functions, and components are identified as good practice. Test automation also benefits from these practices, where similar thinking can be applied.

Automated tests are composed of a set of actions and controls, then grouped into a logical structure. In Cerberus Testing, a library of automation actions are available for both actions and controls, simplifying their usage and maintenance. 

Figure 4: The Reusable Steps inside Cerberus Testing https://cerberus-testing.com/features/ 

A Step then allows the grouping of actions and controls inside a Test Case. Similarly, we can keep our step in a Step Library to reuse it across our various tests. The value is to simplify the changes in evolution; we only have to change one place.

Cerberus Testing also supports the Page Object Model pattern with the application object repository. This feature enables to manage a referential of objects reused across various test cases with a centralized repository. That way, a single change in an object is applied to all test cases using the components.

We have an interesting toolbox to use wisely.

Test Maintenance requires a balance 

The main risk is to fall into the over-optimization pitfall where the goal isn’t to ease maintenance but to maximize reuse. This practice leads to dangerous heterogeneous modules reused everywhere we fear to change, the inverse of our initial goal.

Our answers are in the balance of various elements. We must balance business and technical constraints to achieve understanding and usability for both worlds. Coupling and decoupling require an objective assessment of their trade-offs. 

We have to keep our initial test maintenance goals as a guiding principle: ease the changes of existing and future requirements. Test maintainability is an art of balance we must master in a continuously changing world.

Start using Cerberus Testing for free.

References

Wikipedia, Maintainability https://en.wikipedia.org/wiki/Maintainability 

Leave a comment

Your email address will not be published. Required fields are marked *

Cerberus-Testing Terms Of Service


Website Terms and Conditions of Use

1. Terms

By accessing this Website, accessible from http://vgeouyk.cluster030.hosting.ovh.net, you are agreeing to be bound by these Website Terms and Conditions of Use and agree that you are responsible for the agreement with any applicable local laws. If you disagree with any of these terms, you are prohibited from accessing this site. The materials contained in this Website are protected by copyright and trade mark law. These Terms of Service has been created with the help of the Terms of Service Generator and the Privacy Policy Template.

2. Use License

Permission is granted to temporarily download one copy of the materials on Cerberus Testing's Website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:

  • modify or copy the materials;
  • use the materials for any commercial purpose or for any public display;
  • attempt to reverse engineer any software contained on Cerberus Testing's Website;
  • remove any copyright or other proprietary notations from the materials; or
  • transferring the materials to another person or "mirror" the materials on any other server.

This will let Cerberus Testing to terminate upon violations of any of these restrictions. Upon termination, your viewing right will also be terminated and you should destroy any downloaded materials in your possession whether it is printed or electronic format.

3. Disclaimer

All the materials on Cerberus Testing’s Website are provided "as is". Cerberus Testing makes no warranties, may it be expressed or implied, therefore negates all other warranties. Furthermore, Cerberus Testing does not make any representations concerning the accuracy or reliability of the use of the materials on its Website or otherwise relating to such materials or any sites linked to this Website.

4. Limitations

Cerberus Testing or its suppliers will not be hold accountable for any damages that will arise with the use or inability to use the materials on Cerberus Testing’s Website, even if Cerberus Testing or an authorize representative of this Website has been notified, orally or written, of the possibility of such damage. Some jurisdiction does not allow limitations on implied warranties or limitations of liability for incidental damages, these limitations may not apply to you.

5. Revisions and Errata

The materials appearing on Cerberus Testing’s Website may include technical, typographical, or photographic errors. Cerberus Testing will not promise that any of the materials in this Website are accurate, complete, or current. Cerberus Testing may change the materials contained on its Website at any time without notice. Cerberus Testing does not make any commitment to update the materials.

6. Links

Cerberus Testing has not reviewed all of the sites linked to its Website and is not responsible for the contents of any such linked site. The presence of any link does not imply endorsement by Cerberus Testing of the site. The use of any linked website is at the user’s own risk.

7. Site Terms of Use Modifications

Cerberus Testing may revise these Terms of Use for its Website at any time without prior notice. By using this Website, you are agreeing to be bound by the current version of these Terms and Conditions of Use.

8. Your Privacy

Please read our Privacy Policy.

9. Governing Law

Any claim related to Cerberus Testing's Website shall be governed by the laws of fr without regards to its conflict of law provisions.

Thank you for your interest in cerberus,

In order to proceed with your SaaS we need some in order to confirm your instances accesses.

Please provide accurate contacts to secure the process.

You can cancel any time the subscription, please read Terms of Use.