<commit_before># skyfire

[![Build Status](https://travis-ci.org/mdsol/skyfire.svg?branch=develop)](https://travis-ci.org/mdsol/skyfire)

## Introduction
Skyfire is a Model-Based Testing (MBT) tool that generates [Cucumber](https://cucumber.io/) test scenarios  from a UML diagram.
Currently, skyfire supports Eclipse Modeling Framework (EMF) - based UML state machine diagrams.
Users can draw EMF-based UML diagrams using [Papyrus](https://eclipse.org/papyrus/) or [UMLDesigner](http://www.umldesigner.org/). 

## Installation
Run jars-installation.sh to install the coverage-0.9 jar, org.eclipse.uml2.common_1.7.0.v20120913-1441.jar, and org.eclipse.uml2.types_1.0.0.v20120913-1441.jar locally because these libraries are not available in any public Maven repository

## Usage

### Compile The Project
mvn clean compile

### Check Checkstyle Report
mvn site

## Run Integration Tests
mvn clean integration-test

## Generate source and JavaDoc Jars
mvn package

##Stage for Deployment and Release (project owners only)
mvn clean deploy

##Perform a Release Deployment (project owners only)
mvn clean deploy -P release

## License
Code and documentation copyright 2015-2016 Medidata Solutions, Inc. Code released under the MIT license.<commit_msg>Update the README file<commit_after># skyfire

[![Build Status](https://travis-ci.org/mdsol/skyfire.svg?branch=develop)](https://travis-ci.org/mdsol/skyfire)

## Introduction
Skyfire is a Model-Based Testing (MBT) tool that generates [Cucumber](https://cucumber.io/) test scenarios from a UML behavioral diagram.
Currently, skyfire supports Eclipse Modeling Framework (EMF)-based UML state machine diagrams.
Users can create EMF-based UML diagrams using [Papyrus](https://eclipse.org/papyrus/) or [UMLDesigner](http://www.umldesigner.org/). 

For the motivation, algorithms, and more information, please read the [paper](https://cs.gmu.edu/~nli1/2016-nli-MbtWithCucumber.pdf).

## Usage
 * Create a Maven-based Java project
 
 * Include the dependency in the POM file

```
<dependency>
	<groupId>com.mdsol</groupId>
	<artifactId>skyfire</artifactId>
	<version>1.0.0</version>
</dependency>
```
* Call the API and specify the path to the UML diagram, a graph coverage criterion, a feature description, and the path to the Cucumber feature file to generate

```
CucumberTestGenerator.generateCucumberScenario (
	Paths.get (pathToModel),
	TestCoverageCriteria.SOMECOVERAGE,
	featureDescription,
	Paths.get (pathToFeatureFile));
);
```

# Development Instructions

## Installation 
Run jars-installation.sh to install the coverage-0.9 jar, org.eclipse.uml2.common_1.7.0.v20120913-1441.jar, and org.eclipse.uml2.types_1.0.0.v20120913-1441.jar locally because these libraries are not available in any public Maven repository

### Compile The Project
```
mvn clean compile
```

### Check Checkstyle Report
```
mvn site
```

## Run Integration Tests
```
mvn clean integration-test
```

## Generate source and JavaDoc Jars
```
mvn package
```

##Stage for Deployment and Release (project owners only)
```
mvn clean deploy
```

##Perform a Release Deployment (project owners only)
```
mvn clean deploy -P release
```
## License
Code and documentation copyright 2015-2016 Medidata Solutions, Inc. Code released under the MIT license.
{'fraction_non_alphanumeric': 0.11073722851024778, 'fraction_numerical': 0.028143163046803303, 'mean_word_length': 5.033210332103321, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 9, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3761445', 'n_tokens_mistral': 1095, 'n_tokens_neox': 996, 'n_words': 325}