Advanced Software Engineering: Software Testing

Similar documents
Learning objectives. Documenting Analysis and Test. Why Produce Quality Documentation? Major categories of documents

Certified Tester Foundation Level(CTFL)

Verification and Validation

Concepts of Usability. Usability Testing. Usability concept ISO/IS What is context? What is context? What is usability? How to measure it?

Test documentation and Reporting

Examination Questions Time allowed: 1 hour 15 minutes

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

D50: Advances in Software Engineering. Case Study: Defining an Object-Oriented Development Process. Why Define Process?

Software Testing. Massimo Felici IF

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

<PROJECT NAME> IMPLEMENTATION PLAN

MONIKA HEINER.

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Part 5. Verification and Validation

Software Testing Interview Question and Answer

Saving the Project Brief document under its own name

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

Chapter 9 Quality and Change Management

Pearson Education 2007 Chapter 9 (RASD 3/e)

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

Software Engineering Lifecycles. Controlling Complexity

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Sample Exam Syllabus

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Expert Test Manager: Operational Module Course Outline

Software Engineering Fall 2014

Software Quality Assurance. David Janzen

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far

Cursul Aprilie

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Software Engineering (CSC 4350/6350) Rao Casturi

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

A ROADMAP TO STANDARDIZING THE IRIG 106 CHAPTER 10 COMPLIANT DATA FILTERING AND OVERWRITNG SOFTWARE PROCESS

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

PK0-003 Q&As. Project+ (2009) Pass CompTIA PK0-003 Exam with 100% Guarantee. Free Download Real Questions & Answers PDF and VCE file from:

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Testing in Agile Software Development

Testing Mission Critical Applications MCP UNITE 2012

Test Automation. Fundamentals. Mikó Szilárd

Software Architecture

Business Requirements Document (BRD) Template

SE 2730 Final Review

CUBE. Configuration Management Report. Hakan Nizamoğlu Yiğitalp Ertem Murat Toprak Saim Güveloğlu

Verification and Validation

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION. Saulius Ragaišis.

FedRAMP Initial Review Standard Operating Procedure. Version 1.3

Software Quality. Richard Harris

TMap Suite Test Engineer

QA Best Practices: A training that cultivates skills for delivering quality systems

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

Testing: improving quality of software, projects and processes

The requirements engineering process

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

Questions For Test Cases

IT SECURITY RISK ANALYSIS FOR MEANINGFUL USE STAGE I

INTRODUCTION TO SOFTWARE ENGINEERING

Quality Assurance and IT Risk Management

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

MTAT : Software Testing

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Basic Training in Software Testing (2 Days)

Test Plan. Co-op Evaluation System. Senior Project Team Members: Tyler Geery Maddison Hickson Casey Klimkowsky Emma Nelson.

(Objective-CS605 Software Engeenring-II)

Lecture 15 Software Testing

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.

Diploma in Software Testing 2.0 (HP)

MTAT : Software Testing

Adopting Agile Practices

Mind Q Systems Private Limited

Contents. Structure. The Web Site. References. Acknowledgments. Part I The Risk-Based Testing Approach 1. 1 Introduction to Risk-Based Testing 3

Symantec Data Center Migration Service

Dilbert Scott Adams. CSc 233 Spring 2012

Lecture 5: Requirements Specifications

Testing Tools. Software Testing and Verification. Lecture 14. Stephen M. Thebaut, Ph.D. Prepared by. University of Florida

Frontline Interoperability Test Team Case Studies

ANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. And

10. Software Testing Fundamental Concepts

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Number: DI-HFAC-80747C Approval Date:

TEXAS DEPARTMENT OF INFORMATION RESOURCES. Test Scenario. Instructions. Version DEC 2006

Product Quality Engineering. RIT Software Engineering

Manuel Oriol, CHCRC-C, Software Testing ABB

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo

CompTIA Project+ (2009 Edition) Certification Examination Objectives

Software Testing. Testing: Our Experiences

Requirements-driven Verification Methodology for Standards Compliance Serrie-justine Chapman (TVS)

CMSC 435: Software Engineering Section 0201

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino

Chapter 10. Testing and Quality Assurance

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

SDLC Maturity Models

Ingegneria del Software II academic year: Course Web-site: [

Information Systems. Software Engineering. MCQ - Part 2

Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE. Meaning of Quality. How would you define software quality? Common Measures.

Standard Glossary of Terms Used in Software Testing. Version 3.01

Transcription:

Advanced Software Engineering: Software Testing COMP 3705(L4) Sada Narayanappa Anneliese Andrews Thomas Thelin Carina Andersson Web: http://www.megadatasys.com Assisted with templates

News & Project News Project Research Papers Book time Advanced Software Engineering 2

Lecture Chapter 6 (Lab 5) Process Testing levels Chapter 7 Framework Documentation Appendix II Sample test plan Advanced Software Engineering 3

Test purpose priority Functionality Reliability Performance Security Safety Cost Maintainability Portability Advanced Software Engineering 4

Quality vs. Profit faults found market value time Advanced Software Engineering 5

Quality vs. Functionality Q F Advanced Software Engineering 6

Test process and levels V-model Advanced Software Engineering 7

Process Advanced Software Engineering 8

Testing process Advanced Software Engineering 9

Unit testing A unit = smallest possible testable software component Objects Procedures / functions Reusable components Tested in isolation Usually done by programmer A pair tester can help Should be Planned Public Also known as component, module or program testing Advanced Software Engineering 10

Test-driven development Write a test See it fail Make it run Make it right Advanced Software Engineering 11

Integration testing More than one (tested) unit Detecting defects On the interfaces of units Communication between units Helps assembling incrementally a whole system Non-functional aspects if possible Integration strategy: big-bang vs. incremental Done by developers/designers or independent testers Preferably developers and testers in collaboration Advanced Software Engineering 12

Incremental integration testing A T1 A T1 A T1 T2 B T2 T2 B T3 B T3 C T3 T4 C T4 D T5 Test sequence 1 Test sequence 2 Test sequence 3 Advanced Software Engineering 13

Top-down testing Testing Level 1 Level 1 sequence... Level 2 Level 2 Level 2 Level 2 Level 2 stubs Level 3 stubs Advanced Software Engineering 14

Bottom-up testing Test drivers Level N Level N Level N Level N Level N Testing sequence Test drivers Level N 1 Level N 1 Level N 1 Advanced Software Engineering 15

Interface testing Test cases A B C Advanced Software Engineering 16

System testing Testing the system as a whole Functional Functional requirements and requirements-based testing Business process based testing Non-functional Performance, stress, configuration, security,... As important as functional requirements Often poorly specified Must be tested Often done by independent test group Collaborating developers and testers Advanced Software Engineering 17

Regression testing Important? When? All test cases, some test cases (which test cases)? Advanced Software Engineering 18

Acceptance testing (α, β) Final stage of validation Customer (user) should perform or be closely involved Customer can perform any test they wish Final user sign-off Approach Mixture of scripted and unscripted testing Performed in real operation environment No new failures allowed Project Contract acceptance Customer viewpoint Validates that the right system was built Product Final checks on releases User viewpoint throughout the development; validation Advanced Software Engineering 19

Test process/documentation Model the software s environment Select test cases Test plan Test specification Test instruction Test report Run and evaluate test cases Trouble reports Measure test progress Advanced Software Engineering 20

Model the software s environment Test Specification Definition Textual Model-based Frequencies of use Priorities Advanced Software Engineering 21

Select test cases Manual, ad hoc Manual, method based Semi-automatic Automatic Advanced Software Engineering 22

Purpose of test case (planning) Organization All testers and other project team members can review and use them effectively Repeatability Know what test cases were last run and how so that you could repeat the same tests Tracking What requirements or features are tested? Tracking information s value depends on the quality of the test cases Proof of testing Confidence (quality) Detect failures Advanced Software Engineering 23

Attributes of test cases Power When a problem exists, the test will reveal it Valid When the test reveals a problem, it is actually a problem Value It reveals things you want to know about Credible It tests the right thing Representative Detects failures with high probability to manifest Maintainable Easy to revise when the product changes Repeatable Easy and inexpensive to reuse Unique It covers new parts of the software Easy to evaluate... Advanced Software Engineering 24

Run and evaluate test cases Running is (relatively) easy Evaluation is hard Exemption: automated regression test Advanced Software Engineering 25

Measurements How much is tested? Which is the quality of the product? How many faults / failures are removed? Remaining? When to stop testing? More in lecture 6 (Metrics) Advanced Software Engineering 26

Framework / Goals and Policies Chapter 7: Goals, Policies, procedures, process, tasks, activities. Documentation Test ware Information sources Standards Planning Configuration management Measurements Tools Goals Business goals increase market share Technical reduce number of failures Business/technical reduce support calls Political increase number of minorities in management positions Quantitative / qualitative goals Goals translate into policies Advanced Software Engineering 27

Documentation / Test ware Plan Checklists Statistics Test data... Test cases Test programs Test stubs Test drivers... Advanced Software Engineering 28

Information sources Requirements specification Design specification User manuals Prototypes Domain knowledge Requirements specification Design specification User manual Advanced Software Engineering 29

Standards IEEE 829-1998 IEEE Standard for Software Test Documentation IEEE 1012-1998 IEEE Standard for Software Verification and Validation IEEE 1008-1993 IEEE Standard for Software Unit Testing Advanced Software Engineering 30

Test planning What to test Who will test When to test How to test When to stop Advanced Software Engineering 31

Test Plan What should be included? Software Quality Assurance plan Master Test Plan Review plan Acceptance test plan System test plan Inspections Walkthroughs Low-level test plan Advanced Software Engineering 32

Master Test Plan Structure The formulation of the assignment Test strategy Threats, risks and measurements Organization Infrastructure (tools, environment) Global planning (schedules) Advanced Software Engineering 33

Test plan according to IEEE Std 829-1998 (APPENDIX II) a) Test plan identifier b) Introduction c) Test items d) Features to be tested e) Features not to be tested f) Approach g) Item pass/fail criteria h) Suspension criteria and resumption requirements i) Test deliverables j) Testing tasks k) Environmental needs l) Responsibilities m) Staffing and training needs n) Schedule o) Risks and contingencies p) Approvals Advanced Software Engineering 34

Test plan a) Test plan identifier b) Introduction Product to be tested, objectives, scope of the test plan Software items and features to be tested References to project authorization, project plan, QA plan, CM plan, relevant policies & standards c) Test items Test items including version/revision level Items include end-user documentation Defect fixes How transmitted to testing References to software documentation Advanced Software Engineering 35

Test plan d) Features to be tested Identify test design / specification techniques Reference requirements or other specs e) Features not to be tested Deferred features, environment combinations, Reasons for exclusion f) Approach How you are going to test this system Activities, techniques and tools Detailed enough to estimate Completion criteria (e.g. coverage, reliability) Identify constraints (environment, staff, deadlines) Advanced Software Engineering 36

Test plan g) Item pass/fail criteria What constitutes success of the testing Coverage, failure count, failure rate, number of executed tests, Is NOT product release criteria h) Suspension and resumption criteria For all or parts of testing activities Which activities must be repeated on resumption i) Test deliverables Test plan Test design specification, Test case specification Test procedure specification, Test item transmittal report Test logs, Test incident reports, Test summary reports Advanced Software Engineering 37

Test plan j) Testing tasks Including inter-task dependencies & special skills Estimates k) Environment Physical, hardware, software, tools Mode of usage, security, office space Test environment set-up l) Responsibilities To manage, design, prepare, execute, witness, check, resolve issues, providing environment, providing the software to test m) Staffing and Training needs Advanced Software Engineering 38

Test plan n) Schedule Test milestones in project schedule Item transmittal milestones Additional test milestones (environment ready) What resources are needed when o) Risks and Contingencies Testing project risks Contingency and mitigation plan for each identified risk p) Approvals Names and when approved Advanced Software Engineering 39

Test plan quality criteria Usefulness Will the test plan effectively serve its intended functions? Accuracy Is the test plan document accurate with respect to any statements of fact? Efficiency Does it make efficient use of available resources? Adaptability Will it tolerate reasonable change and unpredictability in the project? Clarity Is the test plan self-consistent and sufficiently unambiguous? Usability Is the test plan document concise, maintainable, and helpfully organized? Compliance Does the test plan meet externally imposed requirements? Foundation Is the test plan the product of an effective test planning process? Feasibility Is the test plan within the capability of the organization that must use it? Advanced Software Engineering 40

Aspects of the V&V process Survey Case study, Simulation Experiment Experiment Inspections Inspections Unit tests Integration test Function test System test Acceptance test Req s Design Code Advanced Software Engineering 41

Process simulation Aid to decision making Strategic management Should work be distributed across sites or centralized? Planning Forecast staffing levels needed across time Process improvement and technology adoption What impact will the introduction of inspections have? Understanding Training and learning Motivation Be able to model large-scale, real-world contexts Advanced Software Engineering 42

Model No model is perfect, but some models are useful Dynamic behaviour System behaviour can change over time Dynamic, discrete-event, etc. Feedback mechanisms Behaviour and decisions made at one point in the process impact others in complex or indirect ways Model scope A portion of the life cycle A development project Multiple, concurrent projects Input parameters Amount of incoming work Defect detection efficiency Effort for code rework Result variables Effort/cost Cycle-time etc Advanced Software Engineering 43

Quality factors Advanced Software Engineering 44

Influence diagram Inadequate Requirements Amount of rework Time in Requirement Phase Specification Accuracy Amount of Review Number of Personnel Schedule Pressure Budget Pressure Amount of New Market Requirements Communication Level Personnel Experience Functionality Productivity Advanced Software Engineering 45

Causal loop diagram - -productivity + developed software communication overhead + training overhead + - schedule gap + planned software personnel+ Advanced Software Engineering 46

Template model Module A: Code development Defect Injection Rate During Coding Undiscovered Defects To Module B Undiscovered Defects Code Method DI Coding Rate Incoming Work Completed Code Programmer Resource Code Method CR Advanced Software Engineering 47

Extended model Advanced Software Engineering 48

Calibration & Validation Model assessment Predictions of real-world events Is the model implementation error-free? Real-world system V&V against real-world Simulation output Do the model solve the end-user s problem? Validation of model Abstraction Testing & verifying code Calibration Real-world data Sensitivity analysis Model of realworld system V&V of code Computer simulation Advanced Software Engineering 49

Survey Size 6-200 developers Customer Private/Business/Internal Business Model Contract/Market Products Image processing Communication CASE tools Support systems Product Value Functional/Non-functional See Next Slide for results Advanced Software Engineering 50

State of the practice Ad hoc solutions Testing is introduced late Test cases are based on previous defects Testing is a low-status job. (Is changing) Level of automation is low Use of quantitative methods is scarce Advanced Software Engineering 51