Wednesday, March 10, 2010

PRINCIPLE OF QA #99: Separate your stylization tests from your functional tests

There are many principles in software development that can (and should) be applied to software testing as well. One of those principles is called the Separation of Concerns.

The basic premises of SoC is to divide out parts of an application into their own objects (or layers if you are thinking at the architectural level), and to keep conceptually similar parts together. A simple example of this is CSS. When you use CSS, you have separated the style and formatting from document content-- the HTML. In this case, the stylization is considered one concern, where the document content is another concern.

So how does this apply to QA? When decomposing requirements into test cases, you often enter a gray area where you need to define where one test case ends and the next begins. Sometimes this dividing line is clear cut and obvious, but other times not so obvious.

A guiding rule that can help you draw this line is to separate STYLIZATION from FUNCTIONALITY.

Create a set of test cases that are concerned only with the style and formatting of the application. Think of these as your CSS test cases. Keep these tests separate from those that cover the actual behavior, or functionality, of your application.

Doing this has several advantages:

1. Mindset
It allows the test case designer and test executor to concentrate on one thing at a time.

2. Maintenance

Stylization and functionality tend to change at different times, so separating them makes test case maintenance easier.

3. Automation
If you are automating your tests, you are mainly automating your functional tests. While some aspects of stylization can be automated, it is always better to execute these with a human eye.

4. Agility
The stylization is often not ready to be tested at the same time as the functionality, so allocating tests for execution is easier (this is especially relevant for Agile testers).


  1. Thanks for sharing useful, I would like to share one of the best Independent Software Testing Company! Indium software is Established in 1999, its Offshore & In-Housing Software testing services provider company. Indium has its registered office in California, Georgia and also has multiple offshore delivery centers in India.
    Services like Mobile application testing services, Game software testing services, Software Testing services, QA services, Software verification and validation, Offshore Software testing, QA Validation services, Test consulting services, automated software testing, quality assurance software testing, web based application testing .

  2. There are many principles that guide Software Testing Principle. Before applying methods to design effective test cases, a software engineer must understand the basic principles that guide software testing. The following are the main principles for testing