Quality Assurance and Testing CSE 403 Lecture 22 Slides derived from a talk by Ian King.

Slides:



Advertisements
Similar presentations
By Rick Clements Software Testing 101 By Rick Clements
Advertisements

Defect testing Objectives
Test Yaodong Bi.
Chapter 10 Software Testing
Testing and Quality Assurance
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Outline Types of errors Component Testing Testing Strategy
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Process and Product Metrics
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Quality Assurance: Early Work Items. Introduction: Ian King Software Test Lead, Microsoft Corporation Manager of Test Development for Windows CE Base.
Quality Assurance: Test Development & Execution Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Trend Quality Assurance Edward Tsai 蔡木本 趨勢科技全球軟體研發部協理 April 22, 2003.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
A Security Review Process for Existing Software Applications
Software Testing.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Workflow In the Unified Process and Agile/Scrum processes.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Planning for security Microsoft View
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Software Engineering Lecture 8: Quality Assurance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS 160 and CMPE/SE 131 Software Engineering April 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Configuration Control (Aliases: change control, change management )
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Testing Integral part of the software development process.
The Challenges of Developing Games and Other High-Resolution Graphics Applications February 2007.
Tool Support for Testing
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
CSCE 548 Secure Software Development Risk-Based Security Testing
Integration Testing.
Requirements Analysis Scenes
Quality Assurance: Early Work Items
A Security Review Process for Existing Software Applications
Software Quality Assurance
Chapter 18 Software Testing Strategies
The role of the test organization in a Security Sensitive project
CMPE/SE 131 Software Engineering April 11 Class Meeting
Presentation transcript:

Quality Assurance and Testing CSE 403 Lecture 22 Slides derived from a talk by Ian King

Key Points Many different characteristics of quality Importance of having independent quality assurance from development The deliverable of QA is information Write it down QA is not free

QA ‘Good Practices’

Build Process Source control Undo the ‘oops Centralized build Be sure everyone is testing the same bits Avoid platform dependencies How often are new builds generated? Periodic Event-Driven Configuration management

Developer Practice Buddy builds Code review Code analysis tools Unit testing

Defect Process Why are defects tracked? How are defects tracked? What is the lifecycle of a bug? How are defects prioritized? Controlled check-ins/triage process Defect analysis: Defect source analysis Root cause analysis

Measuring quality Is it possible to quantify software quality?

Costs of quality assurance Programmer Productivity 8-20 LOC / day Building QA into the schedule

Quality Assurance: Test Development & Execution Slides derived from a talk by Ian King Developing Test Strategy

Elements of Test Strategy Test specification Test plan Test harness/architecture Test case generation Test schedule

Where is your focus? The customer Schedule and budget

Requirements feed into test design What factors are important to the customer? Reliability vs. security Reliability vs. performance Features vs. reliability Cost vs. ? What are the customer’s expectations? How will the customer use the software?

Test Specifications What questions do I want to answer about this code? Think of this as experiment design In what dimensions will I ask these questions? Functionality Security Reliability Performance Scalability Manageability

Test specification: example CreateFile method Should return valid, unique handle for initial ‘open’ for appropriate resource subsequent calls for shareable resource for files, should create file if it doesn’t exist Should return NULL handle and set error indicator if resource is nonexistent device inappropriate for ‘open’ action in use and not shareable unavailable because of error condition (e.g. no disk space) Must recognize valid forms of resource name Filename, device, ?

Test Plans How will I ask my questions? Think of this as the “Methods” section Understand domain and range Establish equivalence classes Address domain classes Valid cases Invalid cases Boundary conditions Error conditions Fault tolerance/stress/performance

Test plan: goals Enables development of tests Proof of testability – if you can’t design it, you can’t do it Review: what did you miss?

Test plan: example CreateFile method Valid cases execute for each resource supporting ‘open’ action opening existing device opening existing file opening (creating) nonexistent file execute for each such resource that supports sharing multiple method calls in separate threads/processes multiple method calls in single thread/process Invalid cases nonexistent device file path does not exist in use and not shareable Error cases insufficient disk space invalid form of name permissions violation Boundary cases e.g. execute to/past system limit on open device handles device name at/past name length limit (MAXPATH) Fault tolerance execute on failed/corrupted filesystem execute on failed but present device

Performance testing Test for performance behavior Does it meet requirements? Customer requirements Definitional requirements (e.g. Ethernet) Test for resource utilization Understand resource requirements Test performance early Avoid costly redesign to meet performance requirements

Security Testing Is data/access safe from those who should not have it? Is data/access available to those who should have it? How is privilege granted/revoked? Is the system safe from unauthorized control? Example: denial of service Collateral data that compromises security Example: network topology

Stress testing Working stress: sustained operation at or near maximum capability Goal: resource leak detection Breaking stress: operation beyond expected maximum capability Goal: understand failure scenario(s) “Failing safe” vs. unrecoverable failure or data loss

Globalization Localization UI in the customer’s language German overruns the buffers Japanese tests extended character sets Globalization Data in the customer’s language Non-US values ($ vs. Euro, ips vs. cgs) Mars Global Surveyor: mixed metric and SAE

Test Cases Actual “how to” for individual tests Expected results One level deeper than the Test Plan Automated or manual? Environmental/platform variables

Test case: example CreateFile method Valid cases English open existing disk file with arbitrary name and full path, file permissions allowing access create directory ‘c:\foo’ copy file ‘bar’ to directory ‘c:\foo’ from test server; permissions are ‘Everyone: full access’ execute CreateFile(‘c:foo\bar’, etc.) expected: non-null handle returned

Test Harness/Architecture Test automation is nearly always worth the time and expense How to automate? Commercial harnesses Roll-your-own Record/replay tools Scripted harness Logging/Evaluation

Test Schedule Phases of testing Unit testing (may be done by developers) Component testing Integration testing System testing Dependencies – when are features ready? Use of stubs and harnesses When are tests ready? Automation requires lead time The long pole – how long does a test pass take?

Where The Wild Things Are: Challenges and Pitfalls “Everyone knows” – hallway design “We won’t know until we get there” “I don’t have time to write docs” Feature creep/design “bugs” Dependency on external groups