From 2cf9a83bd4e8f1baa8200a85d6ddf4553de65ac2 Mon Sep 17 00:00:00 2001 From: Daniele Gagliardi Date: Fri, 19 Apr 2019 13:06:58 +0200 Subject: [PATCH] First recipe: amplify test cases related to code changes --- stamp-jenkins-cookbooks/README.md | 96 +++++++++++++++++- .../src/common/images/blue-ocean-pipeline.png | Bin 0 -> 6219 bytes .../common/images/jenkins-pipeline-config.png | Bin 0 -> 45437 bytes 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 stamp-jenkins-cookbooks/src/common/images/blue-ocean-pipeline.png create mode 100644 stamp-jenkins-cookbooks/src/common/images/jenkins-pipeline-config.png diff --git a/stamp-jenkins-cookbooks/README.md b/stamp-jenkins-cookbooks/README.md index 778509c..fea5418 100644 --- a/stamp-jenkins-cookbooks/README.md +++ b/stamp-jenkins-cookbooks/README.md @@ -1 +1,95 @@ -stamp-jenkins-cookbooks +# STAMP CI/CD Cookbook +This cookbook is for developers, software architects, build managers and QA engineers who want to introduce STAMP test amplification within their CI/CD infrastructure. +A basic understanding of STAMP tools and Jenkins server configuration and usage is expected. + +- STAMP tools + - Assess your unit tests with [Descartes](https://github.com/STAMP-project/pitest-descartes) extreme mutation testing + - Amplify your unit tests with [DSpot](https://github.com/stamp-project/dspot) + - Amplify your test configurations with [CAMP](https://github.com/stamp-project/camp) + - Reproduce automatically your production crashes with [Botsing](https://github.com/STAMP-project/botsing/) +- Jenkins + - [Guided tour](https://jenkins.io/doc/pipeline/tour/getting-started/) + - [Jenkins pipelines](https://jenkins.io/doc/book/pipeline/) + - [Blue Ocean](https://jenkins.io/doc/book/blueocean/) Jenkins User Experience + + +## Table Of Content +- [Amplify unit tests bound to code changes](#amplify-on-code-changes) + +## Amplify on code changes +This recipe explains how to use in a combined way [DSpot Diff Selector](https://github.com/STAMP-project/dspot/tree/master/dspot-diff-test-selection) (a tool able to select only unit tests related code changes) and DSpot itself to amplify just those selected unit tests within the CI, leveraging a Jenkins pipeline and [STAMP Pipeline Library](https://github.com/STAMP-project/pipeline-library). +### Getting ready +The pipeline we are going to setup has this structure: + +![Pipeline for test amplification on code changes](src/common/images/blue-ocean-pipeline.png "Pipeline for test amplification on code changes") + +After compilation and unit test steps, this pipeline will assess your test cases, then in "Amplify" step will retrieve all test cases related to code changes bound to current commit, and will amplify them. + +### How to do it +First of all you have to configure Jenkins to use STAMP pipeline code. You can configure it at global level or at build level. Following a screenshot that shows you how to configure it at global level: + +![STAMP pipeline library configuration at global level](src/common/images/jenkins-pipeline-config.png "STAMP pipeline library configuration at global level") + Then you have to configure the pipeline in your project repository + +Following the pipeline code: + +``` +@Library('stamp') _ + +pipeline { + agent any + stages { + stage('Compile') { + steps { + withMaven(maven: 'maven3', jdk: 'JDK8') { + sh "mvn clean compile" + } + } + } + + stage('Unit Test') { + steps { + withMaven(maven: 'maven3', jdk: 'JDK8') { + sh "mvn test" + } + } + } + + stage ('Test your tests'){ + steps { + withMaven(maven: 'maven3', jdk: 'JDK8') { + sh "mvn eu.stamp-project:pitmp-maven-plugin:1.3.6:descartes -DoutputFormats=HTML" + } + publishHTML (target: [ + allowMissing: false, + alwaysLinkToLastBuild: false, + keepAll: true, + reportDir: 'target/pit-reports', + reportFiles: '**/index.html', + reportName: "Pit Decartes" + ]) + } + } + + stage('Amplify') { + steps { + script { + stamp.cloneLastStableVersion("oldVersion") + if (fileExists("${WORKSPACE}/oldVersion/src")){ + withMaven(maven: 'maven3', jdk: 'JDK8') { + sh "mvn clean eu.stamp-project:dspot-diff-test-selection:list -Dpath-dir-second-version=${WORKSPACE}/oldVersion" + sh "mvn eu.stamp-project:dspot-maven:amplify-unit-tests -Dpath-to-test-list-csv=testsThatExecuteTheChange.csv -Dverbose -Dtest-criterion=ChangeDetectorSelector -Dpath-to-properties=tavern.properties -Damplifiers=NumberLiteralAmplifier -Diteration=2" + } + } + } + } + } + } + environment { + GIT_URL = sh (script: 'git config remote.origin.url', returnStdout: true).trim().replaceAll('https://','') + } +} +``` + +The first line imports STAMP Pipeline library. +The stage `Amplify` uses STAMP pipeline library to retrieve the diff cloning the previous last successfull build, and storing it in a folder. Then DSpot Diff Selector will use it to retrieve involved test cases, and then they will be passed to DSpot for the amplification. \ No newline at end of file diff --git a/stamp-jenkins-cookbooks/src/common/images/blue-ocean-pipeline.png b/stamp-jenkins-cookbooks/src/common/images/blue-ocean-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..6792f5a031b5564fe3bbe8b0c3f40694b7da28ff GIT binary patch literal 6219 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 Nin6LQ-=7+N_%F&1=57E0 literal 0 HcmV?d00001