Open source solutions to alm
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

Open Source Solutions to ALM PowerPoint PPT Presentation


  • 40 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Open Source Solutions to ALM

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Open source solutions to alm

Open Source Solutions to ALM

Eric Brown

[email protected]


What is 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.


Agenda

Agenda

  • Defect Tracking and Change Management

  • Unit Testing

  • Version Control

  • Build Management


Defect tracking and change management

Defect Tracking and Change Management

  • Defect Tracking is tracking defects (duh) in a product

    • Testing

    • Customer Feedback

  • Change management


Defect tracking and change management1

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 management2

Defect Tracking and Change Management

  • Demo


Unit testing

Unit Testing

  • What

  • Why

  • Who

  • How


Unit testing1

Unit Testing

public 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 testing2

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

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 testing3

Unit Testing

  • There are others, but popular ones include

    • NUnit

    • XUnit

    • MbUnit

    • CSUnit


Unit testing4

Unit Testing

  • Demo


Version control subversion

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 terms

VC: Subversion Terms


Vc subversion client tools

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

Version Control

  • Demo


Build management build master

Build Management – Build Master


Build management

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

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 tools1

Build Management Tools

  • Demo


Other tools exist for 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


Resources

Resources

  • Bugzilla

    • http://www.bugzilla.org

    • Nant

    • http://nant.sourceforge.net/

  • CruiseControl.NET

    • http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

  • Team City

    • http://www.jetbrains.com/teamcity/


Resources cont

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 cont1

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

Questions


  • Login