Surviving the Top Ten Challenges of Software Testing

Similar documents
Skill Category 7. Quality Control Practices

Systems Analysis for Business Analysts (3 Day)

Introduction to the Testing Maturity Model Enhanced TM (TMMe)

Disciplined Software Testing Practices

BASICS OF SOFTWARE TESTING AND QUALITY ASSURANCE. Yvonne Enselman, CTAL

B.H. Far

T Software Testing and Quality Assurance Test Planning

Building quality into the software from the. Keeping and. the software. software life cycle

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Challenges of Managing a Testing Project: (A White Paper)

SE420 Software Quality Assurance

Measuring and Assessing Software Quality

Requirements Gathering using Object- Oriented Models

ISTQB Sample Question Paper Dump #11

KEEPING IT BETWEEN THE DITCHES: A DASHBOARD TO GUIDE YOUR TESTING

Introduction to Software Engineering

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Software Testing Life Cycle

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Agile Manifesto & XP

Contractual Aspects of Testing Some Basic Guidelines CONTENTS

Surviving the Top Ten Challenges of Software Test Automation

1. Can you explain the PDCA cycle and where testing fits in?

Software Testing(TYIT) Software Testing. Who does Testing?

SOFTWARE STAKEHOLDER MANAGEMENT- It s not all it s coded up to be

Software Quality Engineering Courses Offered by The Westfall Team

ISTQB CTFL BH QuestionsAnswers with Explanation

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

Software Quality Engineering Courses Offered by The Westfall Team

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

Seminar 06 Chapter 5 - Part 1

INTRODUCTION. It is the process used to identify the correctness, completeness and quality of developed computer software.

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

Chapter 26. Quality Management

Abstract. Keywords. 1. Introduction. Rashmi N 1, Suma V 2. Where, i = 1 requirement phase, n = maintenance phase of software development process [9].

Analysis of Software Artifacts

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Led by the Author Attended by a peer group Varying level of formality Knowledge gathering Defect finding

Taking a Deeper Dive Into Dashboards

Analyzing Testing ROI Four Quantifiable Ways Testing Saves Money

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

SOFTWARE QUALITY IN 2005 A SURVEY OF THE STATE OF THE ART SOURCES OF SPR S QUALITY DATA. SPR clients from 1984 through 2005 BASIC DEFINITIONS

Managing the Testing Process E-learning Course Outline

Managing Project Risks

Factors to Consider When Implementing Automated Software Testing

Chapter 6. Software Quality Management & Estimation

CTFL - Version: 3. ISTQB Certified Tester Foundation Level

Software verification and validation. Introduction

Importance of Software Testing with Study of Various Testing Techniques & Automation Tools

AutomatedQA Webinar 1

Duvan Luong, Ph.D. Operational Excellence Networks

Bugs are costly... Kinds of Quality Assurance

Integration and Testing

Test Workflow. Michael Fourman Cs2 Software Engineering

Project Management CTC-ITC 310 Spring 2018 Howard Rosenthal

VC SOFTWARE PROJECT MANAGEMENT PLAN

Defect Detection Efficiency: A Combined approach

Measuring Your ROI On Social Media

QUEST Webinar: Intelligent Defect Sampling An Innovation for Focused Testing WEBINAR SERIES WEBINA SERIES. Featuring

Information Technology Project Management, Eighth Edition. Note: See the text itself for full citations.

ISTQB CTFL BH0-010 Exam Practice Question Paper

Testing Masters Technologies

Reflection on Software Process Improvement

A Review Paper on Software Testing

Testing. CxOne Standard

How mature is my test organization: STDM, an assessment tool

Project Management and Testing

DevOps. Changing the way you deliver software

Test Management: Part I. Software Testing: INF3121 / INF4121

Capability Maturity Model the most extensively used model in the software establishments

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

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

10 STEPS TO SUCCESSFUL ITSM TOOL SELECTION

Differentiators that Make a Difference

Successfully Integrating Test Automation and Agile Projects 10/7/2009. Presented to Annex Consulting Group CIO Breakfast October 7, 2009

Quality Management. Fundamentals of Project Management For the Acting PM. Jonathan Blake, PMP. NYS Forum Project Management Workgroup.

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

Uncovering Risk in Your ICD-10 Conversion. Key Risk & Effort Metrics for ICD Data Testing

PLM APPLICATION TESTING

codebeamer ALM supports Aviation Development and Regulatory Compliance (DO-178B/C, DO-254, and more)

Assessor-3 Release-1 Retrospective-ESI

1.0 PART THREE: Work Plan and IV&V Methodology

Test Metrics: A Practical Approach to Tracking & Interpretation

Sarbanes-Oxley: Company Case Study - Viacom Inc. IT General Controls - Sustaining Compliance Efforts. Anthony Noble VP, IT Internal Audit

Also we will try to recap what we studied in the last class. (Refer Slide Time: 00:35)

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

Risk-Based Testing: Analysis and Strategy. Presented at Quality Assurance Institute QUEST Conference Chicago, Ill., 2009

Model-Based Design Maturity: Benchmarking the Automotive Industry Vinod Reddy Manager, Consulting Services

RANDY RICE NOVEMBER 16-17, 2009 NOVEMBER 18-20, 2009 VISCONTI PALACE HOTEL - VIA FEDERICO CESI, 37 ROME (ITALY)

Anticipate. Plan. Act. Adapt. Surviving and Thriving through Strategic Planning

Fundamentals Test Process

Project Management Methodology. Construct & Unit Test SubPhase

Managing a Project and Keeping Sane While Wrestling Elegantly With PMBOK, Scrum and CMMI (Together or Any Combination)

It will also enable you to manage the expectations of your clients or management, as they will know exactly what to expect.

Project Scope Management

THIS IS ONLY MODEL RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE. Name: xxxxxx ID: xxxxxx Ph: xxxxxx

TESTING COTS APPLICATIONS

Top 20 SDET Interview Questions & Answers

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

Transcription:

Surviving the Top Ten Challenges of Software Testing: A Closer Look at Understanding Software Testing Randy Rice, CQA, CSTE Rice Consulting Services, Inc. 405-692-7331 http://www.riceconsulting.com rcs@telepath.com 1999, Rice Consulting Services, Inc. Portions used by permission, Quality Assurance Institute Goal of This Workshop Learn how to get the most from this conference Examine common testing problems. Learn: - Basic testing terminology - The economics of testing - Effective testing methods and techniques - How to develop and customize a test strategy to your organization Interact Reflect Your Job Apply the concepts to your situation Common Testing Problems What are your most pressing testing problems? The Top 10 Testing Problems Identified by surveys and interviews over the past three years Over 1,000 testers surveyed Basis for the book, Surviving the Top Ten Challenges of Software Testing by William E. Perry and Randall W. Rice The Top 10 Testing Problems 10. Not enough training 9. Us vs. Them mentality 8. Lack of test tools 1

The Top 10 Testing Problems 7. Lack of management understanding/support of testing 6. Lack of customer and user involvement 5. Not enough time for testing The Top 10 Testing Problems 4. Over-reliance on independent testers 3. Rapid change 2. Testers are in a lose/lose situation 1. Having to say no Solutions for Training Obtain formal training in testing techniques. Seek Certification. - CSTE (Certified Software Test Engineer) Attend conferences. Read books and articles. Solutions to the Teamwork Challenge The goal is to get to Us and them. Each person on the team can have a role in testing: - Developers: unit and structural testing - Testers: independent testing - Users: business-oriented testing - Management: to support testing activities Solutions for Acquiring and Using Test Tools Solutions to Educating Management in Testing Issues Identify a champion for obtaining test tools. Base the case for test tools in costs vs. benefits. Have a basic testing process in place. Train people in tool usage. Measure the benefits. Cultural change is needed. Focus your message to management on: - reducing the cost of rework - meeting the project schedule The benefits of testing must relate to these two things to be persuasive. 2

Solutions to Identifying and Involving the Customer in Testing Solutions to the Time Crunch Involve the customer and users throughout the project by performing reviews and inspections. Include users on the system test team. Perform user acceptance testing. Base schedules and estimates on measurable testing activities. - Scripts to be executed - Cases to be tested - Requirements to be tested Have contingency plans for schedule slippage. Understand the difference between the customer and users. Integrate automated testing tools to the project. Solutions to Overcoming Throwing Stuff Over the Wall Solutions for Hitting a Moving Target Developers must take ownership and responsibility for the quality of their work. Quality control is most effective when performed at the point of creation. Train developers to become excellent testers. Get management support for developer responsibility for quality. The testing process must accommodate change. Focus on testable requirements. Use automated testing tools. Manage the rate and degree of change. Solutions for Fighting a Lose-Lose Situation The perception of testing must change. - Testers are paid to find defects. - Each defect found is one more the customer or user will not find. Testers are not to blame for bottlenecks. It is management s responsibility to have an efficient process. Solutions for Having to Say No Most responsibility is on management to: - have a quality software development process in place. - have contingency plan in place in case of problems. - understand that testing is only an evaluation activity. - accept the honest facts. Keep the test results objective. 3

QAI Workbench Model Input Procedure to DO Work Tools Standards Procedure to CHECK Work Output Verification - All QC activities throughout the life cycle that ensure interim deliverables meet specific specifications. Validation - The test phase of the life cycle which ensures that the end product (e.g..., software or system) meets specifications or user needs. When Testing Occurs Business Need Verify Business Need Define Requirements Verify Requirements Acceptance Test Validate Business Need System Test Validate Requirements Unit Testing - Testing performed on a single, standalone module or unit of code. Verification Design System Verify System Integration Test Validate Design Validation Unit A Code System Unit Test Verify Code Validate Code Integration Testing - Testing performed on groups of related modules to ensure data and control are passed properly between modules. Unit A Unit B System Testing - A predetermined combination of tests that, when executed successfully, satisfy management that the system meets specifications - Validates that the system was built right. Unit C 4

User Acceptance Testing - Testing to ensure that the system meets the need of the organization and the end user/customer - Validates that the right system was built. Regression Testing - Testing after changes have been made to ensure that no unwanted changes were introduced to the software or system. Functional Testing Functional Tests - Tests that validate business requirements - Tests what the system is supposed to do Black Box Tests - Functional testing Action Result? Expected Result - Based on external specifications without knowledge of how the system is constructed - Usually process and/or data driven Structural Testing Structural Tests - Tests that validate the system architecture - Tests how the system was implemented White Box or Glass Box Tests - Structural testing - Testing based on knowledge of internal structure and logic - Usually logic driven Logical Test Cases If x=curr-date then set next-val to 03 else set next-val to 05. Perform Test Logic works? 5

To effectively test systems, both functional and structural testing need to be performed. The Economics of Testing - Making the Message to Management Where Defects Originate Where Testing Resources are Used Design 27% Code 7% Other 10% 50 45 40 35 30 25 20 15 10 Req's 56% 5 0 Proposal Reqs Design Code Test Install The Relative Cost of Fixing Defects The Bottom Line 100 90 80 70 60 50 40 30 20 10 0 Req's Design Code Test Prod Most defects are created in the early stages of a project Most defects are found in the later stages of a project It costs 10 to 100 times as much to fix a defect in the later phases of a project. 6

The Bottom Line If you want to reduce the cost of testing, spend time early in the system development (or purchase) process to make sure the requirements and design are correct. Basic Testing Principles Test early and often Involve everyone on the project Management support is critical The greater the risk, the more intense the test should be The higher the test coverage, the more confidence you ll have in the test Planning Step 1 - Determine Test Strategy What Type of Project? Test Strategy How Critical is the System to the Organization? What Type of Software? What are the Tradeoffs? Who Will Conduct Testing? Determine Testing Strategy What Type of Technical Environment? What is the Project s Scope? What are the Critical Success Factors? When Will Testing Occur? Test Strategy What Type of Project? - Traditional - Prototyping/CASE - Maintenance What Type of Software? - On-line - Real Time - Batch Test Strategy What Type of Technical Environment? - Mainframe - Client/Server What is the Project s Scope? - New Development - System Maintenance 7

Test Strategy When Will Testing Occur? - Requirements - Design - Testing What Are the Critical Success Factors? - Correctness - Reliability Test Strategy Who Will Conduct Testing? - Users - Developers What Are the Tradeoffs? - Schedule - Cost/Resources - Quality Test Strategy Risk Assessment How Critical is the System to the Organization? - Risk Assessment High Impact of Failure 3 - High Risk ACB003 1 - Low Risk ACB002 4 - Very High Risk 2 - Moderate Risk ACB001 Low Likelihood of Failure High A Tool For Performing Risk Assessment Recovery Triage Assessment Criticality and Criticality and Availability Margin for error sensitivity to wellbeing, safety, or and information external adequecy reasonable time sensitivity of data Criticality of and (i.e., is there Criticality to interest of for: competitive interfaces of backup to make the general public, advantage; Degree of with other Size of and adjustments Business organization's client, and customer Fraud dependance systems or user area recovery and corrections Total score for # Process/System/Function mission customers confidence; potential on system organizations affected procedure before the process/function 1 Billing 5 3 3 5 3 3 1 1 3 27 2 Accounts Payable 3 1 1 5 1 3 1 1 3 19 Effective Testing Methods and Techniques 8

The QAI Testing Process Step 1 - Set Test Objectives Step 1 - Set Test Objectives Step 2 - Develop Test Plan Step 3 - Execute Tests Step 4 - Evaluate/Report Test Results Select test team Perform risk assessment Define test objectives - A test objective is what the test is to validate. - There should be a one-to-one correspondence between system objectives and test objectives. Step 2 - Develop Test Plan Major Elements of a Test Plan The better the test plan, the easier the test. Test plans should be specific, yet flexible for change. Test planning should be a team activity. Test plans should be reviewed just as any other project deliverable. The test plan should be easily read by management. Introduction Approach (Strategy) Test Objectives Description of the system or software to be tested Test environment Description of the test team Milestones/Schedule Major Elements of a Test Plan (Cont d.) Functions and attributes to be tested Evaluation criteria Data recording References Tests to be performed How Much Time Should be Spent on Test Planning? Many organizations report spending onethird to one-half of a project s time in testrelated activities. Test 33% Develop 67% 9

Planning Time Guidelines Of the total test time, roughly one-third of the time can be allocated each to: - Test planning - Test execution - Test evaluation Execution 33% Evaluation 33% Planning 34% Tips for Test Planning Start early. Keep the test plan flexible to deal with change. Frequently have the test team review the test plan. Keep the test plan concise and readable. Step 3 - Execute Tests Select test tools Develop test cases Execute tests Step 3 - Execute Tests Select Test Tools A test tool is any vehicle that assists in testing. May be manual or automated Automated Tools Not the complete solution, but an important part Requires: - a process - an understanding of testing in general» Knowing what to test» Defining test cases» Knowing how to evaluate test results - cultural acceptance More than just capture/playback Categories of Automated Tools Capture/playback or script execution Defect trackers Test management Test case generators Coverage analyzers Path and complexity analyzers 10

Manual Testing Automated Testing 100% % Application Coverage Test Cycles Test coverage decreases - and risk increases - as time runs out. Test Development 100% % Application Coverage Test Cycles Automated test cycles cover the entire application. They are run frequently to ensure quality - and still meet the deadline. Time Target Release Adjusted Release Actual Release Time Target Release Graphic courtesy of Rational Software, Burlington, MA Graphic courtesy of Rational Software, Burlington, MA Critical Success Factors Regression Testing Get senior management support for buying and integrating test tools Know your requirements Be reasonable in your expectations - Start small and grow Have a strong testing process that includes tools Don t cut the training corner Why perform regression testing? The process The issues The role of automated testing tools How much is enough? No Regression Testing: Hidden Defects Regression Testing: No Hidden Defects Test Case 1 Pass Test Case 2 Fail Test Case 3 Pass Test Cycles A B C Fix New Problem?? Fail? (Bug) Fix Hidden Bug Pass? (Bug) When you don t run every test case during a new test cycle, new problems go undetected. Test Case 1 Pass Test Case 2 Test Case 3 Pass Test Cycles A B C Fail Fix New Problem Pass Fail Fail Fix Fix Pass Pass Pass Running all test cases in every test cycle detects the new problem. It gets fixed - and validatedbefore release. Graphic courtesy of Rational Software, Burlington, MA Graphic courtesy of Rational Software, Burlington, MA 11

Regression Testing - The Process Regression Testing Issues Software Version 1 Test Data Version 1 Test data must be maintained. There must be a way to conduct two identical tests. 1 Version 2 2 4 3 Version 2 There must be a way to compare two identical tests. Some tests cannot use previous versions of test data. - Data conversion may be required - Date dependencies Regression Testing Issues The greater the difference between versions, the less effective the regression test. There must be a stable baseline version for comparisons. Regression Testing - How Much is Enough? The easy answer: It depends. What does it depend on? - Risk - Scope of the change - System dependencies Proving the Value of Regression Testing You need a benchmark of non-regression testing. Consider manual vs. automated. Consider initial investment in creating test environment and test scripts/procedures Measure time and defects. Proving the Value of Regression Testing Return on Investment (ROI) can include: - Shorter test times - More accurate testing - More consistent testing - Improved communication of defects - More effective testing (e.g. Fewer test cases needed to find more defects.) 12

Tips for Performing Regression Testing Control the scope of testing. Build a reusable test bed of data. Use automated tools. Base the amount of regression testing on risk. Build a repeatable and defined process for regression testing. Step 3 - Execute Tests Develop Test Cases Functional Techniques - Requirements-based - Process-based - Data-oriented - Boundary value analysis - Decision tables - Equivalence partitioning Step 3 - Execute Tests Develop Test Cases Structural Techniques - Complexity analysis - Coverage» Statement» Branch» Condition» Multi-condition» Path Step 4 - Evaluate/Report Test Results Occurs throughout the testing life cycle Tracks testing progress Keeps management informed of testing progress Valuable Test Metrics Valuable Test Metrics Two key areas to measure - Time» For future estimating - Defects» For determining effectiveness of testing» For improving the development and testing processes Time - Time per test case - Time per test script - Time per unit test - Time per system test Sizing - Function points - Lines of code 13

Valuable Test Metrics Valuable Test Metrics Defects - Numbers of defects - Defects per sizing measure - Defects per phase of testing - Defect origin - Defect removal efficiency Defect Removal Efficiency = Number of defects found in producer testing Number of defects during the life of the product The Critical Path of Testing What Must be in Place for Effective Testing? Management support A defined and repeatable process for testing Adequate tools Trained testers Cooperation between testers, developers and end users Maximum coverage with minimal test cases Disciplined Process The Five Levels of Software Process Maturity Predictable Process Continuously Improving Process 4. Managed Process measured and controlled 5.Optimizing Focus on process improvement Managing Change Standard, 3. Defined Consistent Product and Process Process characterized, Process Quality fairly well understood 2. Repeatable Integrated Can repeat previously Engineering mastered tasks Process 1. Initial Project Unpredictable and Management poorly controlled Best Practices for Control/Test Management Processes Code analyzers Walkthroughs Inspections Acceptance test Unit test Integration test System test Dashboards Root cause analysis Statistical analysis Defect database Defect reporting Defect analysis Risk analysis Project customization Defect profiles Level 3 - Defect Management Level 2 - Verification Level 1 - Validation Level 5 - Preventive Management Level 4 - Statistical Process Control 14