We may have evolved cool technologies that eliminate intermediate steps in development, yet software testing continues to have the same importance as it did before. Pointing defects in a software prior to release is crucial to ensure that the end product does what it is intended to do, and does so in an efficient, secure and easy-to-use manner. In fact, far from performing this step, in the end, agile organisations make it an integral part of their software development lifecycle from the very beginning. Many approaches have been taken on software testing, and from personal experience, here are my 5 Cs to define a guideline for software testing
Context: The King of testing cards
To quote the famous artist Kenneth Noland, “For me context is the key – from that comes the understanding of everything.” The same is true for software as well. Software testing must be context-dependent because when people work together, it is the “project’s context” that defines the parameters of testing. If the actual context is not replicated during the testing phase, chances are high that the product will have lower functionality when it is actually used by its intended users. Context-driven testing is based on the fact that every software is designed to solve a particular problem or provide a specific solution.
Consistency: The Queen of Testing cards
Consistency in software testing is defined as consistent user experience or an application’s effectiveness throughout different platforms or devices. Consequently, a consistent tester is a tester who has well-versioned test cases and test suite.
An example of visual consistency is the position and fonts of text in an application — they need to be consistent in all the browsers. Consistency plays an important role in creating a good brand impression and it is not just important to be consistent on the UX, but internally as well. There is an inherent problem when developers use different variable names for writing codes. While it may not be a big deal for the developers working on the project, it may be extremely difficult to collaborate and annoying to onboard new employees.
Correctness: The Jack of Testing cards
It all boils down to correctness if one were to define the absolute purpose of testing. Ideally, correctness is a virtue which must be adopted from the outset of software development so that further development and testing is as simple as possible. However, that usually isn’t the case in reality and it is absolutely essential in the testing stage as well to separate the right and wrong actions. The objective here is to validate the correctness with various inputs.
Communication: The Joker of Testing cards
Communication is a vital quality for a tester to have in order to effectively convey his/her findings and recommendations for bug tracking. Communication operates as a chief mediator in traceability matrix as it aids customer relationship management and commitment negotiation.
Company (or) Community: The Ace of Testing cards
It is the communities and companies that move Software Testing to the next level. Students from schools & colleges learn how important and elegant software testing is through this medium. Through their efforts to organize more conferences and targeted events, testing companies & communities are making software testing the centre of attraction in IT, in a market that offers huge opportunities for both pure plays as well as IT service companies.
By: Arrvind Balasubramanian
Arrvind is the lead quality specialist at RailsFactory and is an expert in testing. He lives in Chennai, and in his spare time, he is a master of disguise (loves to don get-ups).