Project Manager101 Guide For Automation - Paper PDF
Project Manager101 Guide For Automation - Paper PDF
Automation Projects
Shrini Kulkarni
Principal Consultant - Testing
iGATE Global Solutions
Bangalore
[email protected]
www.igate.com
Table of Contents
Introduction............................................................................................ 3
Background – Legacy of failed Automation Projects................................. 3
Context .................................................................................................. 5
Automation readiness Assessment.......................................................... 6
Development Model ................................................................................ 6
Concept of Automation Ecosystem.......................................................... 7
Building Blocks of an Automation Ecosystem ....................................... 7
Process Model......................................................................................... 8
Test Design and Automation................................................................... 9
Test Case Analysis ................................................................................ 11
Resourcing – Hiring for Automation skills ............................................. 11
Economic Aspects of Automation.......................................................... 12
Bonus Tip - Big Secretes about Automation .......................................... 13
Conclusion............................................................................................ 13
References ............................................................................................ 14
Appendix A 10 Classic Reasons why Test automation projects fail ........ 15
About the author - Shrini Kulkarni ........................................................ 15
Introduction
Any serious test automation is a software development activity but of a different type.
Test automation is a valuable addition to a tester's toolbox to enhance the reach of
testing. It does not and can not replace a human tester, particularly at the end-user
level. Most test automation efforts fail because they don't take software development
architecture into account, they don't plan for maintenance, and they tend to be
understaffed, and are often staffed by non-programmers. Over last 2 decades, various
authors and practitioners have cautioned against taking a shortcut for deploying
automation solutions. Few parameters and aspects like - “scope of work”, “staffing
requirements”, “Automation tool”, “Acceptance criteria”, “Identifying and managing
stakeholders”, “Approach to automation” etc., make automation projects to be treated
differently than other software projects. Thus managing test automation project
presents a unique and interesting challenge.
Test automation is a very cool tool or means of supplementing your manual testing. If
properly applied, it can bring in some cost advantages, appropriate reductions test cycle
time, working around human limitations of boredom, fatigue and many others. In
today's scenario of Enterprise IT and software product engineering, managers have been
looking for ways improve and optimize costs associated with software testing and are
typically seen zeroing on test automation. We have a legacy of incorrect application of
Test automation and history of failed or abandoned automation initiatives.
Bret Pettichord [2], points out common problems associated with Test automation
projects. In his experience of working software companies of different size and cultures,
Bret, recognizes many common things that lead to failures. It is very important to note
the observations on people issues, business expectations and loss focus on “testing”.
Reluctance to think about testing – is a noteworthy observation. Automation engineers
might find automation more interesting than testing and for the management sets its
eye firmly getting benefits (as promised by automation tool vendor) – while slowly
drifting away from core work of Testing. Among the people issues, dumping the work of
automation on test engineers as a part time job (when there is no testing happening) is
the big one.
Cem Kaner [3] lists a specific list of things that a manager needs to take care of - for
automation projects. Words of caution are right there at the start of the paper -
“Companies abandon automation efforts after failing to achieve bug-effective and cost
effective automation. Success is possible but far from assured”.
Shrini Kulkarni [5] lists down 10 classic reasons why test automation projects fail. The
author presents a concise list of reasons leading to failures in automation - with the top
one being “a simplistic model used for testing”.
Elisabeth Hendrickson [4] mentions about ‘the differences between automation success
and failure”. A failure in test automation can manifest in a number of ways -
Context
Typically, a project manager for an automation project can be seen working with any of
following two contexts.
Second - A software product development group that has an automation team, there is
a need to develop automated test suite for core set of product features. Objectives of
automation are to facilitate daily build and test, test more often, facilitate easier
introduction of new features and bug fixes. Automation happens typically more at unit
level /API level and less at GUI level. Mostly in-house tools are used.
While the former one is more common in the industry, the latter one is seen product
development companies. As we can see from these two contexts that there are no
universal objectives about Automation, stakeholders, depending upon the situation,
decide the objectives for the automation program. Key to successful management of
automation project is to understand “stakeholders” view point.
Development Model
A Development model for an automation project in its simplicity would be like an IDE
(integrated development environment). It is a core structure on which automation code
is developed. In some cases, a development model is also referred as “Automation
framework”
The project manager needs to be aware of development practices for automation, are to
be built on the principles of “Holistic Approach to Test automation” as defined bellow.
It is this ecosystem concept that makes any Test Automation Program - complex to
design, implement and manage.
Development Block
1. Script/Module Templates
2. Coding Guidelines
3. Code Review Process/Guidelines
4. Test analysis template
5. TALC model – Automation Lifecycle
Deployment Block
Process Model
Test Automation projects are software development projects - but of different type.
When executed separately, need to follow some structured process for successful
completion. Like in software development, Automation project also will have phases,
milestones and deliverables. Key to success in automation is to design, develop,
implement and maintain one such model for a given organization. The model needs to
specifically address unique characteristics, requirements, culture and other things. It is
recommended to not to just blindly follow an “industry” standard model without
evaluating the suitability of the model to the group and organization.
A process model would help the automation team to plan the project activities, provides
a wireframe structure on which specific project artifacts can be laid out and delivered.
The process model would define the roles and responsibilities of resources in the
project and the protocols for communication with external teams and individuals. A
process model would also help the team with a tool kit for performing routine tasks of
the projects, there by bringing a consistency and uniformity of deliverables.
Following are few general requirements that the automation process model needs to
address.
Selection of test cases for automation is the major activity in Automation lifecycle. A
mature PM of Automation would spend adequate time is set for proper analysis of test
cases and check for each one the value of automation vs. the cost of automation once
the technical feasibility is cleared.
1. A style that is not close the what computers can understand - Mostly
(forcefully) written in a language that any unskilled tester – can understand
2. Some of them are OUTDATED - Most of them need updates to suit with
current set of Application features.
3. WRITEN with lots of manual element – phrases like “Valid or proper results
are displayed”
5. Test Data issues – manual Tests do not identify the test data to be used
6. Highly Brittle – Too much tied to the flow, UI etc – difficult to maintain and
change
The word Test case analysis is applicable in those contexts where the automation is
given a set of test cases and asked to automation a subset of them. Test case analysis
phase in Automation lifecycle aims at building a robust Automation test suite based on
the sound programming principles of modularity, re-usability and extendibility.
In a typical GUI regression automation scenario, following are the tasks performed as
the part of Test case analysis
Following list is intended to be used as a guide for hiring automation resources for the
team.
1. Good automation is software development – An automation engineer, at a high
level should understand and appreciate general programming and development
principles and should be able quickly grasp the concepts.
2. Prior programming experience would be a huge advantage
3. Should have a good analytical/out of the box thinking abilities in order to solve
and work around typical “non standard” test features and
4. should possess basic testing skills and ability to think through the eyes of a
tester and should be able to tailor the solutions suited to various testing needs
5. Should be good at test tools – a wide variety of them, should know about major
drawbacks of each of them. Affinity to a particular tool should not become a
hindrance to development of variety of solutions using alternative methods.
6. A project lead or a PM, in addition to above qualities needs to have general
project management skills like project tracking, issue resolution, communication
to stakeholders, deliverables management etc.
Automation is initial investment heavy exercise. If there is one single most component
that impacts the “economics” of automation that would be “Maintenance cost of
Automation”. It will be more accurate if this term is generalized to include all “recurring
costs” associated with owning an automated test suite or solution.
Following picture shows various cost categories associated with Automation. The project
manager needs to factor all these into overall business case associated with the
automation and make sure that stakeholders understand ROI model and set realistic
expectations with respect to benefits of automation.
Bonus Tip - Big Secretes about Automation
1. It does same thing again and again and again with same sprit, energy and speed (of
course limited to the capabilities of Computer, network and other platform
components). Is it Good or Bad?
a. Good – for that part of Testing that is Repetitive (highly) (Ask yourself what
part of your Testing is that way? 5% or 10% or 20%)? You can reap benefits
only to that extent.
b. Good for Accuracy – what part of testing requires an accurate yet VERY
CLEARLY defined criteria that can be effectively translated into computer
instruction?
c. Good For speed and luxury of executing in ODD/OFF hours
d. Bad – it can not find bugs for you.
Automation is just a TOOL. It'll get you some places, but not all. You can use Mercedes
to haul dirt and use an excavator or a Road roller to go office – but are they good use of
them? Automation is a HOW. Arguably a really, really good one, but it is not an objective
in and of itself.
Conclusion
Managing Test Automation project, for a project manager, presents a unique set of
challenges and hence opportunities. Understanding the project environment, tools,
people and infrastructure issues will key to successful management of automation
projects. And then there are business and economic aspects of expectations from
Automation. With the legacy of many failed automation projects and challenges
observed in them, a project manager needs to be aware overall dynamics of project
environment and be sensitive to the various dependencies in Automation ecosystem.
The PM needs ideas, tools, references and supporting structure for managing such
complex system. This paper presents some of the tools and ideas in that direction.
References
1. Bach, James (1995, October) “Test Automation Snake Oil,” Windows Tech Journal.
Web link
2. Pettichord, Bret (2001, January) “Seven Steps to Test automation Success” web
link
3. Kaner, Cem (1998) “Avoiding Shelf ware: A Managers’ View of Automated GUI
Testing” Web link
4. Hendrickson, Elisabeth (1998, October) “The differences between Automation
Failure and Success” - Web link
5. Kulkarni, Shrini (2006,Feb) “10 classic Reasons why Test automation projects
fail”
6. Merick, Brian “When should a test be automated” Web link
7. Bach, James (2006, July) “Manual Tests Can not be automated” – Blog post
http://www.satisfice.com/blog/archives/58#comments
8. Pettichord, Bret. 1996. “Success with Test Automation.” Presented at Quality
Week (May). http://www.io.com/~wazmo/succpap.htm
9. Dustin, Elfriede. 1999. “Lessons in Test Automation.” Software Testing and
Quality Engineering (September): 16-22.
http://www.stickyminds.com/sitewide.asp?ObjectId=1802&ObjectType=ART&Fu
nction=edetail
Appendix A 10 Classic Reasons why Test automation
projects fail
Shrinivas Kulkarni (a.k.a Shrini) is Test evangelist, speaker and a passionate tester.
Shrini is currently working as Principal Consultant - Testing at iGATE Global Solutions,
Bangalore for their Independent Verification and Validation (IV&V) division. In an IT
career spread over 10+ years, Shrini has worked in companies like Microsoft Hyderabad,
Aditi Technologies Bangalore, i2 technologies Bangalore. He consulted, architected and
delivered many software Testing and automation projects in various business domains
like Banking, Finance, Legal. Shrini worked in many roles covering entire spectrum of IT
–like Software developer, Project lead, Configuration Manager, SQA lead, Test Lead, Test
Manager.
As a certified Java programmer (SCJP2) and a certified Software Test Engineer (CSTE –
QAI), Shrini holds a blend of software development and testing. He has an M Tech in
Mechanical Engg from IIT Chennai, India. Shrini has been a regular speaker in Software
testing conferences in India and aboard.
Shrini’s interests in software testing include – Test automation, Test process maturity,
Security Testing, Test management, Test Estimation etc. Shrini can be reached at
[email protected] and read about Shrini’s ideas and thoughts on testing and
automation at http://shrinik.blogspot.com