Copyright , Satisfice, Inc.

Similar documents
Two Futures of Software Testing

The Nature of Exploratory Testing

DevelopSense Newsletter Volume 2, Number 2

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Software Maintenance

Developing the Right Test Documentation

On Human Computer Interaction, HCI. Dr. Saif al Zahir Electrical and Computer Engineering Department UBC

CS Machine Learning

Book Review: Build Lean: Transforming construction using Lean Thinking by Adrian Terry & Stuart Smith

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

END TIMES Series Overview for Leaders

Institutionen för datavetenskap. Hardware test equipment utilization measurement

Nearing Completion of Prototype 1: Discovery

Education for an Information Age

On the Combined Behavior of Autonomous Resource Management Agents

Getting Started with Deliberate Practice

Introduction, Organization Overview of NLP, Main Issues

Team Dispersal. Some shaping ideas

"On-board training tools for long term missions" Experiment Overview. 1. Abstract:

Maths Games Resource Kit - Sample Teaching Problem Solving

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

The open source development model has unique characteristics that make it in some

evans_pt01.qxd 7/30/2003 3:57 PM Page 1 Putting the Domain Model to Work

Developing Software Testing Courses for Your Staff

Intel-powered Classmate PC. SMART Response* Training Foils. Version 2.0

Student User s Guide to the Project Integration Management Simulation. Based on the PMBOK Guide - 5 th edition

From Access to Inclusion: Approaches to Building Institutional Capacities for Inclusive Pedagogy

Success Factors for Creativity Workshops in RE

Thesis-Proposal Outline/Template

Education the telstra BLuEPRint

The Moodle and joule 2 Teacher Toolkit

USER ADAPTATION IN E-LEARNING ENVIRONMENTS

THE REFLECTIVE SUPERVISION TOOLKIT

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Introduction. 1. Evidence-informed teaching Prelude

Operational Knowledge Management: a way to manage competence

A Pipelined Approach for Iterative Software Process Model

M55205-Mastering Microsoft Project 2016

What is a Mental Model?

UCEAS: User-centred Evaluations of Adaptive Systems

The Good Judgment Project: A large scale test of different methods of combining expert predictions

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

The Enterprise Knowledge Portal: The Concept

Lecture 2: Quantifiers and Approximation

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

WE GAVE A LAWYER BASIC MATH SKILLS, AND YOU WON T BELIEVE WHAT HAPPENED NEXT

Infrared Paper Dryer Control Scheme

BBST: Black Box Software Testing. Cem Kaner, J.D., Ph.D. Florida Institute of Technology. Workshop on Teaching Software Testing

On-Line Data Analytics

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Dublin City Schools Broadcast Video I Graded Course of Study GRADES 9-12

MYCIN. The MYCIN Task

An Introduction to Simio for Beginners

New Paths to Learning with Chromebooks

Title:A Flexible Simulation Platform to Quantify and Manage Emergency Department Crowding

Specification of the Verity Learning Companion and Self-Assessment Tool

LEGO MINDSTORMS Education EV3 Coding Activities

Five Challenges for the Collaborative Classroom and How to Solve Them

Science Olympiad Competition Model This! Event Guidelines

Management Update: A Growing Market Battle to Deliver E-Learning Systems

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

A Coding System for Dynamic Topic Analysis: A Computer-Mediated Discourse Analysis Technique

A Strategic Plan for the Law Library. Washington and Lee University School of Law Introduction

Knowledge based expert systems D H A N A N J A Y K A L B A N D E

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

A process by any other name

Making Confident Decisions

ADDIE: A systematic methodology for instructional design that includes five phases: Analysis, Design, Development, Implementation, and Evaluation.

Circuit Simulators: A Revolutionary E-Learning Platform

IT4305: Rapid Software Development Part 2: Structured Question Paper

Objectives. Chapter 2: The Representation of Knowledge. Expert Systems: Principles and Programming, Fourth Edition

From Self Hosted to SaaS Our Journey (LEC107648)

STABILISATION AND PROCESS IMPROVEMENT IN NAB

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

Vorlesung Mensch-Maschine-Interaktion

University of Groningen. Systemen, planning, netwerken Bosman, Aart

Active Ingredients of Instructional Coaching Results from a qualitative strand embedded in a randomized control trial

Understanding and Changing Habits

The Internet as a Normative Corpus: Grammar Checking with a Search Engine

Cognitive Thinking Style Sample Report

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Top Ten Persuasive Strategies Used on the Web - Cathy SooHoo, 5/17/01

Plain Language NAGC Review

Major Milestones, Team Activities, and Individual Deliverables

Contact: For more information on Breakthrough visit or contact Carmel Crévola at Resources:

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

Houghton Mifflin Online Assessment System Walkthrough Guide

Execution Plan for Software Engineering Education in Taiwan

10.2. Behavior models

Time Management. To receive regular updates kindly send test to : 1

Evaluating the TESTAR tool in an Industrial Case Study

Persuasive writing about no homework on weekends. AP Essay Writing Tips..

Ministry of Education, Republic of Palau Executive Summary

TU-E2090 Research Assignment in Operations Management and Services

Emergency Management Games and Test Case Utility:

STEPS TO EFFECTIVE ADVOCACY

The Strong Minimalist Thesis and Bounded Optimality

PAGE(S) WHERE TAUGHT If sub mission ins not a book, cite appropriate location(s))

Transcription:

Testing Isn t Just Checking Testing, Checking & Tools Checking is a process of confirming and verifying existing beliefs Checking can (and I argue, largely should) be done by automation It is a non-sapient process FreeTest Trondheim, Norway March 2010 Michael Bolton DevelopSense http://www.developsense.com See http://www.developsense.com/2009/08/testing-vs-checking.html What IS Checking? A check has three attributes It requires an observation The observation is linked to a decision rule The observation and the rule can be applied Oh no! What Does Sapient Mean? Sapient means requiring human wisdom A non-sapient activity can be performed by a machine that can t think (but is quick and precise) by a human who has been instructed NOT to think (and who is slow and erratic) What Is Sapience? A sapient activity is one that requires a thinking human to perform We test not only for repeatability, but also for adaptability, value, and threats to value Checking IS Important Despite what the Agilists might have you believe, checking is not new D. McCracken (1957) refers to program checkout Jerry Weinberg: checking was important in the early days because computer time was expensive programmers were cheap the machinery was so unreliable Checking has been rediscovered by the Agilists centrally important to test-driven development, refactoring, continuous integration & deployment worthwhile checking must surrounded by good testing work CHECks are CHange detectors 1 1

But Checking Has Limitations Checks tend to be designed early when we know less than we ll ever know about the product and the project Checks focus on pass vs. fail? But A good tester doesn t just ask A good tester asks Machines can t recognize new risks investigate speculate empathize anticipate predict suggest judge recognize refocus project contextualize elaborate appreciate strategize evaluate become resigned question charter teach assess learn get frustrated reframe work around a problem invent make conscious decisions model resource troubleshoot collaborate refine Humans can recognize new risks investigate speculate empathize anticipate predict suggest judge recognize refocus project contextualize elaborate appreciate strategize evaluate become resigned question charter teach assess learn get frustrated reframe work around a problem invent make conscious decisions model resource troubleshoot collaborate refine FEEL THINK Testing IS Exploring Our community sees testing as exploration, discovery, investigation, and learning Testing can be assisted by machines, but can t be done by machines alone Testing is a sapient process I can t test, but I can help you act on test ideas. What IS Exploratory Testing? Simultaneous test design, test execution, and learning. James Bach, 1995 But maybe it would be a good idea to underscore why that s important See http://www.developsense.com/2009/08/testing-vs-checking.html 2 2

What IS Exploratory Testing? Simultaneous test design, test execution, and learning, with an emphasis on learning. Cem Kaner, 2005 But maybe it would be a good idea to be really explicit about what goes on What IS Exploratory Testing? I follow (and to some degree contributed to) Kaner s definition, which was refined over several peer conferences through 2007: Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of his or her work by treating test design, test execution, test result interpretation, and test-related learning as mutually supportive activities that run in parallel throughout the project. See Kaner, Exploratory Testing After 23 Years, www.kaner.com/pdfs/etat23.pdf Whoa. Maybe it would be a good idea to keep it brief most of the time Besides You cannot use a script to program a script investigate a problem you ve found decide that there s a problem with a script escape the script problem you ve identified determine the best way to phrase a report unravel a puzzling situation Checking Requires Testing A check is skill-free, but it is dominated by testing skill. Before the Check After The Check Recognize a risk Translate to a test idea Express a test idea as a bit Turn the question into code Determine the trigger Encode the trigger Programming skill Programming skill Read the bit Aggregate bits Design a report Encode the report Observe the report Determine meaning Determine significance Respond Programming skill Programming skill Testing, design skill Programming skill Testing, programming, and management skill 3 3

A Heuristic Test Strategy Model The Four-Part Risk Story Project Environment Some person might suffer harm or loss because of a vulnerability in the product triggered by some threat. Quality Criteria Tests Perceived Quality Product Elements 19 Excellent checking reduces risks of unexpected implementation behaviour and of change. Excellent risk-based testing is less about calculating and more about learning. An oracle is a heuristic principle or mechanism by which someone might recognize a problem. Oracles (usually works, might fail) (but not decide conclusively) Bug (n): Something that bugs someone who matters Consistency ( this agrees with that ) an important theme in oracles History Image Comparable Products Claims User Expectations Purpose Product Standards Consistency heuristics rely on the quality of your models of the product and its context. Test Coverage Isn t Just Code Coverage There are as many kinds of coverage as there are ways to model the product. Structure Function Data Platform Operations Time Test coverage is the amount of the system space that has been tested. Capability Reliability Usability Security Scalability Performance Installability Compatibility Supportability Testability Maintainability Portability Localizability Test Techniques Function testing: test what it does Domain testing: test what it does things to Stress testing: overwhelm or starve the product Flow testing: do one thing after another Scenario testing: test to a story Claims testing: test what people say User testing: involve the users Risk testing: anticipate a problem Automatic testing: run a zillion tests 4 4

Cost as a Simplifying Factor Try quick tests as well as careful tests Non-Rapid Test Automation In my travels, I ve seen extraordinary emphasis on long cycles of planning without feedback. This makes testing ineffective and slow. A quick test is a cheap test that has some value, gives fast feedback, but requires little preparation, knowledge, or time to perform. Bursts of quick tests represent a great way to discover risks upon which careful testing can be better focused. 1. Obtain a sophisticated GUI test execution tool (extra points if you overpay for it). 2. Define a lot of low-value manual tests. 3. Hire an automation team to automate each one. 4. Build a comprehensive test library and framework. 5. Keep fixing it. This can work if your product is very easy to test and it doesn t change much. Does that describe your product? Step right up! Step right up! Automated tests execute a sequence of actions without human intervention. This approach helps eliminate human error, and provides faster results. Actual text from a Microsoft whitepaper on automated testing Step right up! Step right up! Since most products require tests to be run many times, automated testing generally leads to significant labor cost savings over time. Typically a company will pass the break-even point for labor costs after just two or three runs of an automated test. 5 5

This argument boils down to: 1 Computers are better than People! Testing is a sequence of actions Actually, testing is better viewed as an interactive cognitive process. Tools don t test; they may play a role in the test. 2 Testing means repeating the same actions over and over. Testing has repetitive elements, but it isn t as repetitive as it seems, and variety is critical to the process. Use tools to enhance variety, rather than repetition. 3 We can automate testing actions. Actually, in most cases we can only automate a subset of testing actions, for the rest, we need human testers. Testing dominates checking. 4 An automated test is faster, because it needs no human intervention. Faster simulation of keystrokes & clicks is not the same as faster testing. Human intervention is reduced during execution, but increased during diagnosis. 5 Automation reduces human error. It reduces one kind of human error, but it multiplies other kinds of error. Automation allows us to do many kinds of bad testing faster than ever. 6 6

6 We can quantify the costs and benefits of manual vs. automated testing. Manual testing and automated testing involve very different costs and benefits, many of which are hidden. 7 Automation will lead to "significant labor cost savings." It can reduce some kinds of labor, while incurring other kinds. Avoid narrow analyses. 8 Test automation is Towards a better model of test automation Automation will not harm the test project. Test automation can distract testers, obscure the true test strategy, and provide a false sense of security. Tool-Supported Exploration Tool-Supported Exploration Test generation (data and script generators). Tools might create specialized data such as randomized email messages, or populate databases, or generate combinations of parameters that we d like to cover with our tests. System configuration. Tools might preserve or reproduce system parameters, set systems to a particular state, or create or restore ghosted disk drives. Simulators. Tools might simulate sub-systems or environmental conditions that are not available (or not yet available) for testing, or are too expensive to provide live on demand. Test execution (harnesses and test scripts). Tools might operate the software itself, either simulating a user working through the GUI, or bypassing the GUI and using an alternative testable interface. Probes. Tools might make visible what would otherwise be invisible to humans. They might statically analyze a product, parse a log file, or monitor system parameters. Oracles. An oracle is any mechanism by which we detect failure or success. Tools might automatically detect certain kinds of error conditions in a product. Activity recording & coverage analysis. Tools might watch testing as it happens and retrospectively report what was and was not tested. They might record actions for later replay in other tests. Visualization: Tools can help us to display data sets, highlight key elements, map relationships, illustrate timing Test management. Tools might record test results; organize test ideas or metrics. 7 7

Test tools are all over the place. Key Points: On your desktop (never forget spreadsheets and text editors) Web-based web testing resources (HTML checkers, accessibility analyzers, Rubular, BrowserShots.org) Scripting languages (Perl, Ruby, Python, TCL) and associated libraries Shareware repositories (www.download.com) O/S monitoring tools (www.sysinternals.com) Open source testware (www.opensourcetesting.org, www.sourceforge.com) Spyware for monitoring exploratory tests (www.spectorsoft.com) Any Microsoft development tool (they always include useful utilities) Microsoft compatibility toolkit Windows Resource Kit and other free tools (www.microsoft.com) The cubicle next door (someone else in your company has a tool for you) Testing is intellectual, not just clerical. Test automation is software development. Automation skill and automation projects aren t cheap. Tools can accelerate, extend, and enhance a good test process, but can slow down, limit, and degrade a poor one. Test automation is a promising idea that often falls far short of its promise. These are warnings. You can be very successful with test tools if you cope with these problems well. Acknowledgements Much of this material is from Rapid Software Testing and Rapid Software Testing for Managers, by James Bach and Michael Bolton Who I Am Michael Bolton (not the singer, not the guy in Office Space) DevelopSense, Toronto, Canada mb@developsense.com +1 (416) 992-8378 http://www.developsense.com Web Resources Michael Bolton http://www.developsense.com http://www.developsense.com/blog/category/testing-vs-checking/ James Bach http://www.satisfice.com Cem Kaner http://www.kaner.com The Florida Institute of Technology http://www.testingeducation.org http://www.testingeducation.org/bbst/index.html StickyMinds http://www.stickyminds.com Risks Digest http://catless.ncl.ac.uk/risks Bibliography How To Think About Testing Perfect Software and Other Illusions About Testing Gerald M. Weinberg Lessons Learned in Software Testing Cem Kaner, James Bach, and Bret Pettichord Software Testing as a Social Science Cem Kaner; http://www.kaner.com/pdfs/kanersocialsciencestep.pdf An Introduction to General Systems Thinking Gerald M. Weinberg Exploring Requirements: Quality Before Design Gerald M. Weinberg 8 8

Bibliography Testing Computer Software Cem Kaner, Jack Falk, and Hung Quoc Nguyen A Practitioner s Guide to Test Design Lee Copeland How to Break Software James Whittaker Hacking Web Applications Exposed Joel Scambray and Mike Shema The Visual Display of Quantitative Information Edward Tufte How to present information in persuasive, compelling, and beautiful ways 9 9