AutoTestBox Overview

Its all in the title! AutoTestBox (ATB) was inspired by A Test Bench Facility in Plex by Websydian A/S 


Theory

It is not within the scope of this document to examine the different software testing approaches of Black/Grey/White box testing but dare say to try and make accessible these approaches to a CA Plex environment.

It is hoped ATB version 1.0 will provide the community a base product to build on in an open source initiative. With this in mind version 1.0 does not include all the bells and whistles that can be be found in other testing tools but an effort to concentrate on the basics to control the execution of tests and the comparison of actual outcomes to predicted outcomes.

ATB application was written in WinC and therefore in theory ATB will support calling a test function of any platform CA Plex supports via WinC Client Server architecture.


LIMITATION: The standout limitation is ATB only works on non panel functions. Instead of hiding this fact it is felt as many CA Plex sites today have moved away from UI development (obviously a matter of opinion) but leveraging existing systems to new calling tiers, it could be argued a strength. Even in the automated testing community there is a clear division of GUI testing tools and lack of a better term 'Business Services' testing tools.

                          Limitation: No Structured Fields

Basics

  • ATB has standalone database (Variants: ODBC server & System i RPGIV server tested)
    • Record test function interfaces
    • Record test suites/cases/tests/steps
    • To fetch and update parameter data at test runtime
    • Record results of test runs
  • ATB has a WinC GUI to maintain and execute test runs.
  • A stub/wrapper function (WinC) is created (Via ATB Wizard) for every test function
    • Registration mode - To record the functions interface specifications in ATB Database
    • Runtime mode - To fetch and update the test run's input and output data

CA Plex6.1 (Build 43.035) is mandatory

CA Plex6.1 (Build 43.035) is mandatory because of a following generation fix that makes the whole thing possible:   ++Cast To meta when "+For Each Variable" loop through via optional function meta-variable.