Proactive UAT™ Makes Users Competent, Confident, Committed Robin F. Goldsmith, JD GO PRO MANAGEMENT, INC. SYSTEM ACQUISITION & DEVELOPMENT B USI NE SS ENG INE T R A IN ING ERING 22 CYNTHIA ROAD NEEDHAM, MA 02494-1412 INFO@GOPROMANAGEMENT.COM WWW.GOPROMANAGEMENT.COM (781) 444-5753 VOICE/FAX -1 ©2005 GO PRO MANAGEMENT, INC. QUALITY/TESTING PRODUCTIVITY Proactive UAT™ Makes Users Competent, Confident, Committed Most Acceptance Testing Is Reactive z z z At the end, based on system as written Technical view dominates with little user role/awareness of how and what to test A lot of work, often with little payback – Doesn’t find many of the errors – Adversarial, arguments, blame – Too late to fix errors anyhow Lacking competence leads to lacking confidence leads to lacking commitment Proactive Testing™ provides the basis for more confident and competent user commitment to UAT ©2005 GO PRO MANAGEMENT, INC. -2 Proactive UAT™ Makes Users Competent, Confident, Committed Objectives Identify reasons users often are reluctant to participate in User Acceptance Testing (UAT) z Distinguish conventional testing’s often ineffective approaches to UAT from more successful Proactive User Acceptance Testing™ z Describe professional testers’ role in helping users define Acceptance Criteria that create competence, confidence, and commitment z -3 ©2005 GO PRO MANAGEMENT, INC. Proactive UAT™ Makes Users Competent, Confident, Committed “V” Model Shows Levels of Testing Business (User) Requirements Acceptance Test High-Level Design System Test Low-Level Design Integration Test Code ©2005 GO PRO MANAGEMENT, INC. Unit Test -4 Proactive UAT™ Makes Users Competent, Confident, Committed Reasons for User Resistance Lack of confidence in what and how to test z Testing against system, not business requirements z Insufficient time or resources (may signal other issues) z “Not my job” syndrome [may be correct] z Don’t find much anyhow z Fear of blame for found or unfound defects z Belief that feedback will be ignored z Intimidation and misguidance from developerand/or tester-centric dominance z ©2005 GO PRO MANAGEMENT, INC. -5 Proactive UAT™ Makes Users Competent, Confident, Committed Traditional Development and Testing Gurus Tend to Miss the Boat on UAT :Consider UAT a test to confirm product’s system requirements--often expect a rubber stamp :Some testing books/courses say : UAT should be only positive/valid proof-ofconcept tests to demonstrate normal functionality : UAT should be a repeated subset of the System Test, run by users : UAT simply needs one test for each functional requirement or use case scenario Yet, organizations continually rely on UAT to catch many missed problems ©2005 GO PRO MANAGEMENT, INC. -6 Proactive UAT™ Makes Users Competent, Confident, Committed Why Do Users Need to Do Thorough User Acceptance Testing (UAT)? Self-defense: Acceptance Testing is the user’s chance and duty to confirm the system works properly, from the user’s standpoint, before users and the organization rely upon it. Users often are like goalkeepers defending alone without protection from fullbacks and halfbacks Can’t we just trust the developers to do their jobs right? -7 ©2005 GO PRO MANAGEMENT, INC. Proactive UAT™ Makes Users Competent, Confident, Committed Proactive Testing Life Cycle TM FEASIBILITY ANALYSIS Feasibility Report SYSTEMS ANALYSIS SYSTEM DESIGN Business Requirements See: www.sdmagazine.com /articles/2002/0207 /0208 /0209 /0210 High-Level Low-Level Design RequirementsBased Tests Technical Test Plans Acceptance Criteria Acceptance Test Plan IMPLEMENTATION OPERATIONS & MAINT. [Life Cycle reit.] Acceptance Test ©2005 GO PRO MANAGEMENT, INC. Formal Review Black/White Box Unit Tests Integration Tests System, Special Tests Independent (QA) Tests -8 DEVELOPMENT Code (Debug, Informal Review) Proactive UAT™ Makes Users Competent, Confident, Committed Key Proactive Testing™ Concepts Find WIIFMs z Intertwine testing with each development deliverable z Plan before acting at any point/level, independent paths – Acceptance testing first; users shouldn’t do technical tests – Prepare test plans/designs during Design, promote reuse – Prioritize by level, from full choices, to avoid wasted effort z Let testing drive development – Feedback test plans/designs to guide correct coding – Selectively structure for early tests that prevent rework – Measure objectively to guide decisions, more CAT-Scans ©2005 GO PRO MANAGEMENT, INC. -9 Proactive UAT™ Makes Users Competent, Confident, Committed Proactive Testing™ Strategy/Roles: More Thorough Tests of Cleaner Code ¾ ¾ ¾ Professional testers Enable developers to code more correctly by using testing ¾ Specialize in test methods to improve requirements and ¾ Tend to like testing, detail designs ¾ Double check, any/all test levels, technical view, but Enable developers to catch with greater user sensitivity more of their own (fewer) ¾ Users double check cleaner remaining errors by more explicit systematic testing from software from business perspective as they actually business and technical will use system perspectives ©2005 GO PRO MANAGEMENT, INC. - 10 Proactive UAT™ Makes Users Competent, Confident, Committed Approaches to Acceptance Testing Reactive--Run what’s given to you z Here it is, try it out Proactive--Plan what to run 9 Test each requirement – Assumes understanding of 9 Minimum for acceptability how system works and is to 9 Assures requirements are be used testable (sufficient? – Reasonable for changes to 9 (Variant) Run Use Cases known system z (Variant) Test that it works the way it’s written – Check choices, links, fields – Match to user instructions ©2005 GO PRO MANAGEMENT, INC. 9 Define acceptance criteria 9 Independently of requirements, sets priorities 9 A test of the requirements ¾ Execute the plan - 11 Proactive UAT™ Makes Users Competent, Confident, Committed ÂTwo Types of Requirements: Business/User z z z User view & language, conceptual; exists within the business environment Serves business objectives What business results must be delivered to solve a business need (problem, opportunity, or challenge) and provide value when delivered Many possible ways to accomplish ©2005 GO PRO MANAGEMENT, INC. System/Software z z z Technical/product operational view, language Human-defined system/ product design of one of the possible ways, How, to deliver the business results What external functions each piece of the product must accomplish for it to work as designed (Functional Specifications) - 12 Proactive UAT™ Makes Users Competent, Confident, Committed Even Requirements “Experts” Think the Difference is Detail Business Requirements (High-Level, Vague) System/ Software ©2005 GO PRO MANAGEMENT, INC. - 13 Reqs. (Detailed) Proactive UAT™ Makes Users Competent, Confident, Committed When Business/User Requirements Are Detailed First, Creep Is Reduced User Acceptance Test Technical Tests Business Requirements (High-Level) System/Software Reqs. (High-Level) Business Reqs. (Detailed) ©2005 GO PRO MANAGEMENT, INC. System/ Software - 14 Reqs. (Detailed) Proactive UAT™ Makes Users Competent, Confident, Committed What Tests Are Needed to Be Confident This Requirement Is Met? Separately identify sales tax calculated as 5% of purchase price and include it in the total amount due ©2005 GO PRO MANAGEMENT, INC. - 15 Proactive UAT™ Makes Users Competent, Confident, Committed Define the Use Case Scenario(s) that Test This Requirement? ©2005 GO PRO MANAGEMENT, INC. - 16 Proactive UAT™ Makes Users Competent, Confident, Committed Requirements-Based Test Issues: Must Be Business Requirements z z Tests are only as good as the requirements definitionirrelevant for missing/wrong It can be hard to tell what the requirements are – Narratives are confusing – Itemized format helps – Needs detail, much more z Need at least 2 tests per requirement, usually more ©2005 GO PRO MANAGEMENT, INC. z Use Cases define usage, not user, requirements of a product – Users are unlikely to write Use Cases; they’ll use existing ones, but then not user’s view – Don’t address business rules or quality factors z Seldom written from a thorough testing perspective, happy path but not the multiple (esp. negative) test conditions - 17 Proactive UAT™ Makes Users Competent, Confident, Committed Acceptance Criteria--Define Without Referring to the Requirements What the users/customers/stakeholders (may be multiple perspectives) must have demonstrated to be confident the delivered system works— before they stake their jobs on system working z Determination will be made whether or not it is conscious, planned, or explicit z True empowerment builds cooperation z – Ability to accept or reject delivered system Identifies overlooked and incorrect requirements ©2005 GO PRO MANAGEMENT, INC. - 18 Proactive UAT™ Makes Users Competent, Confident, Committed 1. What Functions the System Must Perform ¾ From user’s perspective ¾ Real world business processes, not programs ¾ Original source through end-use ¾ Common and likely to be problematical ¾ May include structure, e.g., checking every menu choice, every field, all outputs ¾ Technical role is facilitator, gatherer, organizer (normal, not just new/problems) ©2005 GO PRO MANAGEMENT, INC. - 19 Proactive UAT™ Makes Users Competent, Confident, Committed 2. How Much Must Be Shown to Give Confidence It Works ¾ How many (and which) ¾ Transactions, accounts ¾ Users, locations ¾ Days, business cycles ¾ How frequently, how extensively should they be demonstrated ¾ What environments should they be in ©2005 GO PRO MANAGEMENT, INC. - 20 Proactive UAT™ Makes Users Competent, Confident, Committed 3. How Well, How System Quality Will Be Assessed ¾ Performance measures ¾ Response times, turnaround, throughput ¾ Staffing requirements and productivity ¾ Accuracy, errors and responses to them ¾ Subjective judgments ¾ Usability ¾ Suitability ¾ Whose opinion counts, guidelines ©2005 GO PRO MANAGEMENT, INC. - 21 Proactive UAT™ Makes Users Competent, Confident, Committed 4. By Whom, Who Should Perform Tests for Confidence We Can Use It ¾ Actual end-users themselves ¾ Typical, randomly selected ¾ Mix of locations, skills, roles ¾ “Super,” “power,” or “good” users ¾ User stand-ins, e.g., business analysts, liaisons, temporary helpers, full-time acceptance testers ¾ Non-users, e.g., QA or testing group, documentation writer, developers ©2005 GO PRO MANAGEMENT, INC. - 22 Proactive UAT™ Makes Users Competent, Confident, Committed 5. In What Manner, Test Format for Confidence the System Works ¾ Stand-alone--test inputs and outputs ¾ Parallel--production inputs, test outputs ¾ Most complete definition of “right” results ¾ Old, new, reconcile is three times the work ¾ Pilot--subset, production inputs and outputs ¾ No definition of expected results ¾ Bridging adds complexity and risk to test ¾ Big Bang--production inputs and outputs ©2005 GO PRO MANAGEMENT, INC. - 23 Proactive UAT™ Makes Users Competent, Confident, Committed Acceptance Criteria Example 1 of 2 FUNCTIONS 1 Create an order for one taxable item. 2 Create an order for one non-taxable item. 3 Create an order that includes two or more taxable items and two or more nontaxable items. 4 For an order with two or more taxable items and two or more nontaxable items, cancel one of the taxable items and one of the nontaxable items. 5 Cancel an entire order that included two or more taxable items and two or more nontaxable items. 6 Produce credit vouchers for returned taxable and nontaxable items. 7 Modify sales prices of already-entered taxable and nontaxable items. 8 Create orders for items costing less than $1.00 and more than $999. 9 Change the sales tax rate to 5.25 percent. ©2005 GO PRO MANAGEMENT, INC. - 24 Proactive UAT™ Makes Users Competent, Confident, Committed Acceptance Criteria Example 2 of 2 HOW MUCH 10 Create orders that cover one page and two pages. 11 Create an order with total sales tax of more than $1000. HOW WELL 12 Have an untrained user enter orders. 13 Create an order for 25 different types of items. BY WHOM 14 At least two real users, one with and one without training. IN WHAT MANNER 15 Stand-alone. ©2005 GO PRO MANAGEMENT, INC. - 25 Proactive UAT™ Makes Users Competent, Confident, Committed Summary ¾ Perceived lack of competence and confidence often makes users reluctant to participate in User Acceptance Testing (UAT) ¾ Conventional testing’s common testing-centric views of UAT can render UAT an ineffective disempowering rubber-stamp time-waster ¾ Proactive User Acceptance Testing™ empowers users by defining Acceptance Criteria that are important to the users and create competence, confidence, and commitment ©2005 GO PRO MANAGEMENT, INC. - 26 Proactive UAT™ Makes Users Competent, Confident, Committed Go Pro Management, Inc. Seminars--Relation to Life Cycle Systems QA Improving the REAL Software Process Managing System Projects with Credibility System Measurement IT ROI Test Process Management Feasibility Analysis Proactive User Acceptance Testing Proactive Risk-Based Testing Systems Analysis System Develop- Design ment Defining and Managing User Requirements Reusable Test Designs Re-Engineering: Test Estimation Opportunities for IS Testing Early in the Life Cycle 21 Ways to Test Requirements Implementation Operations Maintenance Winning Approaches to Structured Software Testing Managing Software Acquisition and Outsourcing: > Purchasing Software and Services > Controlling an Existing Vendor’s Performance Making You a Leader ©2005 GO PRO MANAGEMENT, INC. - 27 Proactive UAT™ Makes Users Competent, Confident, Committed Robin F. Goldsmith, JD robin@gopromanagement.com (781) 444-5753 www.gopromanagement.com • President of Go Pro Management, Inc. consultancy since 1982, working directly with and training professionals in business engineering, requirements analysis, software acquisition, project management, quality and testing. • Previously a developer, systems programmer/DBA/QA, and project leader with the City of Cleveland, leading financial institutions, and a “Big 5” consulting firm. • Degrees: Kenyon College, A.B.; Pennsylvania State University, M.S. in Psychology; Suffolk University, J.D.; Boston University, LL.M. in Tax Law. • Published author and frequent speaker at leading professional conferences. • Formerly International Vice President of the Association for Systems Management and Executive Editor of the Journal of Systems Management. • Founding Chairman of the New England Center for Organizational Effectiveness. • Member of the Boston SPIN and SEPG’95 Planning and Program Committees. • Chair of BOSCON 2000 and 2001, ASQ Boston Section‘s Annual Quality Conferences. • Member ASQ Software Division Methods Committee. • Admitted to the Massachusetts Bar and licensed to practice law in Massachusetts. • Author of book: Discovering REAL Business Requirements for Software Project Success ©2005 GO PRO MANAGEMENT, INC. - 28 Proactive UAT™ Makes Users Competent, Confident, Committed