18
Lecture review Big themes Exam Software Testing Course Review (version 1.4) Conrad Hughes University of Edinburgh March 20, 2009 Conrad Hughes Software Testing Course Review

Software Testing Course Review

Embed Size (px)

Citation preview

Page 1: Software Testing Course Review

Lecture reviewBig themes

Exam

Software Testing Course Review(version 1.4)

Conrad Hughes

University of Edinburgh

March 20, 2009

Conrad Hughes Software Testing Course Review

Page 2: Software Testing Course Review

Lecture reviewBig themes

Exam

Outline

1 Lecture review

2 Big themes

3 Exam

Conrad Hughes Software Testing Course Review

Page 3: Software Testing Course Review

Lecture reviewBig themes

Exam

Introduction

What is testing?

What can we test?

What can testing permit us to say?

Issues:

Modelling environmentVerifying results (oracle)

What makes one test better than another?

Measurement

Lifecycle

Conrad Hughes Software Testing Course Review

Page 4: Software Testing Course Review

Lecture reviewBig themes

Exam

Types of testing

What do we look at?

Specification (“black box”)Implementation/structure (“white box”)

Do we execute things?

Yes: dynamicNo: review, analysis

Conrad Hughes Software Testing Course Review

Page 5: Software Testing Course Review

Lecture reviewBig themes

Exam

Unit testing

Isolation of small testable components

JUnit

[also mentioned FIT]

Conrad Hughes Software Testing Course Review

Page 6: Software Testing Course Review

Lecture reviewBig themes

Exam

Testing in the Lifecycle

Failures are common and persistent in large software projects.

Bugs are really expensive to fix if we don’t catch them early.

Different lifecycles treat testing differently.

Conrad Hughes Software Testing Course Review

Page 7: Software Testing Course Review

Lecture reviewBig themes

Exam

Specification-based testing

Random or systematic testing?

Category-partition method

ITFs, parameters, environmentCategoriesConstraints (reduce combinations)SpecificationImplement test casesExecuteEvaluate

Conrad Hughes Software Testing Course Review

Page 8: Software Testing Course Review

Lecture reviewBig themes

Exam

Models

All kinds:

Decision treesWorkflowsFinite state machinesGrammarsFlow between modal dialogs in GUIs

Uses:

Manage randomized testingFramework for measuring coverageMethod for reducing number of tests

Conrad Hughes Software Testing Course Review

Page 9: Software Testing Course Review

Lecture reviewBig themes

Exam

Structural testing: control flow

Control Flow Graph: basic blocks and edges

Coverage and adequacy:

StatementBranchConditionBasic/compound condition, MC/DCPath, loop interior boundary

Subsumption!

Conrad Hughes Software Testing Course Review

Page 10: Software Testing Course Review

Lecture reviewBig themes

Exam

Structural testing: data flow

Programs process data, so what happens to the data?

Graph/vertex/edge terminology(Global) defs, computational uses, predicate usesDef-clear paths

Coverage:

All-defsAll-p-uses, all-c-uses, all/someAll-uses,All-du-pathsAll-paths

Subsumption!

Conrad Hughes Software Testing Course Review

Page 11: Software Testing Course Review

Lecture reviewBig themes

Exam

Mutation testing

Small variations to code

Modelled on small programmer errors in software development

Assumes:

Modelled representatively on human defectsProgram is “close” to correct (competent programmerhypothesis)Coupling effect hypothesis — tests good for small faults willalso be good for large ones

Measure test suite quality

Measure residual defect density

Conrad Hughes Software Testing Course Review

Page 12: Software Testing Course Review

Lecture reviewBig themes

Exam

Integration testing

Isolation of components hides component interactions

So: systematically test interactions by integration

Incrementally: top-down/bottom-up

Can be laborious

Do we re-execute them all?

Adequacy: coupling-based coverage

All-coupling-defsAll-coupling-usesetc.

Conrad Hughes Software Testing Course Review

Page 13: Software Testing Course Review

Lecture reviewBig themes

Exam

Regression testing

Software evolves

“Fixes” don’t always fix the bug

Many fixes introduce new bugs

So re-use old tests?

Minefield vs cloud analogies

Which ones, how often, etc.

Maintenance an issue

Tool for managing change

Conrad Hughes Software Testing Course Review

Page 14: Software Testing Course Review

Lecture reviewBig themes

Exam

GUI testing

Lots of different things to consider:

Usability, intuitiveness, guideline compliance, . . .

Used to be very laborious

Can apply coverage again

Conrad Hughes Software Testing Course Review

Page 15: Software Testing Course Review

Lecture reviewBig themes

Exam

System & higher level testing

Capacity

Stress

Usability

Security

Documentation

Performance

Reliability

Availability

Compliance

Configuration

. . . and think how this all fits into the lifecycle

Conrad Hughes Software Testing Course Review

Page 16: Software Testing Course Review

Lecture reviewBig themes

Exam

What/how to test

Functional and non-functional requirements

Systematically vs randomly

What’s the right answer? (Oracle)

Software lifecycle

Conrad Hughes Software Testing Course Review

Page 17: Software Testing Course Review

Lecture reviewBig themes

Exam

Test quality

Coverage

Test “inadequacy”Subsumption: better tests?Control flowModelsAnything which allows you to map the Software Under Test

Mutation testing

Conrad Hughes Software Testing Course Review

Page 18: Software Testing Course Review

Lecture reviewBig themes

Exam

Exam

Same format as in recent years: 2 of 3 questions.

Revise recent exams!

Pay attention to the question

Make sure that you identify everything that’s asked.

Manage your time

Pay attention to mark distribution within questions.

(Pretend) I’m an idiot

Explain everything you do.

Conrad Hughes Software Testing Course Review