Category Archives: Design and Development

Testology: Everything You Need For Test Automation of C++ Code

The quality of a product depends a lot on proper testing. Once the product specification and design are completed, the next biggest issue is how to test it. During the development phase, it’s necessary to plan for unit testing of each module, and integration testing for connecting the various modules, as well as plan for Build Verification Test (BVT), functional testing etc. Each time it’s necessary to write / maintain a Test Design Specification (TDS) document, which contains the entire test plan covering all possible test cases, and several test parameters with different values for different test scenarios. It takes a considerable amount of time to write down the TDS documents for a commercial product. Once the TDS is completed, you start coding the Test Application to implement the test plan, which also involves a considerable amount of time. And it’s almost certain that some new / more test scenarios will pop up along the way, which need to be added to / changed in the Test Plan and Test App to fully implement the QA process.

Wouldn’t it be great if a tool helps develop and manage the Test App according to the evolving Test Plan along with all possible Test Cases? Testology can be the tool you are looking for while developing and maintaining a software product using C++ for the Windows platform. Even though it’s very common to develop applications using higher level languages like Java, C# etc., which simplify the code writing process, there is a lot of products being developed and maintained using C++. This is especially true for various kinds of Process Control that involves interfacing with special-purpose hardware / equipment, where you need to ensure not only the expected behaviour, but also the ability to handle unexpected or error events. There are numerous examples of product flaws due to inadequate test planning and execution, starting from space projects to aircraft systems, car components to manufacturing process, safety mechanims to medical devices and more. It’s not to say that the concerned party didn’t dedicate enough time and effort for the quality assurance. However, it’s highly likely that the right tools were not used, resulting in sub-optimal value towards quality level attained. It’s undeniable that exhaustively testing any of these products or components – and continuing to manage the testing process over time as the product evolves – is a Hurculean task. That’s why it’s imperative that appropriate tools and technology be used to improve the whole process. For example, Microsoft Windows undegoes serious automated stress testing before every release. The release quality requirement is to run multiple suites of automated tests on thousands of PCs (with the latest version of Windows) for anything between 24 to 72 hours with very high level of pass rate (such as 99% or more). Each failure case is investigated to see if that points to a recall class defect in the product. All serious product companies set similar quality bar for their product release, because their own reputation is at stake. However, most of these companies make those tools available for widespread, one of the reasons being those tools are highly customized for their own needs and environment, and may not match another developer’s needs. There are very few commercially available Test Framework in the market, and most of those are either overly complex or very high-priced or both.

Here comes Testology to the rescue! Testology is a Test Framework for Windows C++ software developers and testers to help develop and execute Test Suites for projects developed in C++. It provides a very simple and easy-to-use GUI to help create the whole test suite (in a tree structure), including multiple levels of test sections / groups, sub-sections / sub-groups, and individual test cases, as well as set custom parameters and their values for each test case, specify special initialization and uninitialize steps for each test group, sub-group and test case. It also provides options to select a specific set of test cases before executing the test, to repeat the whole test suite / some selected cases a number of times, execute the test suite in silent mode, and many more. The progress and results, including errors or warnings, are recorded using another SARANGSoft product called Logastic, which logs to file, window or debugger. The overall result is shown in HTML format to present the pass / fail status of the test cases executed.

Testology runs in two different modes – Test Developer and Test Runner. In the Test Developer mode the (test) developer can create the entire test suite including all the test cases and options, and set certain restirctions for the Test Runner regarding execution of the test cases. The tester operates in the Test Runner mode to execute the test suite – whole or part of it – and record the progress and results. The tester can set different sets of values for the test parameters, so that without touching the test source code, multiple test scenarios can be covered with different sets of values.

Testology also automatically generates all the test case function structures along with the full function signatures and the basic function documentation. The test developer only needs to fill in the required test code in the test case functions to implement the test suite.

Testology v2.0 is released in September 2015.
Testology can be downloaded and evaluated using a 30-day trial version.

Testology Runner is absolutely free. Anybody can download Testology Runner and try it out with sample test suites and various test parameters provided with Testology Runner.

Enjoy the product, and please give your feedback. We can enhance the product based on your comments.