17
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems. From http://niceparts.blogspot.com/2007_12_01_archi ve.html. CSSE 377 – Intro to Testability

1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

1

Steve Chenoweth

Tuesday, 10/04/11

Week 5, Day 2

Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems. From http://niceparts.blogspot.com/2007_12_01_archive.html.

CSSE 377 – Intro to Testability

Page 2: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

2

Today

• How to do Project 4…– We’ll get your “implementers” a bit more

involved this time

• Software testability – this – Bass’s Ch 4, pp 88-90 (Testability

scenarios) & Ch 5, pp. 118-121 (Testability tactics)

– Lots of discussion also in CSSE 376!

Q 1

Page 3: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

3

Coming up…

• Thursday – (Steve’s at Purdue)– Guest speakers – Matt Ellis, Justin Hutchings of

Microsoft– Remaining time – if any – Work on first turnin for

Testability

• Friday – More on this & time to work on Project 4 – including…– Getting your “implementers” involved – first talk with

them about “what should be more testable” on your system, then have them try to run tests themselves.

• Monday: Analyzing archs & the ATAM / CBAM

Page 4: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

4

We next pick testability from Bass’s QA list…

• Bass’s list of six, from the inside back cover of his book:– Availability– Modifiability– Performance– Security– Testability– Usability

Page 5: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

5

And here’s the project about it:

Overall - On the same project,• Use an arch tactic to make it more testable:

– Determine what is not very testable in your current project system.

– Implement a tactic to improve this by a predicted amount!– Have your implementers observe the “before” and “after” testing,

and confirm that there’s an improvement• We’re also going to continue our study of how to

document the arch, so:– An added feature of this project – add one more section to your

draft of that, for your sys.

Page 6: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

6

And a first step to take:

• Try to think of a problem area in testing your current system.• Run through this area of tests, of your system as it exists

now. Time how long this takes, and find a way to measure how “effective” (thorough) it is.

• See if you can get your “implementers” to repeat the same tests.

• Make a “prediction” about how fast or effective this testing will be with the testing change you plan to make.

• Turn in your ideas, those “existing times,” and other measures, with your prediction, in your “team journal” by Friday at 11:55 PM.

Next step will then be – Make the changes to testing that will speed this up or make it more effective.

Page 7: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

7

What’s Bass say about this QA?

• Problem – Testing needs to be more efficient & effective– It consumes a high percentage of software development time &

effort– The heuristic is “half”

• Goal – Allow easier testing when an increment of software development is completed.

• Motivation – The overall arch of the system, and of its testing methods, can help make testing easier

• Scenarios – What’s in “The Notes” at the end of the supplementary spec template?

• What is Testability “about” – Ch 4?• What are some good tactics – Ch 5?

Q 2

Page 8: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

8

Bass’s testability scenarios

• Source: Unit developer– Increment integrator– System verifier– Client acceptance tester– System user

• Stimulus: Analysis, architecture, design, class, subsystem integration completed; system delivered

• Artifact: Piece of design, piece of code, complete application• Environment: At design time, at development time, at compile time, at

deployment time• Response: Provides access to state values; provides computed values;

prepares test environment• Response Measures: (examples)

– Percent executable statements executed– Probability of failure if fault exists– Time to perform tests– Length of longest dependency chain in a test– Length of time to prepare test environment

Q 3

Page 9: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

9

Example scenario

• Source: Unit tester• Stimulus: Performs unit test• Artifact: Component of the system• Environment: At the completion of the component• Response: Component has interface for controlling

behavior, and output of the component is observable• Response Measure: Path coverage of 85% is achieved

within 3 hours

Page 10: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

10

Testability situations

It’s a development-time attribute: • Probability of fault discovery• Need to control

components• Need to observe

component failure

Ch 4

Right: Ren & Stimpy tell why people ignore system testability. From web site sctest.cse.ucsc.edu/ .

Page 11: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

11

Tactics to achieve testability

• Manage Input/Output– Record/playback– Separate interface from implementation– Specialize access

• Internal monitoring– Built-in monitors

• Generally, the goal is to automate as much testing as you can – why?

Ch 5Q 4

Page 12: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

12

Examples - 1

• Test harness – like the stimulator you might have done for performance– Automates some aspect of testing– But, for finding errors, the test cases need to

be more complete (unless performance / reliability are what you’re testing!)

– Can be for internal classes, etc., as well as external – See next slide

– Give this itself an “architecture” with options, different modes, etc.

Q 5

Page 13: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

13

Examples – 1, cntd

• Typical test harness:• In MVC, replace the “View” with a stimulator that

fires test cases at the rest of the system:

Replace withstimulator, fortesting

Page 14: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

14

Examples – 1, cntd

• How about stimulating the GUI?• A slightly harder trick, replacing the human with

the mouse and keyboard.

How do we testthe GUI itself?(Or the wholeSystem!?)

See list of open source tools at http://en.wikipedia.org/wiki/List_of_GUI_testing_tools

Page 15: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

15

Examples - 2

• Built-in monitors – the system itself is “instrumented” to provide test results. – Usually, this can be turned on/off so it doesn’t

interfere with normal operations.– May have multiple special modes.– The “heart” of white-box testing!

Page 16: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

16

Industrial strength tools

• Good example – IBM’s Rational PurifyPlus– Shows code coverage– Analyzes memory problems (e.g., buffer

overflow, leaks)– Identifies performance issues like bottlenecks– Runs on Linux, Unix, Windows

See http://www-01.ibm.com/software/awdtools/purify/?cn=agus_rtnlrp-20100514&cm=k&csr=google&cr=rational_purify&ct=AGRAK605&ck=rational_purify&mkwid=s28L9ro6h_5281300654_432dt32930&cmp=109HG

Page 17: 1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems

17

Project 4 – Testability (overall)

Overall theme (of the testability part of the project) – • Pick an area where you want to improve testing.• Pick a strategy to improve it, using one of the above tactics, and

verify (Friday) with your implementers. The improvement can be in either of these two areas:– Effectiveness (thoroughness) of the testing, or– Speed of the testing, with the same effectiveness.

• Try it “as-is” to verify how long it takes and the coverage.– Includes letting novice testers, your “implementers,” try it.

• Guess how much you can improve that with your change.• Make the change to improve testability.• Run the testing again, with the change. Measure how fast and how

effective the new testing is. Let your implementers verify the differences.

• Report on the results.