open source solutions to alm

26
Open Source Solutions to ALM Eric Brown eric.m.brown@thomsonreuter s.com

Upload: sereno

Post on 24-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Open Source Solutions to ALM. Eric Brown [email protected]. What is ALM. According to Wikipedia - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Open Source Solutions to ALM

Open Source Solutions to ALM

Eric [email protected]

Page 2: Open Source Solutions to ALM
Page 3: Open Source Solutions to ALM

What is ALM

• According to Wikipedia– Application lifecycle management (ALM) is

the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.

Page 4: Open Source Solutions to ALM

Agenda

• Defect Tracking and Change Management

• Unit Testing

• Version Control

• Build Management

Page 5: Open Source Solutions to ALM

Defect Tracking and Change Management

• Defect Tracking is tracking defects (duh) in a product– Testing– Customer Feedback

• Change management

Page 6: Open Source Solutions to ALM

Defect Tracking and Change Management

• Bugzilla– Used by Mozilla– Optimized database structure for increased

performance and scalability – Built-in security and permissions system– Advanced query tool that can remember your

searches – Integrated email capabilities – Editable user profiles and email preferences

Page 7: Open Source Solutions to ALM

Defect Tracking and Change Management

• Demo

Page 8: Open Source Solutions to ALM

Unit Testing

• What

• Why

• Who

• How

Page 9: Open Source Solutions to ALM

Unit Testingpublic static bool AreEqual(byte[] a, byte[] b){

if(null == a && null == b) return true;

if(null == a) throw new ArgumentNullException(“a”, “cannot be null”);if(null == b) throw new ArgumentNullException(“b”, “cannot be null”);

if (a.Length != b.Length) return false;

for(int i=0; i < a.Length; i++){

if(a[i] != b[i]) return false;}return true;

}

Page 10: Open Source Solutions to ALM

Unit Testing

• You should be Unit Testing!!

• UI’s are more difficult to unit test

• For testing middleware components that get data from a database you need– Generate stubs– Seed data in the database

Page 11: Open Source Solutions to ALM

Unit Testing - Strategies

• Build tests for each non private method

• Each test is independent from other tests

• What about private methods?

• When building tests make sure to deal with– Happy path testing– Boundary conditions– Exception cases

Page 12: Open Source Solutions to ALM

Unit Testing

• There are others, but popular ones include– NUnit– XUnit– MbUnit– CSUnit

Page 13: Open Source Solutions to ALM

Unit Testing

• Demo

Page 14: Open Source Solutions to ALM

Version Control - Subversion

• Free• Multi-platform• Fast over VPN• Multiple client applications• Work done locally• Offline story• No exclusive checkout issues• Multiple protocols supported (http/https/svn)

Page 15: Open Source Solutions to ALM

VC: Subversion TermsSubversion Source Safe

Checkout -

Commit Update

Update Get Latest Version

Revert Undo checkout/Get latest version

Branch Branch

Merge Merge

Export

Head Latest version

Trunk

Tag Label

Checkout

Share

Page 16: Open Source Solutions to ALM

VC: Subversion Client Tools

• Subversion command-line

• TortoiseSVN

• Eclipse plug-ins available

• Visual Studio .NET plug-ins available:

• AnkhSVN - free

• VisualSVN (Costs ~$49/license, but awesome)

Page 17: Open Source Solutions to ALM

Version Control

• Demo

Page 18: Open Source Solutions to ALM

Build Management – Build Master

Page 19: Open Source Solutions to ALM

Build Management

• A build is more than just a compile– Get latest code from source repository– Compile the code– Run Unit tests– Run code analysis / coverage– Run code compliance– Deploy to a deployment site if necessary

Page 20: Open Source Solutions to ALM

Build Management Tools

• Nant - useful for performing build tasks• CruiseControl .Net

– Automated continuous integration server• Monitors source repository• On a schedule can launch an integration build to validate

changes• Notifies developers as to successful build or fail.• Build is not just a compile of code• Can build multiple projects on one server• Remote management and reporting

– CCTray .Net

Page 21: Open Source Solutions to ALM

Build Management Tools

• Demo

Page 22: Open Source Solutions to ALM

Other tools exist for ALM

• NCover – Code coverage analysis• FXCop – Code compliance• Vil – code metrics analysis• Simian – similarity analysis ($$)• NDepend – dependency analysis ($$)• JetBrains Team City

– build management– continuous integration server

• And others not listed

Page 23: Open Source Solutions to ALM

Resources

• Bugzilla– http://www.bugzilla.org

• Nant– http://nant.sourceforge.net/

• CruiseControl.NET– http://confluence.public.thoughtworks.org/display/CCNET/Welco

me+to+CruiseControl.NET

• Team City– http://www.jetbrains.com/teamcity/

Page 24: Open Source Solutions to ALM

Resources (cont.)

• Unit Testing– Nunit - www.nunit.org

– Xunit - www.codeplex.com/xunit

– MbUnit – www.mbunit.com

– CSUnit – www.csunit.org

• Test Driven .NET - http://www.testdriven.net/download.aspx

Page 25: Open Source Solutions to ALM

Resources (cont)

• Subversion– Repository – http://subversion.tigris.org– Tools

• TortoiseSVN – http://tortoisesvn.tigris.org• AnkhSVN - http://ankhsvn.open.collab.net• Visual SVN- http://www.visualsvn.com/visualsvn

Page 26: Open Source Solutions to ALM

Questions