lecture 15 software quality assurance
play

Lecture 15: Software Quality Assurance 2015-07-09 Prof. Dr. Andreas - PDF document

Softwaretechnik / Software-Engineering Lecture 15: Software Quality Assurance 2015-07-09 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal 15 2015-07-09 main Albert-Ludwigs-Universit at Freiburg, Germany Contents of the Block


  1. Softwaretechnik / Software-Engineering Lecture 15: Software Quality Assurance 2015-07-09 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal – 15 – 2015-07-09 – main – Albert-Ludwigs-Universit¨ at Freiburg, Germany Contents of the Block “Quality Assurance” L 1: 20.4., Mo Introduction (i) Introduction and Vocabulary T 1: 23.4., Do L 2: 27.4., Mo Development • correctness illustrated L 3: 30.4., Do Process, Metrics • vocabulary: fault, error, failure L 4: 4.5., Mo • three basic approaches T 2: 7.5., Do L 5: 11.5., Mo (ii) Formal Verification - 14.5., Do L 6: 18.5., Mo Requirements • Hoare calculus L 7: 21.5., Do Engineering • Verifying C Compiler (VCC) - 25.5., Mo • over- / under-approximations - 28.5., Do T 3: 1.6., Mo - 4.6., Do (iii) (Systematic) Tests L 8: 8.6., Mo • systematic test vs. experiment L 9: 11.6., Do • classification of test procedures L 10: 15.6., Mo T 4: 18.6., Do • model-based testing L 11: 22.6., Mo • glass-box tests: coverage measures Architecture & L 12: 25.6., Do – 15 – 2015-07-09 – Scontents – Design, Software L 13: 29.6., Mo (iv) Runtime Verification L 14: 2.7., Do Modelling (v) Review T 5: 6.7., Mo L 15: 9.7., Do Quality Assurance (vi) Concluding Discussion L 16: 13.7., Mo Invited Talks L 17: 16.7., Do • Dependability T 6: 20.7., Mo Wrap-Up L 18: 23.7., Do 2 /54

  2. Contents & Goals Last Lecture: • Completed the block “Architecture & Design” This Lecture: • Educational Objectives: Capabilities for following tasks/questions. • When do we call a software correct? • What is fault, error, failure? How are they related? • What is formal and partial correctness? • What is a Hoare triple (or correctness formula)? • Is this program (partially) correct? • Prove the (partial) correctness of this WHILE-program using PD. • What can we conclude from the outcome of tools like VCC? – 15 – 2015-07-09 – Sprelim – • Content: • Introduction, Vocabulary • WHILE-program semantics, partial & total correctness • Correctness proofs with the calculus PD. • The Verifying C Compiler (VCC) 3 /54 Introduction – 15 – 2015-07-09 – main – 4 /54

  3. Back To Lecture No. 1 Definition. A software specification is a finite description S of a (possibly infinite) set � S � of softwares, i.e. � S � = { ( S 1 , � · � 1 ) , . . . } . The (possibly partial) function � · � : S �→ � S � is called interpretation of S . We define : Software S is correct wrt. software specification S if and only if ( S, � · � ) ∈ � S � . • Note : no specification, no correctness. Without specification, S is neither correct nor not correct — it’s just some software then. – 15 – 2015-07-09 – Svintro – 7 /54

  4. Vocabulary software quality assurance — See: quality assurance. IEEE 610.12 (1990) quality assurance — (1) A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. (2) A set of activities designed to evaluate the process by which products are developed or manufactured. IEEE 610.12 (1990) Note : in order to trust a product, it can be built well, or proven to be good – 15 – 2015-07-09 – Svintro – (at best: both) — both is QA in the sense of (1). 9 /54 Concepts of Software Quality Assurance software quality assurance organisational analytic constructive constructive project software software management examination engineering mechanical non-mech. semi-mech. e.g. code examination examination by comp. aided generation with computer humans human exam. execute prove analyse dynamic static e.g. formal checking manual checking interactive verification inspection review ( test ) proof – 15 – 2015-07-09 – Svintro – prover check quantitative consistency against examina- checks rules tion (Ludewig and Lichter, 2013) 10 /54

  5. Fault, Error, Failure fault — abnormal condition that can cause an element or an item to fail. Note : Permanent, intermittent and transient faults (especially soft-errors) are considered. Note : An intermittent fault occurs time and time again, then disappears. This type of fault can occur when a component is on the verge of breaking down or, for example, due to a glitch in a switch. Some systematic faults (e.g. timing marginalities) could lead to intermittent faults. ISO 26262 (2011) error — discrepancy between a computed, observed or measured value or condition, and the true, specified, or theoretically correct value or condition. Note : An error can arise as a result of unforeseen operating conditions or due to a fault within the system, subsystem or, component being considered. Note : A fault can manifest itself as an error within the considered element and the error can ultimately cause a failure . ISO 26262 (2011) – 15 – 2015-07-09 – Svintro – failure — termination of the ability of an element, to perform a function as required. Note : Incorrect specification is a source of failure. ISO 26262 (2011) We want to avoid failures , thus we try to detect faults , e.g. by looking for errors . 11 /54

  6. LSC: buy water So, What Do We Do? AC: true AM: invariant I: strict User CoinValidator ChoicePanel Dispenser C 50 ¬ ( C50 ! ∨ E1 ! ∨ pSOFT ! p W A T E R ∨ pTEA ! ∨ pFILLUP ! • If we are lucky, the requirement specification water in stock dWATER is a constraint on computation paths . ¬ ( dSoft ! ∨ dTEA !) OK • LSC ‘buy water’ is such a software specification S . • It denotes all controller softwares which “faithfully” sell water. (Or which refuse to accept C50 coins, or block the ‘WATER’ button). • Formally � buy water � spec = { S | � S � satisfies ‘buy water’ } . • In pictures: (Σ × A ) ω (Σ × A ) ω all computation � S � of one not paths satisfying acceptable ‘buy water’ software S – 15 – 2015-07-09 – Svintro – � S � of one acceptable software S • Then we can check correctness of a given software S by examining its computation paths � S � . 13 /54 Three Basic Directions (Σ × A ) ω all computation paths satisfying specification – 15 – 2015-07-09 – Svintro – 14 /54

  7. Formal Verification – 15 – 2015-07-09 – main – 15 /54

  8. Correctness Formulae (“Hoare Triples”) • One style of requirements specifications : pre- and post-conditions (on whole programs or on procedures). • Let S be a program with states from Σ and let p and q be formulae such that there is a satisfaction relation | = ⊆ Σ × { p, q } . • S is called partially correct wrt. p and q , denoted by | = { p } S { q } , if and only if α 1 α 2 α n ∀ π = σ 0 − → σ 1 − → σ 2 · · · σ n − 1 − − → σ n ∈ � S � • σ 0 | = p = ⇒ σ n | = q (“if S terminates from a state satisfying p , then the final state of that computation satisfies q ”) • S is called totally correct wrt. p and q , denoted by | = tot { p } S { q } , if and only if – 15 – 2015-07-09 – Spsq – • { p } S { q } ( S is partially correct), and • ∀ π ∈ � S � • π 0 | = p = ⇒ | π | ∈ N 0 ( S terminates from all states satisfying p ; length of paths: | · | : Π → N 0 ˙ ∪ {⊥} ). 16 /54 Example Computing squares (of numbers 0 , . . . , 27 ). • Pre-condition : p ≡ 0 ≤ x ≤ 27 , post-condition : q ≡ y = x 2 . • Program S 1 : i nt y = x ; 1 y = ( x − 1) ∗ x + y ; 2 = ? { p } S 1 { q } , | = ? | tot { p } S 1 { q } • Program S 2 : y = x ; 1 i nt i nt z ; // u n i n i t i a l i s e d 2 y = (( x − 1) ∗ x + y ) + z ; 3 = ? { p } S 2 { q } , | = ? | tot { p } S 2 { q } • Program S 3 : i nt y = x ; 1 y = ( x − 1) ∗ x + y ; 2 ( 1 ) ; 3 while = ? { p } S 3 { q } , | = ? | tot { p } S 3 { q } – 15 – 2015-07-09 – Spsq – • Program S 4 : y = x ; 1 i nt i nt z ; // u n i n i t i a l i s e d 2 y = (( x − 1) ∗ x + y ) + z ; 3 while ( z ) ; 4 = ? { p } S 4 { q } , | = ? | tot { p } S 4 { q } 17 /54

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend