Don t forget the testers



Similar documents
Balancing the Hybrid Development Process. The role of the Business Analyst

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

AGILE vs. WATERFALL METHODOLOGIES

Testing in Scrum Projects

Benefits of Test Automation for Agile Testing

Taking the first step to agile digital services

Quality Assurance in an Agile Environment

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

LECTURE 1. SYSTEMS DEVELOPMENT

Agile Projects 7. Agile Project Management 21

Agile Methodologies and Its Processes

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Test Cases Design for Software Database Provisioning Development

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Testing in Agile methodologies easier or more difficult?

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Software Development Methodologies

Building Software in an Agile Manner

Clinical Risk Management: Agile Development Implementation Guidance

Use service virtualization to remove testing bottlenecks

Nova Software Quality Assurance Process

Agile QA s Revolutionary Impact on Project Management

The style is: a statement or question followed by four options. In each case only one option is correct.

AGILE BUSINESS SERVICES. Guiding and supporting your business. at any stage of your agile journey

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

Performance Testing and Functional Automation Specialist Cloud Services

Testing in an Agile Environment

Importance of Testing in Software Development Life Cycle

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

When to use Agile/Scrum

Axe in the Agile World

Understanding Agile Project Management

CSE 435 Software Engineering. Sept 16, 2015

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile and lean methods for managing application development process

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Development Testing for Agile Environments

Secure Code Development

Software Testing, Mythology & Methodologies

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

LEAN AGILE POCKET GUIDE

Agile Software Engineering Practice to Improve Project Success

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Contents. -Testing as a Services - TaaS 4. -Staffing Strategies 4. -Testing as a Managed Services - TaaMS 5. -Services 6.

Software Engineering

Project Management in Software: Origin of Agile

Agile for Project and Programme Managers

5/19/ Professor Lili Saghafi

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

4180: Defined Processes, Evidence, and Rescuing Corporate Knowledge: Achieving Standards Compliance in Agile and Lean Environments

How To Understand The Limitations Of An Agile Software Development

The Agile Manifesto is based on 12 principles:

Waterfall vs. Agile Project Management

The Structure of a Software Development Team

Lean vs. Agile similarities and differences Created by Stephen Barkar -

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Optimizing Your Software Process

The Blending of Traditional and Agile Project Management

Scale agile throughout the enterprise A PwC point of view

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Controlling Change on Agile Software Development Projects

Agile Development for Application Security Managers

Netstar Strategic Solutions Practice Development Methodology

Key Benefits of Microsoft Visual Studio Team System

Adapting Agile Software Development to Regulated Industry. Paul Buckley Section 706 Section Event June 16, 2015

White Paper On Pilot Method Of ERP Implementation

Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Scrum: A disciplined approach to product quality and project success.

Aligning Correct and Realistic Performance Testing with the Agile Development Process

Governments information technology

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Agile and lean methods for managing application development process

When is Agile the Best Project Management Method? Lana Tylka

Agile Testing Overview

TESTING FRAMEWORKS. Gayatri Ghanakota

A Strategic Approach to Web Application Security The importance of a secure software development lifecycle

Managing TM1 Projects

Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007

Agile QA Process. Anand Bagmar Version 1.

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

The Agile Movement An introduction to agile software development

Basic Testing Concepts and Terminology

Continuous delivery Release software on-demand, not on Red Alert

Top 10 Tips for Successful Software Development Management

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

How To Model Software Development Life Cycle Models

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

Transcription:

TODAY S TOPIC Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The importance of testing in an AGILE development context Or Don t forget the testers 1

PART 1 Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The role of software testing in the software development lifecycle 2

The role of testing in the SDLC The importance of testing Clients do not want a costly and stressful problem with software that doesn't work, isn't ready on time, does not meet specifications, impacts customers adversely, has bugs or is too complicated to use! The best results for a project occur when testing is planned and related activities commenced at the start of a project. Testing is not just finding bugs. It is the systematic assessment of an application s fitness for the purpose it has been designed for. Testing should be conducted throughout the lifecycle for maximum project benefit 3

The role of testing in the SDLC Types of testing Unit Testing The testing of individual software components. Reference: ISTQB Glossary of testing terms Functional/System Testing -Testing based on an analysis of the specification of the functionality of a component or system. User Acceptance Testing -Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. Integration Testing Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems. Performance Testing -The process of testing to determine the performance of a software product. Load Testing -To evaluate the behaviour of a component or system with increasing load, e.g. numbers of parallel users and/or numbers of transactions Last minute frantic testing As usually happens 4

The role of testing in the SDLC ISTQB Testing Principle 3: Early Testing is vital Industry Research (such as Gartner, Sticky minds) has highlighted approximately 50% of defects can be traced to requirements. Stage of the SDLC Requirements Design Coding Testing Production Cost to FixDefects 1x 2x 5x 10x 30x Source: US National Institute of Standards & Technology The earliera defect is identified the cheaperit is to fix! 5

The role of testing in the SDLC Where testing usually occurs 6

Testing must be integrated In the previous slide, testing is represented as a discreet activity late in the development cycle In reality, testing should be integrated to each stage of the lifecycle Static testing of requirements Dynamic testing of code This is equally valid regardless of the development methodology WATERFALL benefits from static testing of detailed requirements prior to issuing to development AGILE benefits from static testing of requirements and Dynamic testing of SPRINT deliverables against business expectations 7

The role of testing in the SDLC Summary Testing is a major part of the SDLC but it has long been recognised that it doesn t always have the appropriate visibility and emphasis in project planning Early involvement of testing expertise leads to fewer defects Requirements can (and should) be tested You can t leave testing until the end of the project and expect the best result Testing needs to be integrated into the process regardless of the development approach 8

WATERFALL v AGILE 9

What is WATERFALL Follows a distinct set of steps through the life cycle of your project. The steps are usually similar to this: Requirements Analysis Design Implementation (or Build) Testing Installation Maintenance 10

Testing in WATERFALL Traditional approach distinct testing phase 11

Testing in WATERFALL Adapting WATERFALL to allow testing at each stage 12

What is WATERFALL Good model for well defined deliverables, or using offsite development resources. But can be difficult when dealing with internal clients with flexible requirements. Pros and cons of the Waterfall method. Pros Detailed documentation. Agreed and signed off requirements. Can be delivered using developers with a lower skill set, or working remotely Reduced number of defects through thorough design planning. Defined start and end point for each phase, allowing progress to be easily measured. Cons Slow start. Fixed requirements difficult to change. No customer visibility of software until the development has been completed. Lack of flexibility making it difficult to change direction. Customers often unclear about their requirements initially. 13

What is AGILE 14

What is AGILE From the AGILE manifesto: Individuals and Interactions in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming. Working software working software will be more useful and welcome than just presenting documents to clients in meetings. Customer collaboration requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. Responding to change agile development is focused on quick responses to change and continuous development. So what does this mean for testing? 15

PART 2 Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au What AGILE means for Testing 16

Question: When and how are requirements statically tested in an agile development environment 17

Individuals and Interactions Approach requires a lesser degree of separation of the test team than other methodologies High level of interaction between testers, BA,developers and customers Regular consultation as opposed to formal review and sign off Focus on manual confirmation testing as opposed to rigidly scripted functional tests Focus is on regular feedback and review 18

Question: What expertise does a test analyst bring to an agile development team 19

Working software over comprehensive documentation Tests are often designed directly from the software Reading unit tests Exploring streams and analysing output Test team are responsible for not only assessing the systems, but selecting the best method for performing the assessment Discussions with other members of the team replace some documentation Test team is not the only ones responsible for testing Developers for unit tests Customer for acceptance tests 20

Question: Do testers play a role in the fast turnaround of issues / problem resolution 21

Customer collaboration over contract negotiation Testers may: Take on the role of the customer when designing and executing acceptance tests Be a customer advocate when the customer is unavailable during decision points Take on the role of a Bad customer to extend acceptable testing to the limit of the systems By collaborating with the customer, and acting as proxy as appropriate, the project benefits by: Defects are discovered and raised regardless of their relationship to fixed requirements Acceptance of the product as a whole is measured throughout the lifecycle, as opposed to at fixed points toward the end of the project 22

Question: How different does a test plan look in an agile development context 23

Value responding to change over the following of a plan Testers need to make good use of unit tests for regression/stability so they can keep pace with testing iteration development This helps give testers some ownership of overall product performance A risk of AGILE some people expect testers to have detailed plan for testing of overall product This is not possible due to the nature of the iterative development It is possible to have detailed plans at iteration level however this is contrary to the principle of working software over comprehensive documentation Any iteration test plans need to consider overall software performance not just current iteration where possible Or detail the need to look at separate test cycle for product delivery (typically after 6 iterations) 24

Question: What does a test analyst do within a SPRINT 25

TESTING WITHIN A SPRINT Testing activities are done in parallel with the design and development work. The testers are involved, both passively and actively, in each step to gain an understanding of the customer s requirements and thus identify what needs to be tested. The planned tests should include, as a bare minimum, the requirements being implemented for that sprint. The two most popular methods for testing within a sprint are: Execute tests upon completion of the designated sprint scope items. That is, schedule time within the sprint to allow test execution to occur. Execute tests as code is completed. That is, tests are executed on the software as scope items are completed. Regression can be included within the test activities for a sprint but this is usually only feasible on a new product that has had less than four previous sprints. A regression test can be scheduled after several sprints to ensure the software continues to function as expected. 26

Question: What can go wrong or cause delays from a test analysts point of view 27

Testing within an iteration In order to confirm a software meets customer needs, and to provide timely feedback to developers on unexpected behaviour, software needs to be in a workable state This objective cannot properly be achieved if software is not available until the end of an iteration. Possible contributors to this include: The iteration scope is too large causing development to be squeezed for time Decisions are not being made as a team and shared ownership is lost resulting in delays when designing the implementation 28

Question: What happens if testing is staggered to occur in a subsequent SPRINT 29

Testing within an iteration A natural temptation is to move testing to the next iteration. This goes against the AGILE methodology because: It creates separation between the test team and the rest of the project Reduces communication Delays feedback on iteration code. If problems are found the developers have already moved on to new functionality Can create a focus on the volume of code written as opposed to quality Can create idle time for both developers and testers if they are not working in parallel 30

PART 3 Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The role of testers in AGILE 31

Role of an AGILE Test Manager The role of the test manager is largely to take responsibility for: Non-Unit Testing tools Test environments Test data Choices such as testing bleeding edge vs. system as a whole become more important due to the shortened timescale of iterations. Reliance on unit test for coverage and an understanding of the impact of new functionality on existing systems is essential. Factors to consider when planning an iteration test cycle are: Finding different problems Improving diagnosis of existing problems Setting criteria so testers know when to move to another area of the system when problems are found. 32

The role of an AGILE tester A tester can expect to: Communicate more with developers and customers Gain a greater understanding of the technologies and code Are no longer the final-say or last defender of quality Share more of the risk Gain a greater sense of ownership The main functions a tester will perform are: Enhance the confirmation test at both a Unit and Acceptance level Identify, diagnose and exploit unexpected system behaviour to ensure the product is fit for purpose 33

PART 4 Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The Key Points 34

Waterfall v AGILE -Summary Accept the chosen approach may often be a Hybrid of methodologies to suit business Need to adapt to client needs as opposed to a purest approach to methodology Both have their pro s and cons The appropriate methodology depends on the client and product Both are valid This presentation focusses on how the role of testing changes for each methodology Both approaches have merit, we do not advocate one over the other Testing should be factored into plan up front, with everyone clear on the approach. Neither approach requires more or less testing, just a different approach at the various stages Testing can be tailored to suit (more documentation, less documentation etc) 35

Key Differences of AGILE testing Difference in specifications - AGILE specifications less formal, and focussed on small parcels of development Focus on communications over documentation Fast turnaround and correction of issues - Importance of testing individual sprints Removal of mgt/control structure (safety net) focus back on individual roles and deliverables - Need for collaboration and shared responsibility Feedback loop - Testers feeding in to development iterations Defect Mgt -Focus on changing software to suit needs instead of meeting predetermined requirements 36

I love it when a Test Plan comes together Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au Questions? Knight Errant 2012. The views contained in this presentation are those of Knight Errant Pty Ltd. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means without the prior written permission of Knight Errant Pty Ltd. 37