You are on page 1of 7

DADM Refactoring Conference

JDM Pro Development and


Test Methodology
John Sims
Associate Technical Fellow, Architect
25 March, 2014
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Agenda

Development Approach
Test Approach
Software Quality Metrics
Continuous Integration Approach
Recommended Tools and Techniques

2
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Development Approach
Mostly Agile approach followed

Java 1.7 programming language


Two week sprints
Demo of completed work at the end of each sprint
Continuous Integration
Code checkin results in immediate build
Full build/test performed multiple times per day
Software quality metrics computed on each full build

Developer Unit Tests


High Level Architectural Model followed
Low level design also modeled
Work at risk of not completing is identified early in the sprint
Code must adhere to software quality standards
Complex code must be peer or architect reviewed
All open source components must be approved by architecture before use

3
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Test Approach
Developers create Unit Tests must pass 100%
Testers work with developers during a sprint for functional
and integration tests
A development task is not complete until it passes all Unit, functional
and integration tests

Testers work independently to build and maintain a full


regression test suite
Testers work independently to build and maintain a
performance test suite
When features are complete for a release, the testers work
independently to perform a formal Test For Credit prior
to release

4
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Software Quality Metrics


Unit Test Coverage 75% code coverage minimum with 0%
failures
Functional and Integration Test 100% requirements
coverage
Static code analysis by Cobertura tool

0 coding violations permitted


0 security violations permitted
Cyclomatic complexity score of 10 or less
Minimum duplicated code
All classes and methods documented with Javadocs

Performance testing
System must sustain a load of at least 10 transactions per second 24
X7
5
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Continuous Integration Approach


All source code maintained in Software Configuration
Management
All development performed under ticket authority
Changelists for each build identified
Successful full builds promoted to a test environment for
full regression and performance testing
Auto deployment to test environment is required

6
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

Recommended Tools and Techniques

Software Quality Reporting SonarCube


Continuous Integration Bamboo or Hudson
Defect/work management Jira or Rally
Software Configuration Management Perforce
Unit Testing Junit
Functional/Integration Testing Fitnesse
Performance Testing Jmeter
Deployment - Chef

7
Jeppesen Proprietary - Copyright 2014 Jeppesen. All rights reserved.

You might also like