DocFinity BannerDocFinity Banner

Software Companies and Quality Assurance: Ensuring A Company-wide Commitment to Quality

By Steve Gray, Director of Quality Assurance, Optical Image Technology, Inc.

View printable PDF (opens in new window)

Quality assurance (QA) is an elusive ideal for many companies. Software development companies with a QA staff that listens to its customers face a difficult paradox. They need to meet ongoing requests for urgently needed software while trying to reach the lofty ideal of providing quality products that have been tested as thoroughly as possible.

When enterprise-quality software is intended to integrate with each customer’s software applications - some of which may have been custom written, and some supporting older versions of products - the number of variables that require testing increases exponentially. Choosing a team of QA staff who have technical prowess, excellent written and oral communication skills, and are good listeners is an absolute requirement. Knowledge of databases, programming, systems and network administration, and web administration complete the list of attributes that ensure the staff has the portfolio of skills needed to be effective; structure and discipline are fundamental to their success.

Sharing the QA approach company-wide is equally important if a company truly wants to give its customers the products and services they deserve. While quality assurance in a software company focuses largely around testing the products thoroughly before they are released, real QA is a much broader picture with higher goals. A good quality assurance team works with the entire company to ensure that every product the company delivers is of the finest quality possible. It also works hard to ensure that the support, documentation, and other materials and services match customer expectations. In an age where many companies claim to offer robust solutions for business, QA that is performed with the stakeholders’ best interests in mind is a true differential advantage, and one that should be taken seriously.

The Challenges of Software Testing: The Buck Stops Here

When a new product is being developed that is market-driven, and especially when customers have requested customizations or new functionality that is unique to their installation, there are great demands to deliver the goods as soon as possible. A strong QA department will work with the support staff to assess the urgency of need, and will ensure that a product is not delivered prematurely. Although compromise is sometimes required when a custom product is urgently needed, a QA department must never compromise by delivering a product that they can not stand behind with confidence. Poor or insufficient testing and documentation results in damaging a company’s relationships and reputation, and this has far-reaching consequences that are not worth the risk. An overview of several key testing considerations is given below with practical considerations.

Test Plans Vs. Random Testing – Writing and maintaining thorough test plans is very important to the success of a QA department. The more complex and robust the software, the more critical it is for QA staff to have considerable programming and scripting skills. A test plan system adds structure and discipline to the testing process, helping to maintain consistent environments for the testing and then evaluating everything within the specified environment. Test plans establish a set of pre-existing conditions against which to test, showing what a user should see on screen, spelling out the steps to run each test, and the anticipated results. If a test passes, the software moves on to the next test. If it fails, a lab log is written to return to the development team for improvement, accompanied by comprehensive information about the failure, and is then returned for further testing. Random testing can complement test plans, and can pinpoint additional weaknesses that need to be addressed, but it should never replace carefully planned test scripts.

Automated Vs. Manual Testing – Automated testing holds some similarities with automated flight. It dramatically accelerates the number of variables that can be tested, and like the controls in a plane, each test does exactly what the test script instructs it to do. Programmatic scripted tests execute instructions behind the scenes, generating automatic scripts of tests and their results, with a list of error messages that need to be examined. Manual tests should never be completely overruled, however. Just as a pilot sometimes has to override the automatic controls on a plane and uses his judgment to make a safe landing, manual tests go beyond the routine automated tests and may reveal other weaknesses in the product that should be addressed. The ‘human hunch’ is a force of great value in testing.

Virtual Testing – Testing remotely enables QA staff to assess the individual nature of each customer’s implementation of technology and the specific issues they face that may be unique to that site. Virtual testing allows testers to test the performance of software on multiple platforms and with multiple operating systems running simultaneously, enabling comparative performance evaluations. Virtual servers make it possible for the multiple operating systems to be run on one single system, allowing greater flexibility in the testing process. This dramatically reduces setup time, which results in more testing taking place in a shorter period of time. Although virtual testing is not a necessity, it dramatically accelerates the testing process, freeing staff to delve into greater depth during the QA cycle and ensure a more solid product.

QA for Enterprise Implementations – Large enterprises, particularly those with large volumes of forms and documents that require processing, need to have the software tested to ensure that they can handle large volumes of work, particularly if there are major software integrations or work is being processed digitally. Organizations using digital workflow are generally able to process much larger volumes of work with dramatically fewer resources, and in less time. However, workflow can put a massive strain on a large organization’s systems if the affected systems are not tested properly. Load testing and stress testing are done by introducing a number of virtual users using the software in the way in which it is expected to be used: the load and stress are progressively increased well beyond the volumes that will be required. Ample documentation is provided where concerns arise, and a product may be returned to development if loads or stress cause the software to perform at a standard that is not acceptable. This process ensures the QA staff, the sales force, and ultimately the customers that heavy volumes of mission-critical processes and data will be able to be handled effectively. It eliminates worries about down-time from software that is not designed to handle the desired work load.

QA as Part of the Product Development Process

Quality assurance is an essential part of the development cycle. QA is essential in product planning and execution, and good communication is vital to ensure that staff resources are planned for in accordance with each product’s anticipated release cycle. During the development of each new product or customized feature, numerous pieces need to be isolated and tested, and test results need to be documented. Thorough documentation about the expected performance of each piece of functionality needs to be available to the testing staff so they can test against it. A development and QA department rely on constant written and verbal communication about the products that are generated by development or returned for improvements so that issues discovered during the testing process can be resolved. When bugs are discovered in software that has been released, or patches need to be sent for software that is not performing properly to a users’ specifications, these, too, must be adequately tested and retested until the QA department is satisfied that it will meet the customers’ needs.

QA and its Marriage to Quality Support

Although QA is not directly a part of the support process, communication between support and QA is vital to customer satisfaction. If the support department receives inquiries about the status of anticipated releases, QA needs to work with the staff to ensure that communications to customers are accurate and satisfy the inquiries. If support receives complaints about products for any reason, timely and thorough communication about the problems needs to take place. Written communication among staff and with customers is vital to ensure that all issues and lab logs are accurately time-stamped, to enable effective managerial review of progress on testing and other quality-related services, and to eliminate misinformation.

The Role of QA in Sales

The best test of whether the QA department is doing its job well is the perceptions of its customers. Customers are more willing to pay for product customizations, integrations, and other services that will help them maximize the use of a product when solid software is being delivered. As described above, the testing process can never lead to perfect software due to the millions of variables involved and the time limitations customers will tolerate when a product is urgently needed. Nevertheless, customers deserve a helpful and timely response to their concerns, and the timeliness and quality of the answers they receive will define a vendor’s reputation, favorable or otherwise. In a large enterprise where many line of business applications are utilized, and there are multiple integrations, IT staff and others who work with software vendors will naturally compare them. A good QA team will work closely with the support department to ensure that priority needs are addressed, and most importantly, that the lines of communication are fluid between departments so that each customer knows his needs are being recognized and addressed.

When a sales representative is talking with prospects, or working with another department at an existing site that is considering a technology implementation, the vendor’s reputation is critical. If a company has a reputation of providing top-quality products that are well tested and supported, with a company that responds to its customers at every level and for every need, it will have an edge over those that do not. Excellent products only go so far without testing and support, and even non-support staff who have not bought into the value of serving the customer can damage a good reputation.

Summary

Quality assurance has to be understood and embraced by everyone in an organization. In an industry as complex and challenging as technology development, where advancements and complications are introduced daily, this is most critical. Software testing will never be perfect, but it should never lead to customers chanting the words of The Rolling Stones’ song, “(I Can’t Get No) Satisfaction!” QA bridges the gap between the unreachable world of perfectly tested software (which could only be delivered if it were isolated in time for testing, but it would be delivered long after it was no longer pertinent) and providing a quality product that satisfies specific needs. A strong, customerdriven product with quality assurance that couples the best in testing with a professional and caring approach is bound to succeed.

Steve Gray is the Director of Quality Assurance for Optical Image Technology, where he previously served as the Director of Support. Through his leadership, more than 3,000 test plans have been defined for the company’s DocFinity suite, resulting in the company’s strongest deliverable products since its first products were released in the late 80’s. Steve also recently authored an article entitled “Streamline Your Business Process With Barcodes: How Automated Indexing and Workflow Can Enhance Your Bottom Line,” which can be accessed at http://www. docfinity.com/reference/barcode_article.htm.

For more information on Optical Image Technology’s DocFinity suite of enterprise workflow and document management products, please visit our website at www.docfinity.com, email us at info@docfinity.com, or call 800-678-3241.

 

©2007 Optical Image Technology, Inc. All rights reserved. DocFinity, IntraVIEWER, and XML FormFLOW are trademarks or registered trademarks of Optical Image Technology, Inc.

Subscribe to OIT Communications

Email Info@DocFinity.com

2008 DocFinity User Conference

Home | About Us | Site Map | Privacy Policy | Contact Us | Call 800.678.3241

 ©2008 Optical Image Technology, Inc. All rights reserved. page bottom