Build It fast & Build It Right

Similar documents
Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

IBM Rational Systems Developer, Version 7.0

Mike Vincent. mvasoftware.net

To arrange for a SESUG speaker, contact Marje Fecht at

Rational Unified Process (RUP) in e-business Development

Successful Service Virtualization

IBM Rational Software Quality Solutions

Service Virtualization

How do I simplify, accelerate and scale application testing in my Microsoft Azure development environments?

THE PURPOSE OF TESTING

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

DEVELOPING APPLICATIONS USING MICROSERVICES AND MICROSOFT AZURE SERVICE FABRIC 1

Analyze, Design, and Develop Applications

Chapter 4 Document Driven Approach for Agile Methodology

Agile Manifesto Principles

On various testing topics: Integration, large systems, shifting to left, current test ideas, DevOps

Service Virtualization

NCOVER. ROI Analysis for. Using NCover. NCover P.O. Box 9298 Greenville, SC T F

Information Architecture: Leveraging Information in an SOA Environment. David McCarty IBM Software IT Architect. IBM SOA Architect Summit

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens

Contractual Aspects of Testing Some Basic Guidelines CONTENTS

DevOps. Changing the way you deliver software

SOLUTION BRIEF CA AGILE REQUIREMENTS DESIGNER FOR CA AGILE CENTRAL. CA Agile Requirements Designer for CA Agile Central

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Tassc:Estimator technical briefing

COPYRIGHTED MATERIAL WHAT S IN THIS CHAPTER?

Chapter 1 Systems Development in an Organization Context

Azure Marketplace. Service Definition 2018

Orchestrated. Development Management. How to Strike the Right Balance between Speed and Control

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

(c) Addison Wesley Chapter 1. ! Software production is an art. ! Two groups. ! Main causes of software failures

SAP AUTOMATION WITHOUT THE COMPLEXITY

Our DevOps Approach 35%

Judy McKay Senior Test Consultant Planit Software Testing ASTQB President

Thoughts about modelbased test management. Matti Vuori

How ready are you for operational SOA?

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Quality by Design: Enabling Cost-Effective Comprehensive Component Testing

Validation and verification of specification models

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Succeed with Agile at Scale

Application Modernization

Testing and Inspections (3C05/D22) Unit 11: Testing and Inspection. What is Testing?

Lecture 5: Requirements Engineering II. COSI 120b, Principles of Software Engineering

Case Study: Global Banking Company Transforms Testing Approach to Overcome Challenges of Shortening Development Cycles

Systems Engineers provide a Key Contribution and Role in System Integration and Test

Code Review: OutSystems Platform

The Challenge: Balancing Change and Control of Continuous Delivery at Scale

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Objectif Lune. From Surviving to Thriving. How digital tools can assist print service providers

Inspire. Solution Overview. for solutions development

SAP s Quality & Testing Platform Complete Solution of Products and Professional Services

Objectif Lune. for Print Service Providers. How digital tools can assist print service providers

Are we measuring the right thing?

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Keeping Software Designs In-line with Requirements

Building a Foundation for Effective Service Delivery and Process Automation

Introduction. Your Software: Faster. Stronger. Better.

SharePoint Business Value

Modern Systems Analysis and Design Seventh Edition

Collaborative ALM Interoperability

Measuring DevOps Success

IBM BPM on zenterprise

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Effective Test Automation of SAP Implementations

Application Lifecycle Management for SAP Powered by IBM Rational

BACKGROUND OF TESTING 4. The fundamental principles of the testing are as follows.

Digitalizing the customer journey

Application Modernization

The final barrier to cloud adoption

Digital Industries Apprenticeship: Occupational Brief. Software Tester. March 2016

Address system-on-chip development challenges with enterprise verification management.

Exam Name: Microsoft Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

Legacy System Modernization Using Open Source Tools and Agile. Adam D Angelo

1. Introduction. 1.1 Purpose. 1.2 Scope

IBM Software Services for Lotus To support your business objectives. Maximize your portal solution through a rapid, low-risk deployment.

A Review Paper on Software Testing

Powering the Edge to the Enterprise

Guide to Modernize Your Enterprise Data Warehouse How to Migrate to a Hadoop-based Big Data Lake

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Do you have Time Freedom? The Goal is Freedom. What are your Constraints? Age of Massive Distraction! Cotton Principles of Growth.

Testing. CxOne Standard

Getting Started. Chapter 1

WHITEPAPER WHEN CA GEN ISN T COOL ANYMORE THE BUSINESS CASE, CHALLENGES AND SOLUTION FOR MOVING CA GEN APPLICATIONS TO A MODERN PLATFORM

Common data & processes for a global business

Fundamentals Test Process

"Charting the Course... Application Lifecycle Management Using Visual Studio 2010 (Agile) Course Summary

T Software Testing and Quality Assurance Test Planning

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Application Lifecycle Management (ALM) Octane

Micro Service Architecture

Balanced Perspective. Managing software development from a business and technical point of view. IBM Software Group

What Is the Rational Unified Process?

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

Implementing Enterprise Architecture with MDA

ABOUT THE AUTHOR Preface Introduction to DevOps... 6

Software Engineering. M Umair.

ABB s Net Promoter Score: Why we re not satisfied with customer satisfaction...

Transcription:

Build It fast & Build It Right John Watkins International Conference On Software Testing, Analysis & Review November 19-23 Stockholm, Sweden P r e s e n t a t i o n T6 Thursday 22nd November, 2001

Thursday 22 November 2001 T6 Build it Fast & Build it Right John Watkins John holds Masters Degrees in both Computer Science and Object-Orientation, has over 20 years experience in the field of software development, with some 15 years in the field of software testing, and is a Fellow of the British Computer Society. During his career as a testing professional, John has been involved at all levels and phases of testing, and has providing high level testing consultancy, training and mentoring to numerous Blue Chip Companies. John currently works for Rational Software Limited where he is the UK Testing Product Manager. John is a regular presenter at international testing conferences and events, having recently addressed the EuroSTAR 2000 conference in Copenhagen, as well providing the keynote address at the Ohjelmistotestaus 2001 conference in Helsinki. Most recently, John has published a book on Testing Process with Cambridge University Press ("Testing IT : an Off-the-shelf Software Testing Process" see www.cup.org/titles/052179546x.html).

Build it Fast and Build it Right John Watkins Product Manager - Testing, Rational UK jwatkins@rational.com

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

The New Economy: The World Runs on Software

Software is Business Speed Time-tomarket is critical Technology and standards change rapidly e-business e-infrastructure e-devices Quality Software drives customer experience High cost of failure

The software Paradox Faster Time to Market Higher Quality

Feeling the Squeeze? Today s Risks in Software Development Dissatisfied customers Weakened competitive advantage Long integration cycles Squandered creativity of developers Diminished team motivation No money ( ) No sleep (zzzz) No fun (!!!!)

Projects are Failing Gartner Group stated that: 76% of projects fail to come in on time, to budget or with acceptable quality This IS NOT ACCEPTABLE Testing is a key discipline to address these issues

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

It s a Cliché! Everyone agrees testing should occur early Everyone agrees more testing should be conducted It is well recognised that catching defects early saves time, effort and money It is well recognised that catching defects early improves quality and manages risk

It s a Cliché! Everyone agrees testing should occur early Everyone agrees more testing should be conducted It is well recognised that catching defects early saves time, effort and money It is well recognised that catching defects early improves quality and manages risk But how many developers/organisations do it?

It s a Cliché! Everyone agrees testing should occur early Everyone agrees more testing should be conducted It is well recognised that catching defects early saves time, effort and money It is well recognised that catching defects early improves quality and manages risk But how many developers/organisations do it? Not Many!

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Quality by Design: Earlier Detection & Repair Bus. Modeling Anal. & Requirements Design Goal: find problems early in lifecycle Implementation Most problems currently found here Testing Deployment C O S T Catch quality issues as early as possible Increase project and quality predictability Improve speed, quality and customer satisfaction Decrease total project costs

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Difficulties of Early Testing A system built of components <<Form>> dlg_order <<Class Module>> Order <<Class Module>> Customer <<Module>> Db <<Module>> Persistence <<Form>> dlg_orderrow <<Class Module>> Customers <<Class Module>> OrderRow <<Class Module>> Articles <<Module>> Article

Difficulties of Early Testing whose individual reliability is acceptable.80 <<Class Module>> Order <<Module>> Db <<Form>> dlg_order.90 <<Class Module>> Customer.95 <<Module>> Persistence.90 <<Form>> dlg_orderrow.90.95 1.0 <<Class Module>> Customers <<Class Module>> OrderRow <<Class Module>> Articles.75 <<Module>> Article.80

Difficulties of Early Testing can combine into likely failure! <<Form>> dlg_order.90 <<Form>> dlg_orderrow.90.80.90.95 1.0 <<Class Module>> Order <<Class Module>> Customer <<Class Module>> Customers <<Class Module>> OrderRow.80 x.90 x.95 x 1.0 x.90 x.90 x.95 x <<Module>>.75. Db x.80 = 0.32.95 <<Class Module>> Articles.75 <<Module>> Persistence <<Module>> Article.80

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

How do you test a Component? Two stage strategy Test individual operations of a single component Component Server Invoke Operation Return Result Component

How do you test a Component Two stage strategy Test individual operations of a single component Test sequences of operations across multiple components Component Server Invoke Operation Return Result Component

The Need for Test Harness Development No GUI suitable for testing Dependent components not yet ready Manual creation of drivers and stubs is painful Takes time away from development Impossible to test all use cases of all operations of all components Increases the cost of quality Increases the cost of development Test Harness should be tested Component C Component A Component B Component D

The Need for Realistic Test Data Test Data must be representative and realistic Typically Test Data must be hand crafted Rigorous design must be employed: Boundary analysis Partition analysis State Transition analysis Test Data must itself should be tested

The Need for Correct Test Scenarios Requirements for the Component should be tested Correct behaviour of the Component must be tested Correct interaction with other components must be tested Must include: Correct behaviour Error conditions Boundary behaviour Test Procedures should be reviewed for correctness

Component Testing the Bottom Line Test Harness development & test, Test Data development & test, Test Scenario/Procedure development & test - All take time, effort & money, and Developers are already working under significant time constraints and pressure to deliver Its no wonder Component Test is so often performed poorly, or even skipped altogether

Component Testing the Bottom Line Test Harness development & test, Test Data development & test, Test Scenario/Procedure development & test - All take time, effort & money, and Developers are already working under significant time constraints and pressure to deliver Its no wonder Component Test is so often performed poorly, or even skipped altogether After all, finding defects that s what the Testers are paid to do at System Test, isn t it?

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Component Testing Philosophy of Test Here s a thought A Good Tester Tries to Demonstrate software doesn t work But, more often than not A Developer is much more interested in demonstrating their code does work This basic difference in philosophy of test is KEY Education will be a major issue here

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Design for Test the Basic Principles Developers must collaborate with testers to improve quality Software Development is a Team Sport Make as much use of existing information as possible Analysis and Design information can be exploited to: Automate Test Harness Creation Automate Test Scenario Generation Automate Test Data Creation Component Testing must be made as simple as possible for Developers to perform, and perform well

Design validation Quality has to be built from the beginning Quality can be measured at design Testability is a key facet of quality

Generate Tests Automatically From Visual Model Model Developer Generate Skeleton Code code code code code code code code code code code code code code code code code code code code code code code code Provides Business Logic Consider how Developers use Modeling Case Tools today code code code code code code code code code code code code code code code code code code code code code Model Provides Code Framework Developer Provides Code Logic

Generate Tests Automatically From Visual Model Model Developer Generate Test Skeleton Code code code code code code code code code code code code code code code code code code code code code code code code Provide Test Data Consider how Developers use Modeling Case Tools today Now go one step beyond code code code code code code code code code code code code code code code code code code code code code Model Provides Test Framework Developer Provides Test Data

Exploiting Design Information <<Class>> <<Module>> <<Form>> <<Form>> <<Class>> <<Class>> <<Class>> <<Module>> Converts designs into Component tests <<Class>> <<Module>> Automated Component testing providing comprehensive coverage

Architect for Performance Model Multi-User Stress Test on Model Approved Architecture to Production

Exploiting Design in Performance Testing Design for Test approach can also be used generate Performance Tests from UML (Unified Modelling Language) Take Class diagram & Sequence diagram information Generate Performance Testing Scenarios Execute them against the Server Application Identify Architecture Issues and Scalability Problems Without Writing a single line of code! Very effective means of managing Project Risk

Sample Application Architecture

Test your design before you implement Design for Test converts system design into system test Test your design before you code

Agenda Introduction Contemporary Software Challenges Challenges of Early Testing Late Detection of Defects Component v System Testing How do you test a Component? People Issues Introducing Design for Test Wrap Up

Wrap Up Testing MUST occur earlier and more often Catching defects early saves time, effort and cost, improves quality, and helps to manage project risk Challenging project timescales and human nature mean that Component Testing is often poorly done or skipped Valuable design information needs to be utilised to simplify Component Testing The Design for Test approach allows design information to be used to simplify testing, making it more effective and more efficient

Wrap Up Testing MUST occur earlier and more often Catching defects early saves time, effort and cost, improves quality, and helps to manage project risk Challenging project timescales and human nature mean that Component Testing is often poorly done or skipped Valuable design information needs to be leveraged to simplify Component Testing The Design for Test approach allows design information to be used to simplify testing, making it more effective and more efficient Bottom Line Lets get Developers & Testers working together to deliver quality software

White Papers A White Paper discussing the Design for Test Initiative and A Technical Paper describing Rational QualityArchitect Are available from: www.rational.com/qacsuk

Build it Fast and Build it Right John Watkins Product Manager - Testing, Rational UK jwatkins@rational.com