SE420 Software Quality Assurance

Similar documents
SE420 Software Quality Assurance

SE300 Software Engineering Practices

SE310 Analysis and Design of Software

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

Software Quality Engineering Courses Offered by The Westfall Team

Software Quality Engineering Courses Offered by The Westfall Team

18-642: Software Development Processes


Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

9. Verification, Validation, Testing

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

ISTQB Sample Question Paper Dump #11

Process Management. Adapted from Chapter 3, Futrell

CS SOFTWARE ENGINEERING QUESTION BANK

CMPT 275 Software Engineering

SOFTWARE QUALITY ASSURANCE (SQA) Chapter 1

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

CSE 435 Software Engineering. Sept 14, 2015

Bugs are costly... Kinds of Quality Assurance

Software processes, quality, and standards VTV, fast methods, automation

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

An Overview of Software Process

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Introduction to Software Engineering

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Introduction to Software Engineering

Real World System Development. November 17, 2016 Jon Dehn

1. Can you explain the PDCA cycle and where testing fits in?

CTFL - Version: 3. ISTQB Certified Tester Foundation Level

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

Agile-R. intecs Solutions. A new approach to combine Agile and EN for Railway software development. Agile-R. Trademark registered

Architectural Considerations for Validation of Run-Time Application Control Capabilities for Real-Time Systems

Implementation & Testing Plan. CS 307: Software Engineering Pascal Meunier

Teaching Software Quality Assurance in an Undergraduate Software Engineering Program

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Software Development Software Development Activities

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Chapter 6. Software Quality Management & Estimation

Software metrics. Jaak Tepandi

Software Engineering QUESTION BANK

Personal SE Project Management Process Lecture/Week 1. A. Winsor Brown

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Software verification and validation. Introduction

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Introduction to Software Testing

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Verification and Validation Working agile when developing a complex and safety critical product

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

MSc Software Testing MSc Prófun hugbúnaðar

Contents. List of Acronyms Preface

MSc Software Testing and Maintenance MSc Prófun og viðhald hugbúnaðar

Software Process 2/12/01 Lecture #

6.1 Introduction Objective Acceptance Testing CHAPTER 7: Black Box Testing Introduction Objectives...

Personal Software Process SM for Engineers: Part I

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

Software Engineering

Testing and Inspections (3C05/D22) Unit 11: Testing and Inspection. What is Testing?

Lecture 1: Introduction to Software Quality Assurance. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

SOFTWARE QUALIT ASSURANCE- QUESTION BANK

Evaluating Software Development Environments

Introduction to the Testing Maturity Model Enhanced TM (TMMe)

BASICS OF SOFTWARE TESTING AND QUALITY ASSURANCE. Yvonne Enselman, CTAL

Integration and Testing

Software Engineering

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

MCT610 Software Engineering Module Handbook

ISTQB CTFL BH QuestionsAnswers with Explanation

Testing. CxOne Standard

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Better Defect Analysis and Defect Prevention for Software Process Quality Improvement

Software tool support for software development

Lecture 9 Dependability; safety-critical systems

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

ICS 52: Introduction to Software Engineering

Improving the Test Process

AIRBORNE SOFTWARE VERIFICATION FRAMEWORK AIMED AT AIRWORTHINESS

Contents 1 Introduction 2 Is the Old-Established Software Engineering Paradigm Entirely Out of Date?

SOFTWARE ENGINEERING WITH JAVA

Software Engineering

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

Cost-Effective Verification and Validation of Modeling and Simulation

Implement Effective Computer System Validation. Noelia Ortiz, MME, CSSGB, CQA

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Course Information. Course Topics

Systems Analysis for Business Analysts (3 Day)

ROEVER ENGINEERING COLLEGE Elambalur,Perambalur DEPARTMENT OF CSE SOFTWARE QUALITY MANAGEMENT

Capability Maturity Model for Software (SW-CMM )

Disciplined Software Testing Practices

The Product and the Process The Product The Evolving Role of Software Software Software: A Crisis on the Horizon Software Myths Summary References

Testing. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

Chapter 8 : Informatics Practices. Software engineering- Process activities and Agile methods. Class XII ( As per CBSE Board) New Syllabus

KNOWLEDGE AREA: SOFTWARE QUALITY

A Review Paper on Software Testing

Pertemuan 2. Software Engineering: The Process

Transcription:

SE420 Software Quality Assurance Lecture 1 Introduction Part-2 January 16, 2017 Sam Siewert

Course Learning Objectives Theory of Overall SQA Process Process Models (Waterfall, Spiral, XP) using Agile Strategy Terminology (IEEE SWEBOK Chapter 4), Prepare for ISTQB Foundation Certification Principles and Methods for SQA Organization for SQA Practice Design Methods, Software Construction and Testing (Exam-1) 1. Requirements and Use of Basic Design Models (SA/SD from SE300, OOA/D from SE310) 2. Code Walk-throughs 3. Debugging 4. Feature Addition and Performance Tuning 5. Unit Testing, Exit Criteria (CSUs) 6. Code Inspection 7. Validation and Verification (Code Implements Design, Design is Correct) Practice, and Scaffold for Final Requirements and Design (Exam-2) 1. Integration and Test (CSUs to Build and Test CSCI) 2. System Testing (CSC) 3. Acceptance Testing 4. Regression and Test Automation 5. Overall Metrics, Process Improvement (SEI CMM) 6. Delivery and Release Notes 7. SQA Inspection Sam Siewert 2

Linux Skills Introduction Session Part-2 January 12, 2016 Sam Siewert

C Code Unit Development and Test Assignment #1 Questions? Examples-Crypto.zip Hands on Sessions to: 1. Download and unzip code 2. Build code 3. Modify Makefiles (for debug with g) 4. Re-build 5. Debug with DDD 6. Inspect variable values during debug 7. Set breakpoints 8. Step Over 9. Step Into 10. 11. If code SEGFAULTS, dump core and debug the core Sam Siewert 4

Powerful Features of Visual Debug Code Walkthroughs Static Analysis Dynamic too Display Data Structures Evolution Recursive Link List Trees Graphs Multiple Indirections CS317 B-tree Visualized Sam Siewert 5

Discussion SQA History (read SQA Text Chapter #1) Come to Class Prepared to Discuss Gurus (e.g. Edward Deming, Grady Booch, Barry Boehm, Edward Yourdon, Tom DeMarco, ) Organizations for SQA - http://www.sei.cmu.edu/ Process and Validation of Process - http://whatis.cmmiinstitute.com/ Assignment #1 Discussion I will Post Every Other Tuesday, We ll Discuss, Due Following Week on Friday Late Assignments 10% Penalty for 3-day late Turn-in [Sunday], After Monday, only with Instructor Permission Sam Siewert 6

Wisdom from QA, SQA & SWE Gurus W. Edwards Deming "You can expect what you inspect." Edsger Dijkstra - program testing can be used to show the presence of bugs, but never to show their absence E.W. Dijkstra, Notes on Structured Programming, T.H.-Report 70-WSE-03, Technological University, Eindhoven, 1970; http://www.cs.utexas.edu/users/ewd/ewd02xx/ewd249.pdf Barry Boehm Are we building the right product? [validation]; Are we building the product right? [verification] Sam Siewert 7

Overall SQA Process IEEE Computer SWEBOK version 3 Organizations for SQA - http://www.sei.cmu.edu/ Process and Validation of Process - http://whatis.cmmiinstitute.com/ Process Must Be Defined, Repeatable, and Improved Over Time Cost of Mistakes in Early Phases is Higher (E.g. Requirements or Design mistakes compared to Implementation) Organizational and Individual Engineer SQA More than One Acceptable Process (E.g. Agile strategy hosting Spiral process, using OO & Structured analysis and design) Phases Do Not Have to Be Fully Completed? Waterfall? Sam Siewert 8

Dimensions of SW Quality 1. Specification (What) What will be built 2. Design (How) How it will be Built (interface, function, protocol) 3. Development (How) Software Construction 4. Conformance Was the right thing built (validation) and does it work (verification) Basic Interrogatives (Start of Any New Project) Who? Team Where? Organization (Distributed Team?) Why? Marketing Study, Product Research, Customer Request What? Capabilities and Requirements Specification When? Schedules Enemy of Quality? Estimation with Defined Process? When is Testing Done? (Exit Criteria) How? Design Details and Software Construction Sam Siewert 9

Dimensions form Outline for SQA Process Concept, Statement of Work, Marketing Study, Team Building 1. SW Requirements Analysis, Specification, Validation 2. SW Design High Level Interfaces, Data flow, Concurrency, Objects/Modules Detailed State Machines, Features and Function, Algorithms Design Validation (E.g. Simulation with MATLAB) 3. SW Construction 4. SW Testing Unit Testing Integrated Testing Regression Testing Acceptance Testing 5. Maintenance Field Support, Sustaining Engineering Sam Siewert 10

Waterfall Model Complete One Phase and Do Not Return Requirements Waterfall with Feedback Modification (Go Back One or More Phases) Defined and Disciplined, but Criticized as Impractical Too Much Up Front Effort Difficult to Collaborate Rigid Design Construction Testing Maintenance Sam Siewert 11

Evolutionary or Spiral Model Phases, But Radial Distance and Area of Phase Represents Effort (Time / Cost) Plan to Re-visit Phases Goal is to Control Cost/Effort and Impact of Mistakes Design (High Level, Detailed, Validation) Detailed, Validated Specification Specification (Analysis, requirements, Validation) Detailed Design Project HLD Finalize Code Modules and Unit Tests (Code inspections) Finalize Design Define Services And interfaces Concept Code (walk-through) I & T Readiness Software Construction (Interfaces, Objects/Modules, Algorithms, Coding) Refine specification and re-validate Project Proposal Write/review Reference Project Unit Testing System Integration Test Evolutionary Prototype System Demonstration (Acceptance) Compliance (Testing: Unit, Integrated, Regression, Acceptance) All Modules Complete & Unit Tested Sam Siewert 12

SQA Many Activities to Coordinate SQA Management is Not Simple (Parallel with SWE Development) Activities Need to Be Scheduled at Appropriate Phase Can t have Code Inspection at a Walk-through Can t Do Integrated Testing Prior to Unit Tests Defined, Repeatable, Measureable, Repeatable Basic Requirements for Process May Tailor for Market Mission Critical Avionics Software In-Flight Infotainment System Mobile App for Android Storage Data Path Digital Media System Sam Siewert 13

Stretch Goals and Objectives Focus on Applying Requirements and Design Methods for SQA Use Case Studies (SQA Pitfalls) What Can Go Wrong? Why it Did? Cost to Fix? Requirements V&V (System and Acceptance Test) Design V&V (Unit and I&T) Agile Strategy for Evolutionary Process in SQA Sam Siewert 14

SQA Knowledge Survey Unit test drivers should attempt to modify the code being tested as little as possible: Edsger Dijkstra observed that Program testing can be used to show the presence of bugs, but never to show their absence!, so we most often define exit criteria for testing modules in terms of metrics such as path coverage rather than a zero defect claim: Path coverage criteria can be used only for White-box testing: Sam Siewert 15

SQA Knowledge Survey Black-box testing requires a mixed-mode source/assembly debugger, disassembly of source code into instructions and careful attention to compiler features such as short-circuit logic and conditional execution of instructions: Regression testing includes tests from all other phases of test development with the purpose to make sure that when a defect is fixed, that somehow new bugs are not introduced : Integration testing focuses on testing module-to-module interfaces and communication protocols to verify and validate module interfaces before they are integrated to compose an architecture design: Sam Siewert 16

SQA Knowledge Survey Module designs and code should be tested only for correct function and not stress, performance, or soak tested: Stress and soak time testing of a module with a unit test driver might reveal a memory leak in the module: Regression testing should only be run before a software product is shipped: If SQA Design is Concurrent with Software Design, Acceptance Testing would best be developed during development of: A_REQTS B_DESIGN C_CODING D_DON T KNOW Sam Siewert 17

SQA Knowledge Survey Ideally an acceptance test should be provided by the customer, but this rarely happens, so the software engineering team often must help define the acceptance test: System testing involves configuration of sub-system(s) from multiple software modules and a driver or external stimulus to exercise this sub-system: System test involves integration of sub-systems into a system tested in an end-to-end test environment, similar to how the system will be used: Sam Siewert 18