From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Performance and Reliability 101 Brent Cromarty Ping Identity
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Engineering Secure Software. The Power of Source Code  White box testing Testers have intimate knowledge of the specifications, design, Often done by.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Improving Testability Dave Catlett Test Architect, Microsoft
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Test Environments Arun Murugan – u Rohan Ahluwalia – u Shuchi Gauri – u
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
SE 555 Software Requirements & Specification Requirements Validation.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Introduction to Software Testing
Approaches to ---Testing Software Some of us “hope” that our software works as opposed to “ensuring” that our software works? Why? Just foolish Lazy Believe.
Capability Maturity Model
Terms: Test (Case) vs. Test Suite
MGS Testing A High Level Overview of Testing in Microsoft Games Studio Joe Djorgee – Test Lead.
Software Testing Lifecycle Practice
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
N By: Md Rezaul Huda Reza n
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
© BJSS Limited Going Agile UK TMF - April 2011 Mark Crowther, Test Consultant.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Building a Culture of Quality, Real World Examples
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Jeffrey Murray Test Manager PowerPoint Microsoft Silicon Valley.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
1 PSP4a Introduction to the Personal Software Process Watts Humphrey Addison Wesley Longman c1997.
1 PSP4a Introduction to the Personal Software Process Watts Humphrey Addison Wesley Longman c1997.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Beginning Software Craftsmanship Brendan Enrick Steve Smith
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
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.
Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.
CS223: Software Engineering Lecture 25: Software Testing.
Software Engineering (CSI 321)
Software engineering – 1
Introduction to Software Testing
In the Senior Design Center
Software Testing Lifecycle Practice
Test Cases, Test Suites and Test Case management systems
White Box testing & Inspections
Presentation transcript:

From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft

Introduction My testing career started in 1993 Testing always last Testing often skipped Anyone can test “Testing in” quality My role in testing has changed significantly in the past 13 years Testing as a whole has matured Disclaimer – I know what I know and don’t claim to know more (and are not representative of microsoft)

Software testing 13 years ago Anyone can do it Technical knowledge not important Test is a stepping stone to development (often still true today) Testing occurs late in the product cycle

Software testing today Many teams using automation to produce consistent and frequent test results Often heavy emphasis on automation Testers are generally focused on: Test authoring: writing test cases and automated tests Test execution: running automated or manual test cases Functional and non-functional testing Other bug finding activities Some analysis Data analysis is often extensive, but is primarily based on defect data

Software testing tomorrow Too many bugs getting to customers Bugs need to be found sooner

Where are we going? Better bug prediction More testable software Defect prevention Inspections … How do we get there?

More testable software Testability is the degree to which components and systems are designed and implemented to make it easier for tests to achieve complete and repeatable code path coverage and simulate all usage situations in a cost efficient manner. In other words, testability determines how inexpensive it is to test. or What is the cost of testing?

Testability Testability is a design time attribute …but testers often drive testability into the design Ask questions and take action: How are we going to efficiently test this? Add testability sections to design and functional specifications Hold testability reviews

SOCK for testability Testability: SOCK Simple components are less expensive to test. Can the hardware be simulated? Can we test a multi-machine scenario on a single machine? Observable behavior and results are essential in order to determine pass or fail Can I determine if the internal structures were updated correctly? Can I tell which path the code took?

Control: can I test every nook and cranny? Can I change timeout values or other thresholds to simulate failures? Can I simulate every failure that a customer may hit? Knowledge is needed to understand expected results and compare with actual results What should happen in error cases? What circumstances cause this error? SOCK for testability

Defect analysis Known defects need to be analyzed Deep analysis can tell a lot, but it’s expensive Too lightweight of an analysis may not tell you enough Ask why Analyze to the point of action: Ask “why” until you have a sufficient root cause

Why did the program crash? The filename was longer than expected. Why did the program not expect a longer filename? The programmer was unfamiliar with file name limits Why was the programmer unfamiliar with the limits? They were new to windows programming and hadn’t been trained …or… Why was this missed during code review? Code review rules were often skipped or rushed. Ask Why?

Defect prevention Root cause analysis leads to defect prevention What could have been done to keep this defect from ever happening? Examples: Change compiler settings or use code analysis tools or scripts Build code often (continuous integration) Automatically run unit tests or verification tests at check-in

Software Inspections Not typically considered a “Test task” – but testers are well suited to drive this effort Extremely effective method of removing defects, but… Cost (training and time) tends to scare teams away

What happens when you inspect? Example of changes from inspection: Inspection Metrics Existing code Release A Release B Release C Inspection Effort0 hrs406 hrs276 hrs691 hrs Total LOC400K Inspection hrs / KLOC Total Effortn/a1062 hrs1101 hrs2169 hrs Percent in inspection0%38%25%32% Total hrs / KLOCn/a Defects / KLOC (after check-in) Measurements were performed on existing code base, and again on subsequent releases

How to make inspections less scary Team members do not know how to inspect Train the team; appoint a moderator Inspections perceived to slow down the project Schedule inspections; measure and track progress Team members fearful of inspections Non-confrontational meetings; remove threats; use as a learning experience for author

What am I trying to say here? We need to stop waiting for bugs! It’s great to find bugs before the customers do, but we need to find them earlier We need more emphasis on early detection and ultimately, prevention

How can this be achieved? Be an equal member of the engineering team Software quality is a tough problem Technical, creative people are needed to solve this problem We need clearly defined career paths for both managers and non-managers in order to keep these types of people in test Provide learning opportunities when needed

Key points Software testing is a maturing profession Need to move beyond quality control (writing test cases and running tests) Test needs to do more to drive quality improvements throughout the engineering process Technical skills are important in order to drive quality initiatives

Resources Software Inspections Tom Gilb and Dorothy Graham, Addison- Wesley The Practical Guide to Defect Prevention Harry Emil et al. Microsoft Press Random thoughts on testing

Questions?