1 Theme 2: Thinking Like a Tester, Continued. 2 Thinking Like a Tester Lesson 20: “Testing requires inference, not just comparison of output to expected.

Slides:



Advertisements
Similar presentations
Debugging ACL Scripts.
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Test process essentials Riitta Viitamäki,
Microsoft ® Office 2007 Training Security II: Turn off the Message Bar and run code safely P J Human Resources Pte Ltd presents:
Practical Testing Techniques. Verification and Validation Validation –does the software do what was wanted? “Are we building the right system?” –This.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Expert System Human expert level performance Limited application area Large component of task specific knowledge Knowledge based system Task specific knowledge.
Data - Information - Knowledge
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
The Future of Testing Chapter 21. Random testing Simply put, if testing is targeted at a particular area, it is because that area is either critical,
(c) 2007 Mauro Pezzè & Michal Young Ch 10, slide 1 Functional testing.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Introduction to Software Testing
Types and Techniques of Software Testing
CSE 403 Lecture 13 Black/White-Box Testing Reading: Software Testing: Principles and Practices, Ch. 3-4 (Desikan, Ramesh) slides created by Marty Stepp.
Test Design Techniques
Terms: Test (Case) vs. Test Suite
Or how to find bugs faster…
System/Software Testing
Software testing techniques Software testing techniques Testing based on specifications Presentation on the seminar Kaunas University of Technology.
Software Testing. Definition To test a program is to try to make it fail.
Automated SW testing Lukáš Miňo
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
Microsoft ® Office 2007 Training Security II: Turn off the Message Bar and run code safely presents:
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
 Black Box Testing Techniques © Sheridan College SYST30009-Engineering Quality Software 4.
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Week 6 MondayTuesdayWednesdayThursdayFriday Testing III Reading due Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Software engineering - 2 Section 8. QUIZ Show how it is possible to determine the height of a tall building with the aid of a barometer.
Informatics 43 – May 3, Restatement of goals Want to verify software’s correctness  Need to test  Need to decide on test cases  No set of test.
Presented By:- Himanshu Rajkiran Sudipta.  History  Introduction  System Specification(H/W & S/W)  Feasibility Study  Entity-Relationship Diagram.
In today’s lesson we will be looking at: what we mean by the software development lifecycle the phases in the lifecycle We will focus particularly on testing:
Software Testing.
Testing Tutorial 7.
Let the group project commence!
Software Testing.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Chapter 9, Testing.
CS5123 Software Validation and Quality Assurance
Software engineering – 1
Applied Software Implementation & Testing
Important Software Performance Testing That Ensure High Quality Solutions.
Introduction to Software Testing
CS240: Advanced Programming Concepts
CSE 403 Lecture 13 Black/White-Box Testing Reading:
CSE403 Software Engineering Autumn 2000 More Testing
Applying Use Cases (Chapters 25,26)
Java & Testing.
Testing.
Presentation transcript:

1 Theme 2: Thinking Like a Tester, Continued

2 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

3 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

4 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?)

5 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!

6 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

7 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

8 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

9 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)”