The best time to eliminate software bugs is early on in the application development lifecycle. Doing so helps ensure better code is released in the first place; it will be less vulnerable to attack and more secure. But, how do you get closer to achieving the ultimate goal of bug free code that delivers to requirements?
Extensive testing is of course essential. This must be achieved without compromising often sensitive data that must be used to make a test authentic. For example, an application that processes healthcare records or credit card data needs to be tested against meaningful data without compromising the privacy of the data subjects. Producing test data is the business of vendors such as IBM, Informatica and Grid Tools.
Test data is generally produced in one of three ways:
- Data masking – where sensitive fields are replaced with dummy data so they can no longer be linked back to actual individuals or accounts
- Data subsets – where the test data is processed in such a way that only the data relevant to testing is included and the sensitive data is removed, for example key fields may be all that are needed, not the actual customer data
- Data simulation – where a whole data set is created from scratch to mimic the real thing. This sounds like the safest approach, but it may miss common human errors that occur in real data sets that may be important for some testing
This is all well and good, but the production of test data also needs to fit with the broader application development lifecycle, including requirements gathering and specification design, through development, version control, testing, deployment and update. Application life cycle management (ALM) tools from vendors including Serena Software, IBM Rational, Perforce, CA and Borland support all or some of these phases helping to improve software quality.
To extend its reach beyond test data deeper into application lifecycle management, Grid Tools has recently announced Agile Designer. This is a tool which will provide feedback to the design phase of the cycle; the artier part of the process often carried out using flow charts etc. Agile Designer tests the flows and highlights ambiguities thus introducing more rigour in to the process. A key output is to analyze the minimum number of test cases needed to fully test all the possible paths through an application design. This helps with the creation of better test data and eliminates unnecessary use of sensitive data.
Testing of software is a potential source of data leaks that is talked about far less than high profile leaks associated with production software however, this is not an excuse for ignoring the problem. Grid Tools has a long pedigree in producing test data, which is endorsed by its high profile global partners CA and HP, both of which resell its products. The capability it is now providing through Agile Designer to better integrate test schedules into the overall software development lifecycle will further reduce the risk of exposing of sensitive data and has the potential to make the whole development process more efficient.