
d255c10afb38c1e4b41189b6e4653d5c.ppt
- Количество слайдов: 34
Advanced Software Engineering: Software Testing COMP 3702 (Lecture 1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin A Andrews - Software Carina Andersson Engineering: Software Testing'06
27 dm 3, 31 kg 4 KB read/write magnetic core memory A Andrews 64 KB read-only memory - Software Engineering: Software Testing'06
A Andrews - Software Engineering: Software Testing'06
Software on Wings 4 M LOC 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 [Brooks 75] A Andrews - Software Engineering: Software Testing'06
System Test Analysis Design Function test Implementation 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. A Andrews - Software Engineering: Software Testing'06
Quality attributes – ISO 9126 A Andrews - Software Engineering: Software Testing'06
Quality attributes – Mc. Call 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 ¨… 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 A Andrews - Software ¨ No one person can fully understand large systems Engineering: Software ¨ Numerous external interfaces and dependencies Testing'06
Origins of defects Defect sources Lack of education Poor communication Oversight Transcription Immature process Fault model Impact of software artifacts Errors Faults / Defects Failures Impact from user’s view Poor quality software User dissatisfaction A Andrews - Software Engineering: Software Testing'06
Whoops, that’s my calculator A Andrews - Software Engineering: Software Testing'06
Testing, Verification & Validation Testing The process of evaluating a program or a system Definition 2 ¨Verification Definition 1 ¨Verification ¨ satisfies the conditions at the start ¨ is the product right? of the phase ¨Validation ¨ is it the right product? ¨ satisfies the requirements 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 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 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 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 1. Revealing defects 2. Evaluating quality 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 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 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 A Andrews - Software Engineering: Software Testing'06
Mo d tu ri ty Ma Te st A Andrews - Software Engineering: Software Testing'06
Goals of the course 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 A Andrews - Software Engineering: Software Testing'06 performed. Knowledge Skills Attitudes
www. swebok. org A Andrews - Software Engineering: Software Testing'06
www. swebok. org A Andrews - Software Engineering: Software Testing'06
Lectures ¨ Theory + discussions ¨ Cover the basic parts of software testing 1. 2. 3. 4. 5. 6. 7. Introduction Overview Black-box testing, Reliability, Usability Technical Inspections, white-box testing Technical / Lifecycle, documentation Managerial Organization, tools Managerial Metrics, TMM Guest lecture, A Andrews - Software Engineering: Software Testing'06 E c o n o m ic
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 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 A Andrews - Software Engineering: Software Testing'06
Examination ¨Written exam based on the book and lab sessions ¨Lab sessions (approved) ¨Project (F / G / VG) A Andrews - Software Engineering: Software Testing'06
Schedule ¨Read ¨ Course program ¨ Projects in Software Testing ¨Check homepage ¨Not decided ¨ Extra Lab dates 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 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. 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/COMP 3702/Files. From. CD/Project_Sw. Test. pdf 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 A Andrews - Software Engineering: Software Testing'06