QA InfoTech » Blogs » Building Re-Usability in Software Testing
Building Re-Usability in Software Testing

Building Re-Usability in Software Testing

building-re-usability-in-software-testing

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

Test Cases

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

Test Data

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.

Test Infrastructure

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.

Test Templates

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.

Mailers

For events such as bug bashes, beta testing, collecting user feedback, a standard set of template will boost re-usability

Test Demos

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

Conclusion

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.

Sharing is caring!

About the Author

Avatar QA InfoTech
Established in 2003, with less than five testing experts, QA InfoTech has grown leaps and bounds with three QA Centers of Excellence globally; two of which are located in the hub of IT activity in India, Noida, and the other, our affiliate QA InfoTech Inc Michigan USA. In 2010 and 2011, QA InfoTech has been ranked in the top 100 places to work for in India.