Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson.

Similar presentations


Presentation on theme: "Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson."— Presentation transcript:

1 Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson

2 A Andrews - Software Engineering: Software Testing'06 27 dm 3, 31 kg 4 KB read/write magnetic core memory 64 KB read-only memory

3 A Andrews - Software Engineering: Software Testing'06

4 Software on Wings 4 M LOC

5 A Andrews - Software Engineering: Software Testing'06 Facts about testing System development:  1/3 planning  1/6 coding  1/4 component test  1/4 system test [Brooks75]

6 A Andrews - Software Engineering: Software Testing'06 Implementation Analysis Design Function test System Test

7 A Andrews - Software Engineering: Software Testing'06 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.

8 A Andrews - Software Engineering: Software Testing'06 Quality attributes – ISO 9126

9 A Andrews - Software Engineering: Software Testing'06 Quality attributes – McCall

10 A Andrews - Software Engineering: Software Testing'06 Why use testing?  Risk mitigation  Faults are found early  Faults can be prevented  Reduce lead-time  Deliverables can be reused  …

11 A Andrews - Software Engineering: Software Testing'06 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

12 A Andrews - Software Engineering: Software Testing'06 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

13 A Andrews - Software Engineering: Software Testing'06 Whoops, that’s my calculator

14 A Andrews - Software Engineering: Software Testing'06 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

15 A Andrews - Software Engineering: Software Testing'06 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.  A test case consists of:  A set of inputs  Execution conditions  Expected outputs

16 A Andrews - Software Engineering: Software Testing'06 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

17 A Andrews - Software Engineering: Software Testing'06 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

18 A Andrews - Software Engineering: Software Testing'06 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  Revealing defects  Evaluating quality

19 A Andrews - Software Engineering: Software Testing'06 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

20 A Andrews - Software Engineering: Software Testing'06 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

21 A Andrews - Software Engineering: Software Testing'06 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

22 A Andrews - Software Engineering: Software Testing'06  Test Maturity Model

23 A Andrews - Software Engineering: Software Testing'06 Goals of the course Knowledg e Skills Attitudes A test specialist who is trained as an engineer should have knowledge of test-related principles, processes, measurements, standards, plans, tools, and methods, and should learn how to apply them to the testing tasks to be performed.

24 A Andrews - Software Engineering: Software Testing'06 www.swebok.org

25 A Andrews - Software Engineering: Software Testing'06 www.swebok.org

26 A Andrews - Software Engineering: Software Testing'06 Lectures  Theory + discussions  Cover the basic parts of software testing  Introduction  Black-box testing, Reliability, Usability  Inspections, white-box testing  Lifecycle, documentation  Organization, tools  Metrics, TMM  Guest lecture, Technical Overview Technical / Manageri al Managerial EconomicEconomic

27 A Andrews - Software Engineering: Software Testing'06 Lab sessions Preparation, Execution, Report  Black-box testing  Usage-based testing and reliability  White-box testing  Inspection and estimation  Software process simulation

28 A Andrews - Software Engineering: Software Testing'06 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

29 A Andrews - Software Engineering: Software Testing'06 Examination  Written exam based on the book and lab sessions  Lab sessions (approved)  Project (F / G / VG)

30 A Andrews - Software Engineering: Software Testing'06 Schedule  Read  Course program  Projects in Software Testing  Check homepage  Not decided  Extra Lab dates

31 A Andrews - Software Engineering: Software Testing'06 This week  Read course program  Lecture 2 tomorrow  Project  Read Projects in Software Testing  Exercise on Thursday  Decide subject (deadline Thursday 17/3)  Lab  Prepare lab 1  Read Burnstein 1-3  Prepare Burnstein 4,12

32 A Andrews - Software Engineering: Software Testing'06 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.

33 A Andrews - Software Engineering: Software Testing'06 Project: Option 1  Read Projects in Software Testing  Divide in groups (2-3 persons)  Discuss with me  http://www.cs.du.edu/~andrews/andrews/COMP3702/FilesFromCD/Project/Project_SwTest.pdf

34 A Andrews - Software Engineering: Software Testing'06 Project: Option 2  Experiment participation.  Compare Fault finding  Unit test  code inspection  Two sessions 3-4 less total  Full credit


Download ppt "Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson."

Similar presentations


Ads by Google