Quality Assurance: Early Work Items. Introduction: Ian King Software Test Lead, Microsoft Corporation Manager of Test Development for Windows CE Base.

Slides:



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

QuEdge Testing Process Delivering Global Solutions.
Software Quality Assurance Plan
Chapter 4 Quality Assurance in Context
W5HH Principle As applied to Software Projects
Stepan Potiyenko ISS Sr.SW Developer.
Rational Unified Process
Software Engineering.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Test Environments Arun Murugan – u Rohan Ahluwalia – u Shuchi Gauri – u
Iterative development and The Unified process
Quality Assurance and Testing CSE 403 Lecture 22 Slides derived from a talk by Ian King.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Quality Assurance: Test Development & Execution Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Quality Assurance: Test Development & Execution Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation.
Effective Methods for Software and Systems Integration
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
The Problem with Good Enough Software Bj Rollison Test Training Manager Microsoft, Inc.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Development Life Cycle Decisions Project Management Disciplines Stacey Shearn September 8, 2005.
Semester 1, 2003 Week 7 CSE9020 / 1 Software Testing and Quality Assurance With thanks to Shonali Krishnaswamy and Sylvia Tucker.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Testing Lifecycle Practice
© Blackboard, Inc. All rights reserved. Back to the Feature: An Agile, User-centric Software Development Lifecycle Cindy Barry Senior Product Manager Martha.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
1 Microsoft’s Process Redmond in the 90’s Article by Roger Sherman, Director of Testing, Worldwide Products Group, Microsoft.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Testing Workflow In the Unified Process and Agile/Scrum processes.
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.
Jeffrey Murray Test Manager PowerPoint Microsoft Silicon Valley.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Software Testing Process By: M. Muzaffar Hameed.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Systems Development Life Cycle
Jeffrey Murray Principle Test Manager – PowerPoint Problems with PowerPoint? … you can blame me!
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Internal developer tools and bug tracking Arabic / Hebrew Windows 3.1Win95 Japanese Word, OneNote, Outlook
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Advanced Higher Computing Science
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
Managing the Project Lifecycle
Chapter 18 Maintaining Information Systems
Software testing
Quality Assurance: Early Work Items
CSE 403 Software Engineering
Applied Software Implementation & Testing
Introduction to Software Testing
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
APPLICATION LIFECYCLE MANAGEMENT(ALM) QUALITY CENTER(QC)
Lesson 1 Understanding Software Quality Assurance
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
APPLICATION LIFECYCLE MANAGEMENT(ALM) QUALITY CENTER(QC)
Software Testing Lifecycle Practice
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Quality Assurance: Early Work Items

Introduction: Ian King Software Test Lead, Microsoft Corporation Manager of Test Development for Windows CE Base OS (kernel, drivers, file systems) Previous projects at Microsoft: MSN 1.x online service, Site Server 3.0, TransPoint online service, Speech API 5.0 Previously: business analyst, Pacific Telecom

Introduction to QA concepts QA, QC and testing Quality Assurance: making it right the first time Quality Control: making it right every time (i.e. in production) QA and QC both include testing as an activity

What is the ‘value add’ of QA? Classic research: fixing a defect is cheaper the earlier you catch it $: found in spec process $$: found during implementation $$$: found during post-implementation testing $$$$: found in the field QFE, service packs, product recalls, lawsuits Customer confidence

‘Make It Didn’t Happen’ The best bug is the one that was never born! QA is about process Design review Implementation review Structured testing and evaluation Instrumentation/testability Best practices QA does not mean bodies: Pacific Telecom Lesson of History: good process leads to fewer defects

The deliverable of QA QA delivers information What is known about the quality of the code? What are the risks of known defects? What is not known, i.e. untested? What risks may arise from unknown defects? E.g. “We didn’t test for malicious use” “Bearer of bad news” “Validation of the vision”

Scaling to the project Large project Individual design/programming and QA teams Another team to coordinate and administer Medium-sized project QA often assumes coordination role Small/solo project Develop ‘functional schizophrenia’ Write it down

QA is everyone’s job! …testing is only one part.

What does QA do early in the development cycle? Publish (and promote) QA requirements Review design work Develop testing strategy

Establish QA Requirements Statement of requirements Feature specifications Implementation specifications Design change process Development schedule Build process Developer practice Defect process Release criteria

Statement of Requirements: Why are we here? Who is the customer? What problem are we solving for the customer? Should NOT include: Feature details Implementation details

Feature Specifications What will we make to solve the customer’s problem? Does not prescribe implementation Descriptive: Workflow Actor Interface

Implementation specifications Typically for large projects, but always beneficial How is a feature implemented? Details of resource usage, exception handling, use of published standards, etc. Dependency on other feature implementation Dependency on external factors Development environment (SDKs) Other products’ modules (e.g. MSXML)

Design Change Process How are design changes documented? DCR vs. “bug” How are change decisions made? When has “the ship sailed”? Design Freeze

Development Schedule When will specs be complete? When will code be available? When will features be complete? When will code be stable? Beta releases? Leave enough time for the endgame: Complete test pass on Release Candidate Test of final installation media (may include digital signing, release notes)

To beta, or not to beta Quality bar for beta release: features mostly work if you use them right Pro: Get early customer feedback on design Real-world workflows find many important bugs Con: Do you have time to incorporate beta feedback? A beta release takes time and resources

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

Developer Practice Private builds 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

Release Criteria When are we done? Indicators of completeness: Quantity of defects being found Severity of defects being found Completeness of testing

Review Design Work Are these documents sufficient to scope the project? Are they logically consistent? Is the project testable? Test hooks, registry entries, compiler directives Instrumentation Does the project address the stated requirements?

Review Design Work (con’t.) Evaluate use scenarios Sensible control flows? Features appropriate to use? (E.g. quiesce server) Evaluate failure scenarios Meaningful error feedback Single points of failure Cascading failures Understand dependencies

Developing Test Strategy

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

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 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 Harness/Architecture Test automation is nearly always worth the time and expense How to automate? Commercial harnesses Roll-your-own (TUX) Record/replay tools Scripted harness Logging/Evaluation

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

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