You are on page 1of 3

Automation is defined as a set of programs or steps which can be performed

automatically to achieve required function and leads in the reduction of manual


effort and improving code quality.
Automation is a critical component to achieve agility.

Areas where automation plays important role

Build and deployment of system


Code deployment
Unit test execution
Functional and performance test execution
Code coverage report generation
Code quality metrics report generation
Coding convention report generation

One of the key principles and benefits of following agile is faster feedback

The term "Fall fast" emphasis on better to fall earlier so that impediments can be
corrected based on the feedback.
Any repetitive manual task should be automated.

Usage of Automation in agile

1) Automation in development
Unit test suits - unit testing is one of the basic building blocks of continuous
integration. Automated unit testing is the first line of defense and key step in
"Fall fast" approach.

Unit testing framework - JUNIT, NUNIT,UTPLSQL

Code quality analysis

Tools - CAST, SONAR

Automation in Build

Continues Integration

Aim is to maintain a build environment which generates Production ready build

Actions of CI

analyse the code for quality


Build the code
Execute unit test cases
Uploads build artifact
Publish build and test result
Alert the team with results

Source version control tools

The version control tool should be able to determine and communicate to other tools
using hooking or polling

Hooking - let the other tools know when new changes are made
Polling - other tools have to poll the version control to determine whether a new
changes are made

Tools GIT,SVN, CLEAR CASE


Build Tool

MAVEN, ANT

Static code analysis tool

CAST, SONAR

Build Repository

Nexus

CI SERVER

Interact with all other components above and perform actual build of the
application along with test execution either automatically or a manual button click

JENKINS, HUDSON

Automation in Deployment

Continues Deployment

Tool - uDeploy

Steps..

1) all continues Integration steps


2) deployment into needed environment
3) execution of smoke test
4) publish the deployment results
5) Alert the team with results

Automation in Testing

Tools - CUCUMBER, QTP, FitNesse


Following testing can be automated

Smoke testing - Validate basic features are working fine after deployment. The
automatic test suits are executed from the build server after every deployment

System Testing
For system integration testing test cases are created in the testing framework.
Rule of thumb may be what ever test cases can be automated that will be automated.
Only for areas where manual testing is unavoidable , manual testing is performed

Regression Testing

New changes not affecting the previous one.

Acceptance testing

Testing the system against the defined accepted criteria

Tools - Cucumber, FitNesse

Define acceptance criteria test cases and then code is knowns as ACCEPTANCE TEST
DRIVEN DEVELOPMENT (ATDD)
Emerging Trends

LiquiBase

Tool to track changes made to the database in the form of XML. This helps in
subsequent rollback of changes or applying changes in one environment to another.

Chef

Tool that automate deployment and management of infrastructure. Infrastructure


treated as versionable, testable, repeatable similar to the application code

Challenges in automation

Pressure from product owner


Maintenance of automated script
Lack of follow though
Agile maturity
Timing of Automation

You might also like