Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement



Similar documents
Software quality engineering. Quality assurance. Testing

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

CS 451 Software Engineering Winter 2009

Introduction to Automated Testing

Chapter 8 Software Testing

Software testing. Objectives

Software Reliability and Safety CSE 8317 Spring 2015

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur


Software Process for QA

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Testing Interview Questions

Custom Software Development Approach

The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough?

Presentation: 1.1 Introduction to Software Testing

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects

Testing of safety-critical software some principles

Testing Introduction. IEEE Definitions

Business Application Services Testing

Standard Glossary of Terms Used in Software Testing. Version 3.01

The SPES Methodology Modeling- and Analysis Techniques

IEEE ComputerSociety 1 Software and Systems Engineering Vocabulary

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

How To Test For Elulla

Test case design techniques II: Blackbox testing CISS

HOW TO CREATE USEFUL SOFTWARE PROCESS DOCUMENTATION ABSTRACT

Software Test Plan (STP) Template

ICAPRG529A Apply testing techniques for software development

Standard Glossary of Terms Used in Software Testing. Version 3.01

VDM vs. Programming Language Extensions or their Integration

(BA122) Software Engineer s Workshop (SEW)

Cut. software development. Improve defect removal efficiency while simultaneously lowering costs and shortening schedules.

Metrics in Software Test Planning and Test Design Processes

How CMMI contributes to Software Testing

FSW QA Testing Levels Definitions

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Testing Overview and Black-Box Testing Techniques

TEST PLAN Issue Date: <dd/mm/yyyy> Revision Date: <dd/mm/yyyy>

Basic Testing Concepts and Terminology

Topics in Website Testing. [Reading assignment: Chapter 14, pp ]

CS SOFTWARE TESTING

Techniques and Tools for Rich Internet Applications Testing

Testing Tools Content (Manual with Selenium) Levels of Testing

Quality Assurance Training Program

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Model-based Testing: Next Generation Functional Software Testing

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

CSTE Mock Test - Part III Questions Along with Answers

Introduction to Software Engineering. 8. Software Quality

Modern SOA Testing. A Practitioners Guide to. July 2011

Example Software Development Process.

CMSC 435: Software Engineering Course overview. Topics covered today

Introduction of ISO/DIS (ISO 26262) Parts of ISO ASIL Levels Part 6 : Product Development Software Level

ERP Test Plan. Revised 7/5/10. SYSTEM TEST PLAN and PEOPLESOFT FMS TEST SCRIPTS SpearMC Consulting. Page 1 of 15

Software Testing. Quality & Testing. Software Testing

Test case design techniques I: Whitebox testing CISS

Basic Unix/Linux 1. Software Testing Interview Prep

Table of contents. Enterprise Resource Planning (ERP) functional testing best practices: Ten steps to ERP systems reliability

How To Write Software

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

MSE-201 SOFTWARE PROJECT MANAGEMENT

An Automated Testing Tool Using UI Structure

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Karunya University Dept. of Information Technology

CS314: Course Summary

What Is Specific in Load Testing?

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Sample Exam Foundation Level Syllabus. Mobile Tester

Advancements in the V-Model

Desktop, Web and Mobile Testing Tutorials

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Model-Driven Software Development for Robotics: an overview

Software Development Life Cycle

Test Plan Template: (Name of the Product) Prepared by: (Names of Preparers) (Date) TABLE OF CONTENTS

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Choosing A Load Testing Strategy Why and How to Optimize Application Performance

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Body of Knowledge General Knowledge (16 questions) Quality principles Benefits of software quality Organizational and process benchmarking

Common Testing Problems: Pitfalls to Prevent and Mitigate

Software Engineering. How does software fail? Terminology CS / COE 1530

Introducing the Dezyne Modelling Language

Software Testing. System, Acceptance and Regression Testing

Certified Software Quality Engineer (CSQE) Body of Knowledge

MOBILE APPLICATION TESTING ENGINEER

Test Data Management Best Practice

CSC 342 Semester I: H ( G)

Test Case Design Techniques

Software Engineering Question Bank

Transcription:

Software Quality Engineering Slide (Ch.12) 1 Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian, tian@engr.smu.edu www.engr.smu.edu/ tian/sqebook Chapter 12. Testing Techniques: Adaptation, Specialization, and Integration Adaptation to Test Sub-phases Specialized Testing Techniques Integration and Web Testing Case Study

Software Quality Engineering Slide (Ch.12) 2 Applications of Testing Techniques Major testing techniques covered so far: Ad hoc (non-systematic) testing. Checklist-based testing. Partition-based coverage testing. Musa s OP for UBST. Boundary testing (BT). FSM-based coverage testing. Markov chains and UMMs for UBST. Control flow testing (CFT). Data flow testing (DFT). Application and adaptation issues: For different purposes/goals. In different environments/sub-phases. Existing techniques: select/adapt. May need new or specialized techniques.

Software Quality Engineering Slide (Ch.12) 3 Testing Sub-Phases Annotated V-model for testing sub-phases: Fig 12.1 (p.204) Original sub-phases in V-model: Operational use (not testing, strictly). System test for product specification. Integration test for high-level design. Component test for low-level design. Unit test for program code. Additional sub-phases/specialized testing: Diagnosis test through all sub-phases. Beta test for limited product release. Acceptance test for product release. Regression test for legacy products.

Software Quality Engineering Slide (Ch.12) 4 Unit Testing Key characteristics: Object: unit (implemented code) function/procedure/subroutine in C, FORTRAN, etc. method in OO languages Implementation detail WBT. (BBT could be used, but less often.) Exit: coverage (reliability undefined). Commonly used testing techniques: Ad hoc testing. Informal debugging. Input domain partition testing and BT. CFT and DFT.

Software Quality Engineering Slide (Ch.12) 5 Component Testing Key characteristics: Object: component ( unit), 2 types. I. collection of units in C/FORTRAN/etc. implementation detail WBT. II. class in OO languages reusable component BBT. Exit: coverage (sometimes reliability). Commonly used testing techniques: for traditional systems (component I) unit testing, but at larger scale for OOS/COTS/CBSE (component II) system testing, but at smaller scale see system testing techniques later

Software Quality Engineering Slide (Ch.12) 6 Integration Testing Key characteristics: Object: interface and interaction among multiple components or subsystems. Component as a black-box (assumed). System as a white-box (focus). Exit: coverage (sometimes reliability). Commonly used testing techniques: FSM-based coverage testing. Other techniques may also be used. Sometimes treated as system testing see system testing techniques below.

Software Quality Engineering Slide (Ch.12) 7 System Testing Key characteristics: Object: whole system and the overall operations, typically from a customer s perspective. No implementation detail BBT. Customer perspective UBST. Exit: reliability (sometimes coverage). Commonly used testing techniques: UBST with Musa or Markov OPs. High-level functional checklists. High-level FSM, possibly CFT & DFT. Special case: as part of a super -system in embedded environment test interaction with environment.

Software Quality Engineering Slide (Ch.12) 8 Acceptance Testing Key characteristics: Object: whole system. but defect fixing no longer allowed. Customer acceptance in the market. Exit: reliability. Commonly used testing techniques: Repeated random sampling without defect fixing. ( assumption for IDRMs, Ch.22.) UBST with Musa or Markov OPs. External testing services/organizations may be used for system certification.

Software Quality Engineering Slide (Ch.12) 9 Beta Testing Key characteristics: Object: whole system Normal usage by customers. Exit: reliability. Commonly used testing techniques: Normal usage. Ad hoc testing by customers. (trying out different functions/features) Diagnosis testing by testers/developers to fix problems observed by customers.

Software Quality Engineering Slide (Ch.12) 10 Testing Sub-Phases: Summary Summary: Table 12.1 (p.209) Key characteristics for comparison: Object and perspectives. Exit criteria. Who is performing the test. Major types of specific techniques. Who question not covered earlier: Dual role of programmers as testers in unit testing and component testing I. Customers as testers in beta testing. Professional testers in other sub-phases. Possible 3rd party (IV&V) to test reusable components & system acceptance.

Software Quality Engineering Slide (Ch.12) 11 Specialized Testing Specialized testing tasks: Some do not fit into specific sub-phases. Different goals (other than reliability). Non-standard application environment. Our coverage: Defect diagnosis testing. Defect-based testing. Regression testing. Testing beyond programs. Testing for other goals/objectives.

Software Quality Engineering Slide (Ch.12) 12 Defect Diagnosis Testing Context of defect diagnosis testing: In followup to discovered problems by customers or during testing. Pre-test: understand/recreate problems. Test result: faults located. Followup with fault removal and re-run/re-test to confirm defect fixing. Defect diagnosis testing: Typically involve multiple related runs. Problem recreation as the starting point. Perturbation and observation. Domain knowledge important. More recorded defect information less reliance on defect diagnosis. Defect-based techniques (below) useful.

Software Quality Engineering Slide (Ch.12) 13 Defect-Based Testing General idea and generic techniques: Focus: discovered or potential defects (and related areas). Ad hoc testing based on defect guesses. Risk identification risk-based testing. (Part IV, esp. Ch.21) Defect injection and mutation testing. Defect injection and testing: Inject known defect (seed known fault). Test for both seeded and ingenuous faults. Missed faults testing technique. Also used in reliability modeling. Mutation testing defect injection testing, but systematic mutants used.

Software Quality Engineering Slide (Ch.12) 14 Regression Testing Context of regression testing: In software maintenance and support: ensure change negative impact. In legacy software systems: ensure quality of remaining functions, during development/product update, new part new development, focus: integration sub-phase & after. Re-test to verify defect fixing as well as no unintended consequences. Regression testing techniques: Specialized analysis of change: -analysis. Focused testing on (new) -part. Integration of old and new.

Software Quality Engineering Slide (Ch.12) 15 Other Specialized Testing Testing beyond programs: Embedded and heterogeneous systems: test interactions with surroundings. Web testing, in case study later. Testing to achieve other goals: Performance testing; Stress testing; Usability testing, etc. Dynamic analysis and related techniques: Simulation to reduce overall cost. Prototyping, particularly in early phases. Timing and sequencing analysis. Event-tree analysis (ETA), Chapter 16.

Software Quality Engineering Slide (Ch.12) 16 Test Integration General idea: Many activities and tasks. Different techniques. Individual advantages and limitations. Much commonality exists. Possibility of integration? Test integration: Advantages combined strength benefit. common elements cost. flexibility.

Software Quality Engineering Slide (Ch.12) 17 Hierarchical Web Testing Case study from Chapter 10 continued: Web navigation modeled by FSMs. UBST using UMMs to overcome state explosion problem of FSMs. Guiding existing web testing. (they typically focus on a small unit/facet) Lack of structure for overall hits use of simplified OPs (Musa OPs) Overall approach: Top-tier: flat (Musa) OP. Middle-tier: UMMs. Bottom-tier: existing web testing.

Software Quality Engineering Slide (Ch.12) 18 Existing Web Testing Web functionality testing: Focus on the web components identified in Ch.10. HTML syntax checking via various tools. Link checking. Form testing. Verification of end-to-end transactions. Java and other program testing. Beyond web functionality testing: Load testing. Usability testing. Browse rendering.

Software Quality Engineering Slide (Ch.12) 19 Web Testing (from Ch.10) Testing web navigations: FSM-based testing in Chapter 10. Web crawling via robots. UMMs for web testing (Chapter 10). Availability/usage of web logs. Some observations: skewed top hit pages and x-references the impact of structural hierarchy

Software Quality Engineering Slide (Ch.12) 20 Hierarchical Web Testing Overall approach: Top-tier: flat (Musa) OP for simplicity and skewed distribution. Middle-tier: UMMs importance of highly used navigations. Bottom-tier: existing web testing no need to re-invent wheels Implementation: Fig 12.2 (p.218) TAR (top access report) top-tier CPR (call-pair report) to form clusters middle tier UMMs. UMM refinement bottom-tier.