Why use object-based design in the test framework
Setting up a test framework is no easy task when it comes to choosing the right approach. In the article below, we discuss the object-based design as the one helping to cut required resources and time.
Object-based design, or object-oriented design, is called for to validate object-based code, which includes testing of requirements, software design, code itself, and integration. This approach helps not only to create a simple-to-understand and easy-to-use hierarchical structure, but also assists in development of more flexible systems. Object-based design typically helps to get a higher level of abstraction that could increase understanding of the complexity and costs.
In addition to that, it significantly decreases the time of test development and support. So, in some way this could work, but how to cut both time and money spent? To explain this, we should mention other approaches widely adopted in QA outsourcing – the one based on behavior and the other based on keywords.
In the behavior-driven approach, testing is carried out based on how the system behaves, and together with other approaches to designing test frameworks, can give a more comprehensive overview of how system objects interact with each other and whether they meet user expectations. In the keyword-driven approach, testers simulate user actions too, but all of their activities revolve around certain keywords such as ‘closing a window’, ‘clicking the contact button’ and the like.
Object-oriented design can be opposed to behavior–based (or keyword-based) design, although it wouldn`t be correct. Just like with the behavior- and keyword-driven designs, you can use object-based design along with almost any other approach to test design too, for example, unit testing. For those testing professionals combining a few approaches, it could possible to get rid of negative effects thanks to the basic structure resulting from the application of object-based design, and the simplicity of keyword-driven testing.
Also, object-based design is in some way based on hierarchical patterns. Your test framework should use the class hierarchy to maximize the test coverage and to re-use tests or even test suites in subclasses. This approach is also the key to testing abstract classes. The hierarchical testing is based on the substitution principle, which means that an instance of a subclass can be used anywhere as an instance of its super-class. This is generally considered to be one of the main rules of object-oriented programming, so using this in a test framework can even encourage better object-oriented design.
One important notion to keep in mind is that the object-based approach isn’t always applicable. For example, if the tested system cannot be split apart into simpler objects and is purely functional, it’s better to consider another test design, as it is likely to serve better.
We’ll keep covering various testing methodologies, in particular, keyword-driven testing along with its advantages and drawbacks, so stay tuned.
The article is prepared by Yan Gabis