Improving Software Testability Adam Knight – Test Team Leader, Clearpace Ltd. April 29 th 2009.

Slides:



Advertisements
Similar presentations
Slide 1 Incident Management. Slide 2 Goal - Primary Objective To restore normal service operation as quickly as possible with minimum disruption to the.
Advertisements

Behavior Driven Test Development
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Test process essentials Riitta Viitamäki,
Slide 1 Shall Lists. Slide 2 Shall List Statement Categories  Functional Requirements  Non-Functional Requirements.
An open source QA stack testing tools for agile teams Presented by Aaron Evans
Converting S-Plus Applications into R Andy Nicholls
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
ICASAS305A Provide Advice to Clients
Improving Testability Dave Catlett Test Architect, Microsoft
Enterprise Integration Architecture IPMA Professional Development Seminar June 29, 2006 Scott Came Director, Enterprise Architecture Program Washington.
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Package design and the Iterative process model. What is a package? Classes are not sufficient to group code –Some classes collaborate, implying dependencies.
Maintaining and Updating Windows Server 2008
“GENERIC SCRIPT” Everything can be automated, even automation process itself. “GENERIC SCRIPT” Everything can be automated, even automation process itself.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
© 2006 Jupitermedia Corporation Webcast TitleSuccessful Rollout Planning 1 January 19, :00pm EST, 11:00am PST George Spafford, President Spafford.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Introduction to Systems Analysis and Design Trisha Cummings.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
Information Systems Security Computer System Life Cycle Security.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Information Services, Griffith University Problem Management Implementation Service Desk Project Phase 2 Project
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
Higher Computing Software Development. Software Development Process There are 7 main stages involved in developing a new software program: Analysis Design.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Service Transition & Planning Service Validation & Testing
Relationships July 9, Producers and Consumers SERI - Relationships Session 1.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Basel, September 2, 2008 Work Stream Templates. 2 CDISC User Group Work Streams Goals Sharing of expertise and knowledge –Sharing of useful tools (e.g.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
State of Georgia Release Management Training
Testing And Software Quality Assurance - Meenu Kohli Eagle Eye Testing Services.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.
Maintaining and Updating Windows Server 2008 Lesson 8.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Slide title :40-47pt Slide subtitle :26-30pt Color::white Corporate Font : FrutigerNext LT Medium Font to be used by customers and partners : Arial HUAWEI.
Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Regression Testing with its types
(Professional Business Analyst Training organisation)
Software Testing.
SEVERITY & PRIORITY RELATIONSHIP
Integrate Agile Testing into the Process
Chapter 18 Maintaining Information Systems
Verification and Testing
Software modifications and reliability
IT Service Operation - purpose, function and processes
Quality Strategies In AGILE
Advantages OF BDD Testing
Software testing.
Software testing.
Software Verification and Validation
Software Verification and Validation
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Agile Development – a new way of software development?
Software Verification and Validation
Work Stream Templates Basel, September 2, 2008.
SDLC (Software Development Life Cycle) Role Play
Presentation transcript:

Improving Software Testability Adam Knight – Test Team Leader, Clearpace Ltd. April 29 th 2009

Slide 2 © Clearpace Software Ltd, 2009 What is testability? Enabling the execution of repeatable tests to exercise as extensively as possible software functionality. Allowing the collection of meaningful results. Enabling efficient identification and diagnosis of faults. Enabling the collection of meaningful information on the system behaviour to model behaviour.

Slide 3 © Clearpace Software Ltd, 2009 Why improve software testability? Improving testability can increase:- Confidence. Velocity. Supportability. Functionality. How may we achieve this ? A major consideration is software design for testability

Slide 4 © Clearpace Software Ltd, 2009 Designing for Testability - Simplicity Simplicity – creating the simplest solution possible to each problem Develop the simplest functionality to meet each requirement Limit the functionality to that required to meet the requirement and no more Ensure consistent code design and reuse code where possible

Slide 5 © Clearpace Software Ltd, 2009 Designing for Testability - Observability Observability - The ability to report system activity and state in a known format to test processes System state can be queried Diagnostics and logs can be obtained in a consistent form Error conditions are handled with meaningful messages exposed Outputs are consistent

Slide 6 © Clearpace Software Ltd, 2009 Designing for Testability - Control Control - The ability to harness and control the application functionality System can be controlled using repeatable automated processes All factors/variables affecting the state of the system are visible and controllable System state can be easily restored to a known point System can be easily installed, upgraded and removed in full via an automated process

Slide 7 © Clearpace Software Ltd, 2009 Designing for Testability - Knowledge Knowledge – having a full knowledge of the behaviour that we are expecting Design the requirements/stories on the basis of what the user needs to achieve Tester has domain expertise Access to complementary or related products Tester has access to the relevant resources Customer/product owner Documentation

Slide 8 © Clearpace Software Ltd, 2009 Designing for Testability - Stability Stability - ensuring the behaviour of the application remains as reliable and consistent as possible Only changes that are specifically required to address the documented work items are implemented Minimise bugs introduced to allow quick efficient testing

Slide 9 © Clearpace Software Ltd, 2009 Discussion Are there any additional aspects of testability not discussed that we should consider? Identify what the main technical obstacles are to testability in our products What can we do to improve testability in our products?

Slide 10 © Clearpace Software Ltd, 2009 References Heuristics of Software Testability, James Bach, Satisfice Inc. User Stories applied for Agile Software Testing – M. Cohn Improving Testability – Dave Catlett, Microsoft (presentation) Design for Testability – Bret Pettichord

Slide 11 © Clearpace Software Ltd, 2009