This document describes shortly the design of the FrogLogic Tester system. ================================================================================ FrogLogic Test Runner (fltestrunner) ================================================================================ This commandline tool executes a test script, which is passed to it on the commandline. This tool also offers an API to start the software under test (via the test server), retrieve test data and do post-execution comparison. This API is exposed to the scripting engine which runs the test script, so all that can be done directly from the script. This tool also saves the test results in some way in a defined location, so that statistics about testing can be generated. NOTE: For now, as long as the scripting part is missing, this tool is actually used to test the object model for the remote case via a hardcoded test case written in C++. NOTE2: This tool used to be known as controlcenter ================================================================================ FrogLogic Test Automator ================================================================================ This tool runs as a service or daemon and automatically runs test cases as described by a configuration file and executes them using fltestrunner. ================================================================================ FrogLogic Test Statistics ================================================================================ This tool reads the test result outputs from FL Test Runner and generates statistics in HTML, PDF, ... and a format readable by the Test Manager. ================================================================================ FrogLogic Test Manager ================================================================================ This GUI tool performs a number of tasks: - Managing test cases (test cases are just script files, test data, etc. in a directory structure, so this can be done without the GUI, but the GUI will make it more comfortable) - Creating automatic test cases (recording, inserting dynamic comparisons while recording, etc. and generating scripts from that) - Writing and editing test cases (scripts) - Editing and managing test data (usually these are just text files, etc.) - Running test cases via fltestrunner - Debugging test cases - Creating manual test cases (starting the application under test, walking through it and creating a test description + expected result for every step) - Running manual test cases (running the software under test and displaying the notes + expected results via a wizard and so walking the tester through the test case) - Running the statistics tool and viewing and navigating in the generated statistics ================================================================================ FrogLogic Test Server (fltestserver) ================================================================================ This server provides the communication between the test runner and the software under test. ================================================================================ FrogLogic IDL ================================================================================ This commandline tool parses C++ code declaration and generates automatic wrappers for those types, so they can be used and introspected by the testing framework. ================================================================================ FrogLogic Object Model ================================================================================ This library provides the object model which is used by the testing framework for introspection and controlling the software under test. ================================================================================ FrogLogic Hook ================================================================================ This library hooks into the software under test (it actually has to link against the hook) and talks to the test server. That way the communication between the fltestrunner and the software under test is established. ================================================================================ FrogLogic Scripting ================================================================================ Scripting bindings library between the object model and different scripting languages which is used by the test runner.