Listed on the Australian Stock Exchange, Optiscan (OIL) is an Australian company that focuses on research and development of optical products for medical use. It has developed and patented miniaturised confocal microscopes, and is now a global leader in the development and application of microscopic imaging technologies for medical markets.
When Optiscan's flagship Medical Device and associated software was in its final stages of meeting regulatory requirements and nearing full-scale production, they needed a thorough and repeatable testing philosophy, in order to meet stringent regulatory requirements and tight project deadlines. Their large and complex systems offered too much functionality to manually test in a timely and accurate manner, so they turned to TestComplete for help.
"I had used TestComplete at a previous company to automate the testing of a number of very different software applications and to perform a variety of testing techniques (functional, performance and production testing). I knew from this previous experience that TestComplete was flexible enough for any test requirements I might meet at Optiscan," said Darren Gage from Optiscan.
"Even though I had previous experience with TestComplete, it had been a while since I explored what new tools were on the market and how other tools I had used before had improved. I went through the process of downloading various tools and trying them on Optiscan’s software applications to determine how they coped with recognizing and controlling standard and custom controls. For me, the controls are a large part of the battle when trying to automate application testing."
This is what Darren found when comparing other tools to TestComplete:
- "Other tools are expensive. Some tools ran into the tens of thousands of dollars. Too prohibitive to get management approval, especially if the company has been burnt before shelling out for automated testing tools, especially if they quickly became 'shelf-ware'."
- "Their interfaces seemed primarily focused on enabling GUI generation of tests. This made them clunky to use if the test engineer wanted to create tests and associated frameworks programmatically. TestComplete's IDE is well designed and similar to other programming IDE’s. The ease in which tests and libraries can be shared among many projects enables a re-usable test framework to be created, greatly reducing future test development time."
- "Custom scripting languages. Having to learn a new scripting language, just adds more complexity and development time to test automation. Being able to choose the scripting language in TestComplete is great. Using standard scripting languages (VB Script in my case) meant endless availability of resources on the Internet."
"Needless to say, I proposed the purchase of a TestComplete license. Management approved and the rest is history."
Flexibility is Key
"I think the flexibility offered by TestComplete through plug-ins is perhaps its biggest advantage over its competitors. If ever during the implementation of a test I’d stumbled across an area of functionality that is particularly hard to automate, I’ve found a plug-in that has made the process much simpler. Also, support from newsgroups and AutomatedQA is priceless. Fast responses to questions means test implementation is rarely blocked," said Darren.
"Another major plus is the ability to create your own data objects. Enabling data, methods and properties to be encapsulated and easily passed throughout the test code and shared among project suites makes test implementation quicker by promoting code re-use and makes it easier to manage change."
Automating Functional Testing
"TestComplete was used to automate a full functional test of the Medical Imaging Application. This included the validation of everything from data entry and persistence, searching, process flow through the application, image capture and review," said Darren.
"Being able to utilize the standard Windows ADO made verifying the persistence of data, and very importantly for medical reasons, the sequencing of data recorded during a medical procedure simple."
"Also image comparison functionality in TestComplete meant images captured during Test procedures could be verified in review mode of the application. Obviously verifying the capture, review and manipulation of images is very important to an imaging product."
"A spin-off product for a different market meant a change in displayed screen text and controls between two applications, sharing the same code base."
"Risks associated with these implementations and inherent configuration management issues were mitigated by implementation of a test, which uses the TestComplete Object Browser tree. The Object Browser tree was traversed programmatically to compare what controls and text were displayed against those expected to be displayed. This meant from a testing perspective that we could ensure all controls and text that should be displayed, are displayed, and conversely, any controls and text that should not be displayed are not."
Testing Embedded and Host Software
Darren explained how they use TestComplete for functional testing of host and embedded software and how it makes this type of testing affordable. "TestComplete was used to implement a full functional test of both host and embedded software functionality. It was not only used to drive and verify functionality, when testing the host software, it was used to simulate the embedded software (and vice versa). This was made easy by TestComplete’s ability to add the MSComm32 ActiveX control and gain access to the
OnComm event. TestComplete’s event handler utilized the
OnCommevent, triggering every time data arrived on the Communications port (the communication interface between the embedded and host software). This enabled an implementation that acted on these communications, sending either valid or invalid responses to the calling software depending on the aim of the test."
"Being able to use TestComplete to control communications between the host and embedded software this way, meant that more rigorous testing could be performed on interfaces and the software in general. Triggering error conditions was easy, without the need to break expensive electronics in order to produce any perceived hardware errors, making the testing of error handling a simple, cost effective and repeatable process."
"Also isolating the embedded and host software like this greatly simplified testing by allowing test focus to be on either the host or the embedded software without one interfering with the other's test results."
TestComplete Simplifies Manual Testing
"Testing of the embedded software was a complex and time consuming prospect. It required a lot of intervention to perform the various tests, including using many hardware related measurement tools to verify the software’s operation. For this reason it wasn’t appropriate to automate in the typical manner. A manual test was implemented using the TestComplete Manual Project item," said Darren.
"Being able to include a step-by-step tool to guide the tester on a complex and error prone verification procedure was a great way to simplify the process."
"TestComplete is currently being used to automate the functional testing of new applications. Name Mapping has been used to simplify the definition and use of .Net controls and objects. This is already simplifying the process of updating references to controls via the TestComplete GUI and by allowing multiple test scripts to share the same
NameMappingobject. This is making the endless changes to software design during the development phase a manageable process," said Darren.
"Having full access to all methods, properties and fields of the .Net applications under test is proving a very powerful tool, making script implementation just that much easier."
"TestComplete Project Suites are enabling us to closely mirror the application's implementation within the test environment. The ability to have test projects for each major component in one test suite makes test implementation easier and simplifies the understanding of the test project's implementation by logically matching the application under test."
TestComplete has allowed Optiscan to tackle a variety of automated testing challenges while performing functional and manual testing at a low cost and with the flexibility to get their job done efficiently.