Effective feedback from quality tools during development



Similar documents
How To Set Up An Outsourcing Center In China

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR

Java Software Quality Tools and techniques

Software Construction

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Software Development. COMP220/COMP285 Seb Coope Introducing Ant

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

An Introduction to Software Development Process and Collaborative Work

Test What You ve Built

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Professional Java Tools for Extreme Programming. Ant, XDoclet, JUnit, Cactus, and Maven

Software infrastructure for Java development projects

Continuous Integration Multi-Stage Builds for Quality Assurance

Maven or how to automate java builds, tests and version management with open source tools

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Tech Notes. Corporate Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California Street, 12th Floor San Francisco, California 94111

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Curriculum Vitae E. A. Java/JEE developer

Creating a Free, Dependable Software Engineering Environment for Building Java Applications

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS Software AG. All rights reserved. For internal use only

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader

JAVA/J2EE DEVELOPER RESUME

Continuous Integration

FreeForm Designer. Phone: Fax: POB 8792, Natanya, Israel Document2

Upping the game. Improving your software development process

Project Management Tools

CASE STUDY: AgitarOne Ensures Quality of Outsourced Software Development at Major International Bank

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

XMLVend Protocol Message Validation Suite

Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting

Leveraging Rational Team Concert's build capabilities for Continuous Integration

SMZ. SocialMedia. Z olutions

Continuous Integration: Aspects in Automation and Configuration Management

Effective Java Training Portfolio

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Japan Communication India Skill Development Center

Testability of Dependency injection

Reverse proxy for Tomcat Project Plan

Software Continuous Integration & Delivery

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

LECTURES NOTES Organisational Aspects of Software Development

Continuous Integration for XML and RDF Data

Automating the Nengo build process

Content. Development Tools 2(63)

Continuous Integration. Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK

Accelerate Software Delivery with Continuous Integration and Testing. JaSST 08 Tokyo. Jeffrey Fredrick Agitar Software,

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

Java Web Services Developer Pack. Copyright 2003 David A. Wilson. All rights reserved.

Table of Contents. LESSON: The JUnit Test Tool...1. Subjects...2. Testing What JUnit Provides...4. JUnit Concepts...5

Realizing Continuous Performance Management

Good Samaritan Networking Group Week of Nov 2, 2009 New Job Opening Details

Configuring Java-Based Web Application Development Environment for an Academic Setting

Fit for Change: Steps towards Effective Software Maintenance

CSE 308. Coding Conventions. Reference

tools that make every developer a quality expert

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Continuous Integration

TeamCity A Professional Solution for Delivering Quality Software, on Time

Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.

RUnit - A Unit Test Framework for R

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Tools 1 / 35

<Insert Picture Here> What's New in NetBeans IDE 7.2

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

D3.1: SYSTEM TEST SUITE

Settlers of Catan Phase 1

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

This document gives an outline of Tim Ward s work on mobile phone systems

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

How the Open Source tools and spirit enable better projects July 09 th 2009

Hudson Continous Integration Server. Stefan Saasen,

How To Create A Data Transformation And Data Visualization Tool In Java (Xslt) (Programming) (Data Visualization) (Business Process) (Code) (Powerpoint) (Scripting) (Xsv) (Mapper) (

Rapid Server Side Java Development Using Spring Roo. Christian Tzolov Technical Lead, TTSD, TomTom BV 12/05/2010

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Java/J2EE or Web Developer. Formal Education. Technical knowledge. Spoken Languages

InstallAware for Windows Installer, Native Code, and DRM

Overview of sharing and collaborating on Excel data

DITA Adoption Process: Roles, Responsibilities, and Skills

Improvement of Software Quality and Productivity Using Development Tools

Cocoon 2 Programming: Web Publishing with XML and Java"

Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen

White Paper A Model Driven Approach to Data Migration

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

Towards Software Configuration Management for Test-Driven Development

Build management & Continuous integration. with Maven & Hudson

SOFTWARE DEVELOPMENT BASICS SED


Continuous Integration Using Cruise Control

Accelerate Software Delivery

Senior Java Developer Job opportunities in South Africa Jobs in Western...

Introduction to Programming Tools. Anjana & Shankar September,2010

Kevin Lee Technical Consultant As part of a normal software build and release process

XML-BASED INTEGRATION: A CASE STUDY

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies

Japan Communication India Skill Development Center

Innovatively Different!

Building Applications with JBuilder

Transcription:

Effective feedback from quality tools during development EuroSTAR 2004 Daniel Grenner Enea Systems

Current state Project summary of known code issues Individual list of known code issues Views targeted at individuals / roles Information updated daily (at least) Well known project status This presentation will show you how this is done!

Original state 20+ developers Not much Java/J2EE experience Varying OO experience New language, tools, processes How should quality be ensured?

Initial development practices Coding standards Nightly build Unit tests Code reviews Automated code checks Support from mentors

Coding standards Improves maintainability Makes it easier to find strange code Use tool to format code

Nightly build Build the system Create documentation Generate reports

Unit tests JUnit obvious choice Cactus chosen for in-container tests Fit well into environment Ant tasks useful Unit testing course for all developers

Code reviews All code should be reviewed by a mentor JavaDoc @reviewer tag used To find unreviewed code Work intensive but effective

Automated code checks Let a tool do repetitive tasks Reduces review work Allows reviews to focus on difficult problems Small amount of work large payoff

Selecting tool for automated checks Useful initial checks Configurable (modify existing checks) Extensible (add new checks) Integration with environment Easy to use License & price Possibility to use several tools

Checkstyle Checks for: Coding standards Potential bugs Common problems And much more (100+ checks) Easy to configure Extensible Integrates with Ant & several IDEs Open source

Mentoring 4 7 consultants during project Experts in different areas Java / J2EE / Swing / UML / Tasks Teach Answer questions Create project standards Development support

Tuning the process Continuous integration Better feedback Continuous follow-up

Continuous integration Build when new code is checked in Avoid problems during nightly build Faster feedback

Feedback from nightly build Build / compile warnings JavaDoc warnings Checkstyle findings JUnit results All organized differently e.g. by file, subproject, project Findings increased, due to lack of responsibility. Need to simplify daily work Find all information needed daily in a single location

Individual feedback Use Checkstyle as base, but group findings based on responsible person (@author) instead of file. Added Checkstyle task to output @author into results Sort results with XSLT Immediate decrease in Checkstyle findings Most people wanted good statistics. Some individuals did not improve their results, but follow up became easier.

Project summary Individual summary Details ordered by individual

Integration of other tools Integrate all results into a single report Checkstyle report JUnit reports (based on @author of test case) Results from build process JavaDoc Javac Code reviews

Code review Checkstyle JUnit Javac JavaDoc

Separate reports Code review information Optimizeit CodeCoverage

Project summary Individual summary Details ordered by individual

Technical solution XSLT Ant XML XSLT XML

XSLT tasks Merge different information sources Summarize information E.g. calculate statistics Extract missing information E.g. assign author if it is missing Produce readable reports (HTML)

XSLT setup One style sheet for each task Simplifies development Decorator pattern More information added each step Merge all / most XML files into one Use Ant s style task

Report generation Java source Checkstyle XML XSLT XML Build XML XSLT XML Unit test XML XSLT XML XML XSLT XML XSLT XSLT XSLT HTML HTML HTML

Tool requirements Automation Ant (first choice) Command-line (if Ant interface is not available) Assigned person (possible for e.g. weekly task) Output format XML directly Possible to convert to XML Output content Preferably with file reference (enables merging)

Technical details More information is provided in the paper

Continuous follow-up Set up goals / limits in project E.g. 80% code coverage during unit test E.g. < 20 Checkstyle findings / developer 0 issues / person not always possible during dev. Update tool settings to allow or disallow new things E.g. when common coding error found When exceptions to rules are needed

Who should perform follow-up? First solution Follow up by QA responsible Discussion about standards Second solution Non-technical person. Discussions pointless Special cases Report to management Use results e.g. as input to salary review

Summary Automate as much as possible Most cost-effective solution Simplify for developers Target report to recipients Follow-up of results

More information E-mail me: daniel.grenner@enea.se Tools: http://ant.apache.org http://checkstyle.sourceforge.net/ http://cruisecontrol.sourceforge.net/ http://jakarta.apache.org/cactus/ http://www.junit.org

Questions?