Have you ever wondered about where and how to kickstart your testing process for a new project or in new situations, effectively and without delays? Would you like to cut down your time spent on creating tests and allocate more time to run the tests and take on tasks of additional value such as exploratory testing? Why re-invent the same thing when it is not required?
Re-usability in software testing can save you the time and effort from repetitive tasks of test creation and its execution. You can easily achieve test and application stability by leveraging the work you have already done in the past, with a little smartness upfront.
In today’s fast-paced world where there is a constant need to build software effectively, all disciplines are constantly on the look-out to maximize their productivity and minimize re-work. One of the buzz words amongst all of them is “Re-usability”.
This blog discusses how to build re-usability in software testing, to help reduce the total cost of quality and maximize the return on investment (ROI) made.
Re-usability, as complex as it may sound, is something that can be introduced at various levels. We have heard of teams talking about re-usable frameworks, especially in Test Automation efforts.
While it makes total sense to do so, re-usability really should and could be built in, in all facets of Software Testing. I’ve outlined a possible set of such areas, in the checklist below, which itself is a re-usable artefact.
Recommended: Cross Platform Testing – Changing Times
While designing test cases, churn out generic test cases for some of the core areas of your work, like the ones outlined below, to reuse them at subsequent stages – bucketize test cases based on:
- Test attributes – UI, Functionality, Performance, Security, Globalization, Accessibility and Usability among others.
- Domain-specific compliances – BFSI, Health Care, Education, Mobile
- Technology – eCommerce, mobile, RIA
Test Automation Frameworks and Code
Build frameworks that are modular and can be easily reused. Test automation, although very valuable, is often a very expensive effort where the ROI becomes questionable. This is primarily because of changing product functionality which may invalidate the test scenario at hand.
While this challenge is often beyond the scope of the test team to control, the situation gets doubly complicated, when poor test automation code is generated.
By poor test automation strategy and code, I mean the choice of cases that don’t add a lot of value when automated, huge chunks of repetitive code that is written, code that gets very cumbersome to read through, review and maintain.
An answer to all this is to modularize test automation code and create frameworks to handle repetitive functionality. For e.g. code to sign in/sign out could be easily separated and handled in a separate module to be reused as and when required.
Must Visit: Top Five Tips To Effective Test Automation
This area offers a lot of scope to build re-usability and is also one where a lot of time is often expended during the testing cycle. Spend the extra time up front to decide what kind of reusable data can be created. Some examples include user accounts, user profile information and payment instruments among others.
To ease the tester’s job in setting up test infrastructure, there are a lot of external options available lately such as leveraging machines on the cloud, Virtual Private Cloud (VPC), Infrastructure as a service (IaaS).
Besides these, if your test bed setup is such that you need to maintain it in-house, explore options to build re-usability such as creating images, downloaded copies of the software for easy access and use among others.
Test Team – Core go-to Members
Investing in reusable/go to people in specialized areas is often the best investment a company can make. Identify a pool of experts for specific domains, test attributes and continue to provide them the required training and resources to empower them to succeed.
Their success is your success, in terms of differentiators that you build for your company. This does not mean that access to resources is restricted to a select few in the company.
You have just created a talent pool which is mutually enriching viz. a ) benefiting your company in terms of business and b) motivating your experts intellectually and your other engineers to strive to join such a special group.
Re-usability in this space is often not prioritized in various companies owing to time, budget and attrition constraints. However, given the strong benefits that exist in this space, this is an area that deserves maximum push to inject re-usability into.
Training / Ramp Up Documents / Knowledge Artefacts
Create knowledge base articles, best practices, checklists, important workarounds along the way, as your team learns something new. Such articles should be precise, crisp and useful for subsequent reference, and not merely an overhead to the team.
A sample set of such templates, which can be created for periodic use include: Status reports, Bug reports, Result dashboards, Project plans, Test plans, Test cases, Review guidelines, Release / Sign off mailers.
For events such as bug bashes, beta testing, collecting user feedback, a standard set of template will boost re-usability
Demos and presentations can often be very time consuming to create, however, they are very important in the course of product development. Templatize the flow and script as much as possible, which will help you do your test demos on time and without fail.
Besides the above, always be on the lookout for repetitive/monotonous tasks that can be easily automated to alleviate the test team’s overhead. Such tasks are often excellent candidates to infuse re-usability into, when automated.
In our company, for example, our testers had to go through the manual task of converting hard copies of documents into XMLs as we deal with a lot of content conversion work. We soon recognized there is potential for automating this process such that this utility can be easily reused. We quickly put together a spot team to get this job done, and to this day, use this utility, which has saved a lot of our tester cycles, giving them time to focus on more challenging tasks.
Reuse in Test Case Generation
You can describe the test cases in UML which has been standardized by Object Management Group (OMG). One can leverage OMG to create standardized test cases that can be reused efficiently. Aside, you can easily design the next generation of test cases using UML. It would help in easy testing of features by leveraging UML design.
Reuse in Execution
Test procedure specification document is filled up while executing the test cases. It also mentions all the specific requirements for setting up the test environment, procedure and format to report accurate results of testing and measurement. One can always reuse the data of this document for applications from identical domains.
Reuse in Error Detection and Removal
A test summary report is used to document the summary of the entire test case. The data includes the total number of test cases executed, nature & number of errors, and collection of data to gauge outcomes and SLAs. Testers can reuse this test summary report within the domain or at the project level.
Reuse in Review of Testing Process
Test deliverables are always evaluated through a formal review process to identify the quality of testing and whether the entire process has adhered to the test plan or not. Testers can resue the formal process of reviewing the testing process. Not following the formal review process might cause discrepancies and quality issues in the testing of the software.
Key Benefits in Enabling Re-Usability
- Shorter time-to-market
- Enhanced cost-efficiency
- Seamless quality
- More dependable and reliable testing
- Meet compliance with the previous work
- Lower maintenance cost
When you plan effectively and invest upfront to build the right levels of re-usability in the above areas, you have automatically created more room for your testers, to spend their cycles on more creative and challenging areas of the test, directing the human brain to more important tasks .
This combination of automated test tasks + out-of-box test scenarios, go a long way in building a product of great quality, within budgeted costs and time However one word of caution to be applied is to ensure, the team does not become a stickler for following processes to the “T” in the name of re-usability especially for templates to be used and reviews to be conducted. A good balance in re-using data, process, information and customizing reusability in software testing then talk to our experts them to the current needs is important, to reap the true value from this effort.
If you are still confused about building reusability in software testing then talk to our experts. We can help you achieve efficient results in QA and software testing.