1 Introduction 1. 1 Introduction



Similar documents
SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

QUICK AND EFFICIENT MOBILE TESTING STRATEGY

The Internet of Things: Opportunities & Challenges

Smart buildings in smart grids KNX City. Rafael Marculescu May 2013

Configuration example: Scene function in the actuator channel in the ETS. 1 Introduction

Testing Services. Training. TestBench. Consulting. Software-Quality Assurance and Testing

Selection Criteria for ZigBee Development Kits

Summer projects for Dept. of IT students in the summer 2015

EDK 350 (868 MHz) EDK 350U (902 MHz) EnOcean Developer Kit

ZODIANET API (ZAPI2)

Building Software in an Agile Manner

Smart Integration of Wireless Temperature Monitoring System with Building Automation System

The ABB i-bus KNX Room Master Concept Your first step into the KNX world

The traditional project management uses conventional methods in software project management process.

White paper The future role of ethernet and the trend to decentralised control solutions

Service & Support. Higher-level safe switch-off of the power supply of functionally nonsafe standard modules? Wiring Examples.

DataSocket Simplifies Live Data Transfer for LabVIEW

SERVICE DESIGN User stories

a new generation software test automation framework - CIVIM

WS_FTP Pro for Windows 95/98/NT

Alarm Communications. Implementation Guide

Climate Ready Shade Operating Systems for residential applications.

SIX KNOWLEDGE AREAS OF BUSINESS ANALYSIS

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

Managing unknown IoT entities by uncovering and aligning their semantics

Waterfall vs. Agile Methodology

TIPS TO HELP YOU NAVIGATE the COMPETITIVE VoIP LANDSCAPE

Use service virtualization to remove testing bottlenecks

Open Access Research and Design for Mobile Terminal-Based on Smart Home System

DEGREE PROGRAMME IN INFORMATION TECHNOLOGY

REVIEW PAPER ON PERFORMANCE OF RESTFUL WEB SERVICES

Search Engine Optimization: What You Really Need to Know

Social Innovation through Utilization of Big Data

Preface Agile Testing Review

NEW GENERATION PROGRAMMABLE AUTOMATION CONTROLLER

Intelligent energy saving. Wireless control. Wired for sound

The Dating Guide to SEO

Testing Overview [Document subtitle]

How to Select a Receipt Printer for Mobile POS

Introduction to Dreamweaver

How to trade with Parabolic SAR Indicator This is what I call a gem

Automated tests on websites using Selenium-IDE.

Online Computer Science Degree Programs. Bachelor s and Associate s Degree Programs for Computer Science

Understanding the IEC Programming Languages

Top 10 Skills and Knowledge Set Every User Experience (UX) Professional Needs

Development (60 ЕCTS)

Shutter Actuator Standard, 4-fold, 230 VAC, MDRC RA/S , GH Q R0111. ABB i-bus EIB

AGILE SOFTWARE TESTING

3 SOFTWARE AND PROGRAMMING LANGUAGES

Linear Motion and Assembly Technologies Pneumatics Service. Understanding the IEC Programming Languages

Using Microsoft PowerPoint Software on a SMART Board Interactive Whiteboard

Quick Start Guide For Vera Small Business Solution

Testing Lifecycle: Don t be a fool, use a proper tool.

Smart Thermostat page 1

VoIP Conferencing Best Practices. Ultimate Guide for Hosting VoIP Conferences. A detailed guide on best practices for VoIP conferences:

Request for Proposal (RFP) Toolkit

AT&T Digital Life. Home Security and Automation Service. Overview. Service Innovation EXECUTIVE SUMMARY

How we design & build websites. Menu 2 Menu 3 Menu 4 Menu 5. Home Menu 1. Item 1 Item 2 Item 3 Item 4. bob. design & marketing

Integration of FlexRay-based control units in existing test benches

Instructional Design Philosophy

MH200N. TiMH200N. Software manual 05/10-01 PC

Home Monitoring and Control service provided by Verizon Online LLC

Service Virtualization

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

Bosch Packaging Academy Essential Training

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

agenda AGILE AT SCALE

Good Agile Testing Practices and Traits How does Agile Testing work?

RACKS CLASSIC G4 SPEC. DATA SHEET page 1/5. Description. Features

Lifecycle Service Tool. Operator's manual

Why A/ B Testing is Critical to Campaign Success

[1] [2]

Cisco Smart Business Communications System: A New Way for Small Business to Communicate

INFORMATION MANAGEMENT AND WHY IT MATTERS. CIO Research Report 2014

Connected. 25 Ways to Create a Connected Culture The How-To-Guide for Video Conferencing

27 Ways To Get More Retweets On Twitter. By Marc Guberti

Looking at the SANS 20 Critical Security Controls

A Daimler company. Lower consumption greater transparency for your bus fleet.

Lower consumption greater transparency for your bus fleet.

Top Five Ways to Ensure that Your CoE is an Ongoing Success. White Paper

Lab 2.1 Tracking Down the Bugs

Agile Development. Redefining Management in Project Management. Neil Stolovitsky

PMI Agile Certified Practitioner (PMI ACP) Boot Camp Course AG05; 4 Days, Instructor-led

Transcription:

1 Introduction 1 1 Introduction Software is everywhere. Virtually every complex product manufactured today is controlled by software, and many commercial services are based on software systems. The quality of the software used is therefore a crucial factor when it comes to remaining competitive. The faster a company can integrate new software in its products or bring software products to market, the greater the opportunity to beat the competition. Agile software development methods are designed to reduce time to market (TTM) and improve software quality while increasing the relevance of products to customer needs. It is no surprise that the use of agile methodology is on the increase in large international projects as well as in product development at all manner of large corporations. In most cases, this means switching from the tried and trusted V model to agile testing using Scrum methodology. However, switching to agile and learning to use it effectively and productively is not always easy, especially when multiple teams are involved. Every team member, project manager and all members of line management have to make significant changes to the way they work. Particularly, the effectiveness of software testing and quality assurance (QA) are crucial to the success of introducing and using agile methodology in a team, a department or an entire company, and will determine whether its potential advantages can be put into practice. Most literature on the subject of agile methodology (including many of the works referenced in the bibliography at the end of this book) is written from the viewpoint of software developers and programmers, and tends to place its main emphasis on programming techniques and agile project management testing is usually only mentioned in the guise of unit testing and its associated tools. In other words, it concentrates on testing from the developer s point of view. However, unit tests alone are not

2 1 Introduction sufficient and broader-based testing is crucial to the success of agile development processes. The aim of this book is to close this gap and describe the agile development process from the viewpoint of testing and QA. It shows how agile testing works and details where traditional testing techniques are still necessary within the agile environment and how to embed these in the agile approach. 1.1 Target Audience Understanding how testing in agile projects works On one hand, this book is aimed at beginners who are just starting to work with agile methodology, who are due to work in agile projects or who are planning to introduce (or have already introduced) Scrum into a project or team. We provide tips and advice on how product development managers, project managers, test managers, and QA managers can help to realize the full potential of agile methodology. Professional (certified) testers and software quality experts will learn how to work effectively in agile teams and make optimal use of their expertise. You will also learn how to adapt your working style to fit into the agile environment. Augmenting your knowledge of (automated) testing and agile quality assurance techniques On the other hand, we are also aiming at readers who already have experience working in agile teams and wish to expand their knowledge of testing and QA techniques to increase productivity and product quality. Product Owners, Scrum Masters, QA operatives, and members of management teams will learn how systematic, highly automated testing works and about the importance of providing continual, reliable and comprehensive feedback on the quality of the software being developed. Programmers, testers, and other agile team members will learn how to apply highly automated testing methods to unit, integration and system tests. The text includes a wealth of practical examples and practice questions, making it well suited as a textbook or for self-teaching.

1.2 Book Contents 3 1.2 Book Contents Chapter 2 provides a brief overview of the currently popular Scrum and Kanban methodologies and an overview of the most important agile management methods for managers looking to implement agile methods in their departments. These methods are compared with traditional methods to give you an idea of the changes that introducing agile methods involves. Readers who are already familiar with Scrum and Kanban methodology can skip this chapter. Chapter 3 details the lightweight planning and control tools that Scrum uses in place of traditional project planning tools. Remember, working in an agile fashion doesn t mean working aimlessly! Chapter 3, too, is aimed primarily at readers who are making the switch to agile development. Nevertheless, the explanations and tips regarding the importance of planning tools for constructive quality assurance and error prevention will be useful to experienced readers too. Chapter 4 covers unit testing and test first programming techniques. Topics include what unit tests can be expected to achieve and how they can be automated. This chapter covers the basics of unit testing techniques and tools and will help system testers, test specialists, and project team members with little or no unit testing experience to work more closely and effectively with programmers and unit testers. It also includes a wealth of useful tips that will help experienced programmers and testers to improve their testing techniques. We also explain the test first test-driven approach to programming and its importance within agile projects. Chapter 5 covers integration testing and the concept of continuous integration testing. Integration testing covers test cases that even the most diligent programmers miss when using unit tests. This chapter covers all the basics of software integration and integration testing, and introduces continuous integration techniques, explaining how to use them within a project. Chapter 6 discusses system testing and the concept of nonstop testing. Based on system testing foundations, this chapter explains how to use agile techniques to perform manual tests. It also explains how to automate system tests and embed them in the continuous integration process. This chapter is aimed not only at system testers and other testing specialists, but also at programmers who wish to better understand agile testing techniques that lie outside their usual development-driven remit. Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6

4 1 Introduction Chapter 7 Chapter 8 Chapter Overview Chapter 7 compares traditional and agile ideas of quality assurance and explains the constructive and preventative QA practices that are built in to Scrum. This chapter includes tips on how to perform agile QA and explains how all QA specialists can use their know-how within agile projects and contribute to the success of agile projects. Chapter 8 presents six industrial, e-commerce, and software development case studies. These reflect the experiences gained and lessons learned by the interviewees during the introduction and application of agile techniques. Chapters 2, 3, 7, and 8 discuss process and management topics and are aimed at readers who are more interested in the management aspect of the subject. Chapters 4, 5, and 6 discuss (automated) agile testing at various levels and are oriented toward more technically minded readers. Because agile testing is not the same as unit, we also explain in detail the aims of and differences between unit, integration, and system testing. Figure 1-1 provides a visual overview of the book s structure: Fig. 1 1 The structure of the book Case study, checks and exercises According to most popular literature on the subject, many agile concepts, techniques and practices are simple to implement. Similarly, the ideas, advice and tips covered in the following chapters may at first appear simple, but the sticking points often only become evident in the course of implementation. To help you understand and experience the challenges involved, the text includes:

1.3 Case Study 5 A fictional case study that illustrates the methodology and techniques being discussed. Checks and exercises to help you recap the content discussed in each chapter and scrutinize your own situation and behavior within your project. 1.3 Case Study The fictional case study the book refers to uses the following scenario. The company ehome Tools is a developer of home automation systems based on the following elements: Actuators: Lamps and other electrical devices are connected by means of electronic switches. Every actuator is connected by wire or wirelessly to a comms bus that can be used to control it remotely. Sensors: Thermal, wind and humidity detectors and simple contact sensors (for example, to indicate an open window) can also be connected to the bus. Bus: Switching instructions and status signals for the actuators and sensors are sent via the bus to the central controller in the form of telegrams. Controller: The central controller sends switching signals to the actuators (e.g., switch kitchen light on ) and receives status signals from the sensors (e.g., kitchen temperature 20 degrees ) and actuators (e.g., kitchen light is on ). The controller is either event-driven (i.e., reacts to incoming signals) or works on the basis of timed commands (e.g., 8pm close kitchen blind ). User interface: The controller has a user interface that visualizes the current status of all elements of the ehome and enables its inhabitants to send instructions (e.g., switch kitchen light off ) via mouse click to the house systems. Case Study: ehome Controller ehome Tools has many competitors and, in order to remain competitive, the company decides to develop new controller software. An increasing number of customers is asking for software that can be controlled via

6 1 Introduction smartphones and other mobile devices, so it is clear from the start that this project has to be completed quickly if it is to be successful. It is essential that the new system is extensible and open for third-party devices. If the new system is able to control devices from other manufacturers, management is convinced that the company can win over customers who wish to extend their existing systems. To fulfill this goal, the new system has to support as wide a range of existing third-party hardware as possible and must be capable of adapting to support new devices as soon as they appear on the market. In view of these challenges, the decision is taken to develop the new system using agile methodology and to release an updated version of the controller software (with support for new devices and protocols) every month. 1.4 Website The code samples included in the text are available for download at the book s website [URL: SWT-knowledge]. Feel free to use them to construct your own test cases. The practice questions and exercises are also available online and can be commented on. We look forward to discussing your comments and suggestions. In spite of all our efforts and those of the publisher, it is still possible that some text errors remain. Any necessary corrections will be published online.