Test Data Management
Test data - a tiresome topic for many companies, especially when it comes to cross-system provision. It must be complete, otherwise the tests will...
Properties based testing is a method that checks constant output properties and complements traditional test strategies. This technique is particularly suitable for complex and microservices-based systems, as it allows a large number of inputs to be checked. Nikhil uses several real-life examples to explain how PBT works, what the advantages are and where the method reaches its limits.
“The fundamental proposition of properties based testing is when the system gets to complicated, it is not possible for human to write every test cases.” – Nikhil Barthwal
Nikhil Barthwal is passionate about developing decentralized systems. He has several years of professional experience in large corporations as well as in smaller start-ups and acts as a mentor for various start-ups. He is also a guest speaker at various international conferences and gives talks on topics related to decentralized systems and software quality.
Highlights of this episode:
In this episode, I spoke with Nikhil Barthwal about the applications of Properties Based Testing. As software systems become increasingly complex, traditional testing methods are reaching their limits, making way for more advanced techniques such as properties-based testing.
Testing thousands of microservices is a huge challenge. Nikhil explains how properties-based testing addresses this by automatically generating test cases based on system behavior, reducing the need for manual test case creation.
There are three main components: Modeling Language, Generator, and Shrinker. Nikhil uses an example of an arithmetic service to illustrate how these components interact within property-based testing frameworks to efficiently identify potential errors.
Nikhil talks about various technologies that support property-based testing. He also highlights QuickCheck in Haskell as the origin of this concept, which has since been translated into several languages.
Properties Based Testing aims to outperform human capabilities by handling an immense number of permutations in system behavior. This ensures reliability and uncovers errors that might only have shown up under certain conditions or over time.
Nikhil suggests starting small with properties-based testing and gradually expanding its use within an organization. He emphasizes the importance of cultural change and convincing teams to implement new methods for improved results.
Properties-based testing has limitations. For example, it is not suitable where tests incur significant costs or are destructive. It is crucial to weigh up these factors before implementation.
Properties Based Testing does not replace the tester, but acts as an assistant that increases productivity by narrowing down potential problems for human analysis.
Test data - a tiresome topic for many companies, especially when it comes to cross-system provision. It must be complete, otherwise the tests will...
Does an isolated small unit test really do us any good? There are many ways to automate testing, and sometimes you have to deviate from theory to...
OTTO is a living example of change and the agile transformation of a large organization. What is the situation in quality assurance? How has software...