More Related Content Similar to The essential tools for test code quality improvement latest (20) The essential tools for test code quality improvement latest2. QAA Geek and Java fan.
Consultant, speaker and
open-source contributor.
• Lead QAA Engineer
• Consultant: http://sdclabs.com
• GitHub contributor: sskorol
Speaker’s info
• Email: serhii.s.korol@gmail.com
• Twitter: @ss_korol
Contacts
Sergey Korol
Waverley Software
‘‘
2
WHO AM I?
3. WHAT IS CODE QUALITY?
● Easy to understand
● Easy to maintain
● Easy to use
● Works correctly
Some say:
● High quality == meets
requirements
Some say:
● Reliability
● Maintainability
● Efficiency
● Security
● Size
Some (CISQ) say:
3
7. IMPROVEMENT STEPS
• Checkstyle, PMD, FindBugs usage
• IDE integration
• Pre-commit Git hook setup
Quality tools integration
Continuous integration
• Integrate Sonar into CI flow
• Quality metrics analysis
Sonar integration
6
• Jenkins pipeline and quality reports
• Tests execution in Docker
23. 23
22
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
24. 24
23
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
25. 25
24
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
26. 26
25
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
27. 27
26
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
28. 28
27
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}
29. 29
28
CONTINUOUS INTEGRATION
stage(‘Checkout’) {
checkout scm
}
stage(‘Start services’) {
sh “docker-compose up –d”
}
stage(‘Quality checks / tests’) {
sh ”./gradlew clean check”
}
stage(‘Stop services’) {
sh “docker-compose down”
}
stage(‘Publish Allure report’) {
publish.allureReport()
}
stage(‘Publish quality report’) {
publish.checkstyleReport()
publish.pmdReport()
publish.findbugsReport()
}