Software development has evolved over the past several decades perfecting itself each time, to become more and more scientific in its approach and predictability. However, there is a strong artistic side to software development that gets manifested in the areas of design and architecture.
Creativity and innovation play an important role in developing high quality software that solves the users’ problems and provides a smooth user experience. The quality aspect of software is a direct output of the rigorous testing process adopted during the design and development stages. The field of software testing too can borrow from the guiding principles of art. Let’s look at photography and art for inspiration. The principle of “rule of thirds” seems to apply ‘naturally’ to the process of software testing in an agile development environment.
This article elaborates how the rule of thirds, when applied to software testing in agile development, works in synchronization with the agile development to result in a high quality assured software deliverable.
The rule of thirds refers to an imaginary grid drawn across a canvas area that breaks it into nine equal squares. The most interesting points for subjects are at the intersection of these lines. Placing the important elements on these point/lines results in a balanced composition that gains instant approval of the eye.
Similarly software testing interactions done at one third time intervals of the development lifecycle (iteration /sprint) yield the best results. While agile prescribes continuous interactions through the development lifecycle, in reality this is left for the team to determine and execute leading to a customized, personalized process. However as a rule of thumb, interactions at one third intervals can be productive for the developer and tester in three important ways.
• Most often, the developer encounters challenges with the implementation only when the
coding has started despite the fact that a design has already been present for a while.
• These challenges provide deeper insights into the requirement thus making the developer more conversant with the requirement at this juncture.
• A level playing field is set for the developer and tester for a discussion on the requirement.
Rule of thirds
Thus, timed interactions with the right expectations at each interval yield great results for the team. It would then be important to discuss the expectations from these timed interactions.
For the first one-third of the development, the focus is always on getting the functional understanding of the requirements correct. Therefore, sharing the test scenarios and giving inputs for the test automation should essentially be the crux of the discussions. Any discrepancies, gaps in the requirements must be closed at this stage of discussion. The test preparation aspects that should be under consideration at this juncture include smoke test scenarios, acceptance test scenarios, integration test scenarios and automation test needs.
For the second and final one-third of the development, the auxiliary aspects of test including the load, performance, stress and security tests preparation could be the primary focus. The usability tests could also be a good topic for discussion as most often the UI wiring would appear in the later part of the development focus.
A test thus evolved and prepared in close interaction with the technical realization phase, works in perfect synchronization, balancing the composition of development and test without stressing out one another. Software products and applications tested using the rule of thirds concept would strike a perfect balance between science and art and produce high quality software.