the 3c approach for agile quality assurance andre janus, reiner dumke, andreas schmietendorf, jens...

18
The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張張張

Upload: leslie-banks

Post on 27-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

The 3C Approach for Agile Quality

AssuranceAndre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager

c 2012 IEEEReport : 103522034 張弘暐

Page 2: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Outline

• Goal• Project Context• Traditional and Agile Measurement & Metrics• Continous Integration• Continous Measurement• Continous Improvement• Conclusion

Page 3: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Goal

• looking for: Agile Quality Assurance• Metrics-based• Embedded in Agile Process• Solution: 3C-Approach• Agile Practice: Continous Integration(持續整合 )• Enhanced with Continous Measurement(持續測量 )• Enhanced with Continous Improvement(持續改善 )

Page 4: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Introduce

• This paper introduces the 3C Approach, which is an extension to the Agile Practice. Continuous Integration: It adds Continuous Measurement and Continuous Improvement as subsequent Activities to CI and establishes Metric-based Quality-Gates for an Agile Quality Assurance.

Page 5: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Project Context

• The project‘s Process is based on eXtreme Programming (XP)

• It was developed and proven in an Agile Maintenance and Evolution project for the Automotive Industry at T-Systems International – a large German ICT company.

Page 6: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Traditional Measurement Aspects and Metrics

• Traditional Metrics from LOC(程式碼行數 ) to the CK-Metrics are well-known

• For the measurement of traditional metrics and derived metrics there are a lot of Open Source tools available. In this project we used Findbugs for detecting potential programming mistakes, Checkstyle

for finding violations of Coding Standards and PMD as a hybrid-version of the tools mentioned before.

Page 7: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Agile Measurement Aspects and Metrics• With Agility came some new Metrics and Measurement Approaches , which are very useful in the Context of Agile Software Development. • Main focus of Agile Development like Testing and Continuous Integration and try to quantify the projects progress in that context.

• Look at the number of Tests, the Test-Coverage(測試覆蓋率 ) and number of Broken Builds.

Page 8: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐
Page 9: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Agile Metrics

• Test-Coverage(測試覆蓋率 )• C0-Line-Coverage• C1-Branch-Coverage• testCoverage = codeCoveredByTests / completeCode with 0 ≤ testCoverage ≤ 1

Page 10: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Agile Metrics

• Test Growth Ratio(測試成長率 )• testGrowthRatio = ΔsourceCode / Δ#Tests with (usually) ΔsourceCode ≥0 Δ#tests ≥ 0

Page 11: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Continuous Integration (CI)

• Continuous Integration (CI) was naturally used just to integrate new Source Code to the Code Base

• Continuous Integration is usually done by Continuous Integration Engines

• Regularly check the Version Control System (VCS:版本控制系統 )

• For new Source Code, which a Developer may have committed after implementation in his Integrated Development Environment (IDE)

Page 12: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Continuous Integration (CI)

Page 13: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Continuous Measurement

• After the execution and successfull passing of the tests it is a common practice to get some more information out of the Source Code by adding various measurement tools in the tool chain.

• In the Java Eco-System there are many Tools like Findbugs, PMD and Checkstyle – which are the ones used in the project at T-Systems - that can be integrated into an Continuous Integration like CruiseControl.

Page 14: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

In our project the tool Cobertura is used for test coverage. With thenumber of tests and the LOC the Test-Growth-Ratio is calculated.

Page 15: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

Continuous Improvement

• The Quality Manager plans necessary Refactorings or changes to the Coding Standards or the Coding Style Guide. This way the Quality Manager assumes the role of another Quality Gate as he can engage, if the results from the reports require it.

• Besides the manual analysis the Quality Manager can define new thresholds for certain metrics or add new metrics to be measured.

Page 16: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐
Page 17: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

CONCLUSION

• Agile Software Development and especially the Agile Practice CI offers new opportunities for traditional Software Measurement - instead of making it obsolete.

• It provides a measurement infrastructure for the Continuous Measurement which measures both traditional and Agile metrics.

Page 18: The 3C Approach for Agile Quality Assurance Andre Janus, Reiner Dumke, Andreas Schmietendorf, Jens Jager c 2012 IEEE Report : 103522034 張弘暐

CONCLUSION

• Using this 3C Approach the observed project could significantly improve its internal Software Quality and establish “in-process” Quality Gates to assure the Quality also for future development.