Oxygen project (formerly PCTgen) - Experimental Model-based Testing Environment
- Open freeware tool for automated generation of path-based test cases for application processes & workflows
About the project
Oxygen (formerly PCTgen) in a nutshell
Key features
- The main use of the application is to significantly reduce the time needed for the manual creation of the test cases.
- Oxygen allows automated generation of process and workflow test cases. The System Under Test (SUT) is modeled by directed multigraphs (in the current version decision points = nodes, actions and decision variants = edges), or by simplified UML Activity Diagram.
- For the generation of test cases, Test Depth Level (TDL) coverage criterion is used (practically equivalent to N-switch coverage). By TDL, it also supports Edge coverage (TDL=1), Edge-pairs coverage (TDL=2). Prime paths coverage is going to be added in the future release.
- Priority functions and decision points in the SUT can be marked in the model. The test cases are optimized to cover only these priorities while keeping a possibility to determine the intensity of testing by TDL.
- Open formats based on XML, CSV, and JSON are used for importing & exporting of the graphs and exports of created test cases. This allows connection of Oxygen to design and test management tools.
- Oxygen is written as a platform-independent fat-client application in Java.
Research and development
- Oxygen is one of the products of our research in model-based testing algorithms. Besides the practical usability of its public release for the test designer community, the application serves as an experimental platform for the testing and verification of the algorithms we are developing.
- The current public version supports:
- Process Cycle Test (PCT) algorithm: Optimized TDL-based test case generation, extended by TDL reduction in graph cycles
- Prioritized Process Test (PPT) algorithm combining TDL with Priority Level (PL) coverage criterion
- In the upcoming versions, better algorithms generating test sets closer to the optimum are going to be released (currently verified by experiments).
Oxygen 2.1 beta: Added features
Creating the SUT model
- Export of directed graph and Activity Diagram in SVG
- Several defects fixed
Future development
Generation of test cases
- Alternative SC, PG and RSC algorithms based on the test requirements concept are being tested
- New core module optimizing the test cases through selected criteria (e.g., number of test steps, number of unique test steps, number of E2E test cases) is currently being tested
Release 2.0: Added features
Creating the SUT model
- Prioritization of workflow model parts
- New editor to create the model of the SUT processes in a simplified UML Activity Diagram
- Exporting the graph in JSON
- Visualization of end nodes, some usability improvements
Generation of test cases
- Export of generated test cases to JSON and TXT
- Generation of more efficient test cases by Prioritized Process Test (PPT) algorithm
- New data consistency testing features, based on extended CRUD matrix as a model of the SUT
Release 1.2: Added features
Creating the graph
- Priority added to nodes/edges metadata
- Visualization of priorities in the graph
- Zooming the graph, undo/redo of edit steps, some usability improvements
Release 1.1: Features overview
Project structure
- Tree hierarchy: projects, graphs, sets of generated test cases
- Multiple projects allowed
Creating the graph
- Drawing the graph in graphical editor
- Entering the graph in the table
- Importing the graph from XML / CSV file
- Basic set of metadata for each node/edge (will be extended in future updates)
- Auto-arrange graph layout
- Validation of graph before generation of test cases
- Exporting the graph to XML / CSV file
Generation of test cases
- Automated generation of test cases by TDL coverage criteria
- Reduction of TDL in graph cycles
- Display of edges sub-combinations and final test cases in table
- Visualization of selected test case in the graph
- When graph is changed, affected (obsolete) test cases are marked in the project tree
- Export of generated test cases to XML / CSV file
Others
- English and Czech localization
Download
Oxygen 2.1 beta
Literature about Oxygen
- Miroslav Bures: PCTgen: Automated Generation of Test Cases for Application Workflows. In New Contributions in Information Systems and Technologies, Advances in Intelligent Systems and Computing, vol.353, p. 789-794, Springer, 2015.
-
Miroslav Bures, Tomas Cerny and Matej Klima:
Prioritized Process Test: More Efficiency in Testing of Business Processes and Workflows. In ICISA 2017, LNEE vol.424, p. 585-593, Springer, 2017.
Feedback welcome!
- We welcome any bug reports, comments, feedback, suggestions for future features.
- We know there are some small bugs/user inconveniences in the current version, yet these are not limiting usage of Oxygen. In the upcoming versions, we are going to fix them.
Team
Research team
- Miroslav Bures
- Bestoun S. Ahmed
- Karel Frajtak
Oxygen designed and implemented by
- Miroslav Bures
- Lukas Lowinger
- Vaclav Rechtberger
- Matej Klima
- Lukas Hopp
Contact
- Miroslav Bures
- Research group STILL - Software Testing IntelLigent Lab
- Czech Technical University in Prague, Faculty of Electrical Engineering, Department of Computer Science
- e-mail: miroslav.bures[at]fel.cvut.cz
- skype: miroslav.bures3
If you are interested in the project and you would like to know more or join, don't hesitate to contact us!