Lessons Learned in Software Testing

Similar documents
Christopher Seder Affiliate Marketer

Improved Software Testing Using McCabe IQ Coverage Analysis

Writing a Scholarship Essay. Making the essay work for you!

MS Learn Online Feature Presentation Invisible Symptoms in MS Featuring Dr. Rosalind Kalb

EPISODE 02: HOW TO FAST FORWARD YOUR LIST GROWTH

Test Plan Evaluation Model

Philosophical argument

Terminology and Scripts: what you say will make a difference in your success

YOUTH SOCCER COACHES GUIDE TO SUCCESS Norbert Altenstad

The Dangers of Use Cases Employed as Test Cases

GOD S BIG STORY Week 1: Creation God Saw That It Was Good 1. LEADER PREPARATION

chapter >> Consumer and Producer Surplus Section 3: Consumer Surplus, Producer Surplus, and the Gains from Trade

Create Your Own $1 Million Message Elevator Pitch Template Workbook

Sales people who are trying to switch your phone service or put you on VoIP. Sales people who work for companies who fix billing errors.

Let s start with a couple of definitions! 39% great 39% could have been better

Page 18. Using Software To Make More Money With Surveys. Visit us on the web at:

Overall Goal Students will identify and describe traits of positive, successful leaders.

TeachingEnglish Lesson plans

50 Tough Interview Questions

Top 40 Career Change Tips. Copyright 2013 Position Ignition Top 40 Career Change Tips

How To Set Up A Video Referral Marketing Campaign That Spits Out Referrals & Repeat Business

Copyright (c) 2015 Christopher Small and The Art of Lawyering. All rights reserved.

Presentations Phrases Prepositions Pairwork Student A Choose one of the sections below and read out one of the example sentences with a gap or noise

Online Survey Report

How Can I Get the Money Flowing? (Transcript of Lecture found at

A: I thought you hated business. What changed your mind? A: MBA's are a dime a dozen these days. Are you sure that is the best route to take?

CSC340: Information Systems Analysis and Design. About the Course

Chapter 2 How To Cheat A Barre Chord

HOW TO SUCCEED WITH NEWSPAPER ADVERTISING

7 Ways To Explode Your Profits as a Tint Professional and Change your Life Forever!

Average producers can easily increase their production in a larger office with more market share.

Relative and Absolute Change Percentages

Devotion NT273 CHILDREN S DEVOTIONS FOR THE WEEK OF: LESSON TITLE: The Garden of Gethsemane. THEME: We always need to pray! SCRIPTURE: Luke 22:39-53

The Doctor-Patient Relationship

For parents and carers of children with autism

What Have I Learned In This Class?

Why Your Business Needs a Website: Ten Reasons. Contact Us: Info@intensiveonlinemarketers.com

Indicators. Salesforce SUCCESS Partners

The Windows Command Prompt: Simpler and More Useful Than You Think

WhatWorks in Log Management EventTracker at San Bernardino County Superior Court

Here are several tips to help you navigate Fairfax County s legal system.

B2B Customer Satisfaction Research

Words That Work Playbook

ONLINE SAFETY TEACHER S GUIDE:

GUI D A N CE. A Not-for-Profit Company. Helping Self Funders Make the Right Choices. Freephone

TeachingEnglish Lesson plans

Everything you need to know: regular overseas payments

STANDARDIZATON CONSOLIDATION SCALING INTEROPERABILITY DATA MANAGEMENT PORTFOLIO MANAGEMENT

The 5 P s in Problem Solving *prob lem: a source of perplexity, distress, or vexation. *solve: to find a solution, explanation, or answer for

Invest Your Heartbeats

Getting Your Keywords Right

THE EF ENGLISHLIVE GUIDE TO: Dating in English TOP TIPS. For making the right impression

Getting the best from your 360 degree feedback

12 Proven Principles for Process Improvement & Organizational Success

Britepaper. How to grow your business through events 10 easy steps

FIREARMS BUSINESS. Volume 7 Issue 4 August 2014 WHAT ENTREPRENEURIAL TEENAGERS NEED TO KNOW ABOUT PATENTS AND TRADEMARKS

Being Productive Venkat Subramaniam

How to Have a Pee-Free Home

SALES TEMPLATES. for prospecting, scheduling meetings, following up, networking, and asking for referrals.

Quality Meets the CEO

Lighting Options for elearning Video (Sep 11)

Testing, What is it Good For? Absolutely Everything!

Writing Maintainable Automated Acceptance Tests

BBC Learning English Talk about English Business Language To Go Part 1 - Interviews

How to fill every seat in the house. An event manager s guide to SMS Marketing

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

REPUTATION MANAGEMENT SURVIVAL GUIDE. A BEGINNER S GUIDE for managing your online reputation to promote your local business.

The Easy Way To Flipping Domain Names

Avatar: Appearance Changing Your Shape Introduction Instruction Practice LEVEL: 1 MODULE: AVATAR: APPEARANCE MISSION 2

A Step By Step Guide On How To Attract Your Dream Life Now

Grade 2 Lesson 3: Refusing Bullying. Getting Started

REALISTIC THINKING. How to Do It

chapter >> First Principles Section 1: Individual Choice: The Core of Economics

Windows Server 2003 migration: Your three-phase action plan to reach the finish line

Testing Introduction. IEEE Definitions

Why Diagnosing Application Problems is Too Hard

Teaching paraphrasing to year three (3) and four (4) students exhibiting reading difficulties will lead to increased reading comprehension

Prove the worth of your organization s work with this process.

What Makes a Good Test?

How to choose the best software for your retail newsagency By Mark Fletcher, CEO, Tower Systems Updated March 19, 2009

cprax Internet Marketing

DEATH AND LIFE ARE IN THE POWER OF THE TONGUE; AND THOSE WHO LOVE IT WILL EAT ITS FRUIT FOLLOW UP ACTIVITY WHAT DID GOD SAY?

Components of a Reading Workshop Mini-Lesson

A Guide to Getting the Best from Your Accountant

GET STARTED WITH LINKEDIN. A Guide by ConsultingFact.com. An Insider s Guide

Patient Education Connecting patients to the latest multimedia resources. Marra Williams, CHES

Leadership, Attitude, Performance...making learning pay! Go Beyond the Sale. Customer Service in Selling. More than a department

Why Semantic Analysis is Better than Sentiment Analysis. A White Paper by T.R. Fitz-Gibbon, Chief Scientist, Networked Insights

SPICE EduGuide EG0015 Security of Administrative Accounts

Sales Training Programme. Module 7. Objection handling workbook

Preparing and Revising for your GCSE Exams

User Stories Applied

Chapter 1: The Principles of Successful Trading

Timing the Trade How to Buy Right before a Huge Price Advance

Thought for the Day Master Lesson

Could you spot a scammer?

Content Management Guide

The Human Side of Test Automation

May 25th, "Car Buying: How to Avoid the Extra Stress"--Mary Dittfurth

Chapter 5: Fallacies. 23 February 2015

Transcription:

Lessons Learned in Software Testing An excellent book covering a range of testing topics Practical rather than academic In the next few lectures, we ll discuss some of the key lessons from this book, and how they apply to all testing efforts Focus on the practicalities of testing, not the technical details: testing is more about a state of mind than a particular kind of programming 1

Testing: What, Not How The technical side of testing usually depends on what you are testing To test a file system, you need to understand file systems To test Java code, you probably want to know Java well Test programs aren t special programs Often just use a standard scripting language or the language of the program you are testing The big difference is the goal In typical programming, you want to produce a program that, given input X produces output Y In testing, there is no such simple goal Many radically different solutions You have to THINK more than in most coding 2

How to Test Software Five major themes The testing role What does a tester really do? Thinking like a tester Are there differences between thinking like a programmer/developer and thinking like a tester? Testing techniques Reporting bugs and working with others If a tree falls in the forest and no one hears it, can the bug possibly be fixed? Planning and strategy 3

Theme 1: The Testing Role 4

The Testing Role Lesson 1: You are the headlights of the project A software project is like driving off-road in rugged terrain, at night The tester lights the way! Testing is about finding information 5

The Testing Role Lesson 2: Your mission drives everything you do Testing depends on the project Goal could be find every bug, at any cost Or satisfy this FAA requirement Or knock this into shape for beta release Or keep costs minimal without making the initial version too embarrassing Or find out if this program we re considering buying is worth paying for Or just Satisfy the client 6

The Testing Role Lesson 5: Find important bugs fast In most cases, finding killer bugs is part of the tester s key mission Test changed code before stable code Test critical functions before rarely used things Test for catastrophic problems before problems users can work around Test things someone will definitely care about before you test things you aren t sure anyone will care about at all 7

The Testing Role Lesson 7: Question everything, but not necessarily out loud Testing well requires skepticism and even a touch of paranoia Being skeptical and paranoid all the time can put programmers and managers on defense Be helpful, don t be a pest Use things you keep to yourself to guide testing, though! Trust no one 8

The Testing Role Lesson 14: Beware of becoming a process improvement group Tempting to say I m tired of finding bugs, let s make sure these clowns quit introducing so many bugs It would be nice if programmers worked more carefully, sure But that s usually not your job Even with management support, testing is seldom a good home for a development process criticism society How testers see programmers 9

Theme 2: Thinking Like a Tester 10

Thinking Like a Tester Lesson 16: Testing is applied epistemology What the heck is epistemology? The branch of philosophy that covers evidence and reasoning How we know what we know The key questions of testing: How do you know the software is good enough? How would you know if it wasn t good enough? How do you know you ve tested enough? 11

Thinking Like a Tester Lesson 17: Studying epistemology helps you test better Key topics in epistemology: Gathering/assessing evidence (tests!) Making valid inferences (if this works, that probably also works) Justification of beliefs: How do you know Antarctica is there? How do you know your brakes work? Avoiding fallacies in informal reasoning Using knowledge to make decisions 12

Thinking Like a Tester Lesson 20: Testing requires inference, not just comparison of output to expected results Must design tests and (usually) infer from a general spec the specific output that should result There is no universal table from inputs->outputs Must infer which other behaviors are also tested by each test 13

Thinking Like a Tester Lesson 22: Black box testing is not ignorance-based testing Requires lots of knowledge: of requirements, environment, configurations, data accesses, software this program works with, and of users Just avoids building tests based on the source code as the primary source of test ideas After all, to some extent the programmer can do that better, in unit tests 14

Thinking Like a Tester Lesson 24: All tests are an attempt to answer some question Epistemology again If a test doesn t answer any interesting questions, it probably isn t worth running Caveat: automatic generation may produce a huge number of tests where each in isolation is likely useless but the entire set of tests is highly effective When manually testing, or scripting a specific test, think about (1) the question and (2) how to interpret the answer (are there ambiguous responses?) 15

Thinking Like a Tester Lesson 25: All testing is based on models You have some model of what the software being tested should do You may have an explicit reference model You may model the various components and how they interact You very likely will model the user of the software! 16

Thinking Like a Tester Lesson 33: Use implicit as well as explicit specifications Almost all software systems have (highly) incomplete specifications and requirements You re going to have to decide what the software should do in cases that are not specifically addressed Use common sense, general notions of software safety, security, reliability, and usability Use domain knowledge of whatever the software is actually for 17

Thinking Like a Tester Lesson 38: Use heuristics to quickly generate ideas for tests Test boundaries & corner cases Test error messages/conditions Rip out the hard drive, unplug the network Test unusual configurations Run the tests that are annoying to run Avoid redundancy, do not duplicate For some critical conditions, automation s cheap and you re not sure it s totally redundant, try lots of small variations 18

Thinking Like a Tester Lesson 41: When you miss a bug, check whether the miss is surprising or just the natural outcome of your strategy Anyone can get unlucky Make sure you aren t systematically going to get unlucky in this particular way 19

Thinking Like a Tester Lesson 45: avoid 1287 This lesson I ve left out part of (if you want the rest, read the book!) Magic numbers are bad in test procedures & test code just as in normal programming Explain the reasoning behind a test procedure (whether for a person to follow or a machine to run) like Type 1287 characters into field 1 Why 1287? For a human: enter a very large (>1024) characters into the field For a machine: fieldval = genstring(largetextsize) 20