Advanced Software Engineering 1 Advanced Software Engineering: Software Testing COMP 3705 (Lecture1) Sada Narayanappa Anneliese Andrews (Chair DU) Thomas.

Slides:



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

Lecture 8: Testing, Verification and Validation
Verification and Validation
System Integration Verification and Validation
Software Quality Assurance Plan
More CMM Part Two : Details.
Chapter 2 The Software Process
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
DAIMIHenrik Bærbak Christensen1 Testing Terminology.
Lecture 13 Revision IMS Systems Analysis and Design.
Fundamentals of Information Systems, Second Edition
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Software Process and Product Metrics
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Software Quality Assurance For Software Engineering && Architecture and Design.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Introduction to Software Testing
Verification and Validation
S/W Project Management
Extreme Programming Software Development Written by Sanjay Kumar.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Software Testing Lifecycle Practice
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
University of Sunderland CIFM03Lecture 4 1 Software Measurement and Reliability CIFM03 Lecture 4.
DEFECTS By K.KARTHIKE. WHAT IS DEFECTS? Software bug, a failure of computer software to meet requirements Software bug The term defect and its relationship.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
TESTING PRINCIPLES BY K.KARTHIKEYAN. PRINCIPLES Principle 1. Testing is the process of exercising a software component using a selected set of test cases,
Software Testing Testing types Testing strategy Testing principles.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Verification and Validation Assuring that a software system meets a user's needs.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson.
Defect Classes and the defect repository
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Project Management Methodology Project Closing. Project closing stage Must be performed for all projects, successfully completed or shut off by management.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Testing Integral part of the software development process.
 System Requirement Specification and System Planning.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Software Engineering (CSI 321)
CSC 480 Software Engineering
C++ Plus Data Structures
Chapter 10 Software Quality Assurance& Test Plan Software Testing
IT6004 – SOFTWARE TESTING.
Object oriented system development life cycle
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Introduction to Software Testing
BASIC DEFINITIONS Errors : An error is a mistake, misconception, or misunderstanding on the part of a software developer. In the category of developer.
Unit 1 :Basic Of Software Testing
Software Engineering I
Software Testing Lifecycle Practice
Presentation transcript:

Advanced Software Engineering 1 Advanced Software Engineering: Software Testing COMP 3705 (Lecture1) Sada Narayanappa Anneliese Andrews (Chair DU) Thomas Thelin Carina Andersson

Advanced Software Engineering 2 Lectures Theory + discussions Cover the basic parts of software testing 1. Introduction 2. Black-box, Reliability, Usability 3. Inspections, white-box testing 4. Lifecycle, documentation 5. Organization, tools 6. Metrics, TMM 7. Research presentation Technical Overview Technical / Manager Managerial EconomicEconomic

Advanced Software Engineering 3 Examination Written exam based on the book and lab sessions Lab sessions (approved) Project/presentations are grades See class web site for Assignment policy

Advanced Software Engineering 4 This week Read course program Project Read Projects in Software Testing/Pick research Decide Research/subject Discuss papers with me – describe why is it interesting Lab Prepare lab 1 Read Burnstein 1-3 Prepare Burnstein 4,12

Advanced Software Engineering 5 Schedule Read Course program Projects in Software Testing Check homepage If needed we will have Extra Lab dates Ask TA with Lab work

Advanced Software Engineering 6 Facts about testing System development: 1/3 planning 1/6 coding 1/4 component test 1/4 system test [Brooks75]

Advanced Software Engineering 7 Why use testing? Risk mitigation Faults are found early Faults can be prevented Reduce lead-time Deliverables can be reused …

Advanced Software Engineering 8 Why do faults occur in software? Software is written by humans Who know something, but not everything Who have skills, but aren’t perfect Who don’t usually use rigorous methods Who do make mistakes (errors) Under increasing pressure to deliver to strict deadlines No time to check, assumptions may be wrong Systems may be incomplete Software is complex, abstract and invisible Hard to understand Hard to see if it is complete or working correctly No one person can fully understand large systems Numerous external interfaces and dependencies

Advanced Software Engineering 9 TMM – Test Maturity Model Stages or levels to move from Chaotic, unstructured testing model TO Systematic, process driven approach Software is an engineering discipline Requires Quality in Process Quality in Product Are important

Advanced Software Engineering 10 TMM Test process Evaluation Guided by Capability Maturity model (CMM) Stages or levels to evolve from and to Each level, except Level 1, has structure Level 2 and above have: Structure Goals Organization structure

Advanced Software Engineering 11 Internal structure of TMM Level Testing Capability indicate Maturity Goals Maturity Sub goals Activities/tasks/responsibilities Implementation and Organizational adaptation 3 Critical views ManagerDeveloperUser/Client Supported By Achieved By Organized By Addresses Contains

Advanced Software Engineering 12 Test Maturity Model

Advanced Software Engineering 13

Advanced Software Engineering 14 TMM Levels Level1- No process defined; debug/testing are same Level2- Test & Debug tools/Test plan/Basic test process Level3- Test Org/Technical Training/Lifecycle/ Control & Monitor, support V Model Level4- Review process/test measurement/Software quality Evaluation – Test Logging with severity Level5-Defect prevention/Quality/Process optimization

Advanced Software Engineering 15 Good enough quality To claim that any given thing is good enough is to agree with all of the following propositions: It has sufficient benefits It has no critical problems The benefits sufficiently outweigh the problems In the present situation, and all things considered, further improvement would be more harmful than helpful James Bach, IEEE Computer, 30(8):96-98, 1997.

Advanced Software Engineering 16 Quality attributes – ISO 9126

Advanced Software Engineering 17 Quality attributes

Advanced Software Engineering 18 Origins of defects Defect sources Lack of education Poor communication Oversight Transcription Immature process Impact of software artifacts Errors Faults / Defects Failures Impact from user’s view Poor quality software User dissatisfaction Fault model

Advanced Software Engineering 19 Whoops, that’s my calculator

Advanced Software Engineering 20 Testing, Verification & Validation Definition 1 Verification is the product right? Validation is it the right product? Definition 2 Verification satisfies the conditions at the start of the phase Validation satisfies the requirements Testing The process of evaluating a program or a system

Advanced Software Engineering 21 Definitions Failure is an event, fault is a state of the software caused by an error Error – human mistake Fault / Defect – anomaly in the software Failure – inability to perform its required functions Debugging / Fault localization – localizing, repairing, retesting.

Advanced Software Engineering 22 A TEST CASE consists of: A set of inputs Execution conditions Expected outputs A Test is: Group of related test cases Procedures needed to carry out the test case Definitions IEEE Definition Organization may define additional attributes

Advanced Software Engineering 23 Scripted and non-scripted testing In scripted testing test cases are pre-documented in detailed, step-by-step descriptions Different levels of scripting possible Scripts can be manual or automated Non-scripted testing is usually manual testing without detailed test case descriptions Can be disciplined, planned, and well documented exploratory testing or ad-hoc testing

Advanced Software Engineering 24 Test oracle An oracle is the principle or mechanism by which you recognize a problem Test oracle provides the expected result for a test, for example Specification document Formula Computer program Person In many cases it is very hard to find an oracle Even the customer and end user might not be able to tell which is the correct behaviour

Advanced Software Engineering 25 Test Bed Environment contains all the hardware and software to test software component/system Examples: Simulators Emulators Memory checkers

Advanced Software Engineering 26 Other Definitions Important to understand the following definitions Quality– degree of meeting specified requirement Metric – quantitative measure Quality metric Correctness – perform the function Reliability –perform under stated condition Usability – effort to use the system Integrity – withstand attacks Portability/maintainability/interoperability …

Advanced Software Engineering 27 Principle 1 – purpose of testing Testing is the process of: exercising a software component using a selected set of test cases, with the intent of 1. Revealing defects 2. Evaluating quality

Advanced Software Engineering 28 Principles 2: A good test case – When the test objective is to detect defects, then a good test case is one that has high probability of revealing a yet undetected defect(s) 3: Test result – The results should be inspected meticulously 4: Expected output – A test case must contain the expected output

Advanced Software Engineering 29 Principles 5: Input – Test cases should be developed for both valid and invalid input conditions 6: Fault content estimation – The probability of the existence of additional defects in a software component is proportional to the number of defects already detected in that component 7: Test organization – Testing should be carried out by a group that is independent of the development group

Advanced Software Engineering 30 Principles 8: Repeatable – Tests must be repeatable and reusable 9: Planned – Testing should be planned 10: Life cycle – Testing activities should be integrated into the software life cycle 11: Creative – Testing is a creative and challenging task

Advanced Software Engineering 31 Goals of the course A test specialist - trained engineer- have knowledge of test-related Principles/processes/measu rements, standards, plans, tools, and methods, and learn how to apply - testing tasks to be performed. Knowledge Skills Attitudes

Advanced Software Engineering 32

Advanced Software Engineering 33

Advanced Software Engineering 34 Defect classes and Defect repository Functional Description Feature Feature interaction Interface description  Requirement/Specification Defect Classes Algorithmic and processing Control, Logic, and sequence Data Module interface description External interface description  Design Defect Classes Algorithmic and processing Control, Logic, and sequence typographical data flow Data Module interface Code documentation External hardware, software  Coding Defect Classes Test Harness Test design Test procedure  Testing Defect Classes Defect Classes Severity Occurrences  Defect Repository  Defect reports/analysis

Advanced Software Engineering 35 Lab sessions Preparation, Execution, Report 1. Black-box testing 2. Usage-based testing and reliability 3. White-box testing 4. Inspection and estimation 5. Software process simulation

Advanced Software Engineering 36 Project: Option 1 Learn a specific area of software testing Collect and summarize research information Critical thinking beyond the written information Present information in a structured way Peer review

Advanced Software Engineering 37 Project: Option 1 Research: solve a research problem; survey the state-of-the-art and identify the research problems in some area; develop and justify an extension to an existing technique; etc. Evaluation: apply and evaluate a technique or evaluate a commercial testing or, analysis tool. Practical: Use an existing technique to test a system or design and implement a prototype for a system.

Advanced Software Engineering 38 Project: Option 1 Read Projects in Software Testing Divide in groups (2-3 persons) Discuss with me

Advanced Software Engineering 39 Project: Option 2 Research paper presentation Find an interesting paper Many research papers we come across during class – pick one for presentation Have four paper presentation Choose your team and prepare Reading paper takes time – start early