open source solutions to alm

Post on 08-Feb-2016

33 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

Open Source Solutions to ALM. Eric Brown eric.m.brown@thomsonreuters.com. What is ALM. According to Wikipedia - PowerPoint PPT Presentation

TRANSCRIPT

Open Source Solutions to ALM

Eric Browneric.m.brown@thomsonreuters.com

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.

Agenda

• Defect Tracking and Change Management• Unit Testing• Version Control• Build Management

Defect Tracking and Change Management

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

• Change management

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

Defect Tracking and Change Management

• Demo

Unit Testing

• What• Why• Who• How

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;

}

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

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

Unit Testing

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

Unit Testing

• Demo

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)

VC: Subversion TermsSubversion Source SafeCheckout -

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

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)

Version Control

• Demo

Build Management – Build Master

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

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

Build Management Tools

• Demo

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

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/

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

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

Questions

top related