Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE360 Lecture 28

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

CSE360 Lecture 28

Introduction to Software Engineering
Software Testing
(201807)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 8 Next

    Step Process Requirements Planning Modeling Coding Deployment Testing
  2. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 9 Definition

    • Validation. It is about requirements. Are we building the right product? Does this software do what it needs to do? • Verification. It is about design. Are we building the product right? Does this meets it requirements? • Testing. Examination of the behavior of a program by executing it on sample data sets.
  3. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 11 Testing

    Testing White Box (Verification) Unit Testing Integration Testing Black Box (Validation) System Testing Scenario-based testing Model-based testing
  4. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 12 Unit

    Testing • Unit testing is the testing of an individual unit or group of related units. • It test that a unit is producing expected output against given input. • Each Unit developer must define Unit Test Cases for that Unit. • Unit Testing Frameworks are tools and libraries that help to implement the Unit Testing process. Example JUnit
  5. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 13 Limitations

    and Constraints • Missing or Bad requirements • Exhaustive testing is not possible • Sampling • Limited time and money
  6. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 17 Coverage

    • Statement Coverage: every statement is executed at least 1 time. • Decision Coverage: every decision point is executed at least 1 time • Decision-Condition Coverage: every decision tested with all possible outcomes
  7. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 18 Statement

    Coverage 1. if (a <10 || b>5) 2. x = 50 3. else 4. x = 0; 5. if (w == 5 || y>0) 6. z = 48; 7. else 8. z = 5; Total Statements? Statement Coverage with a = 0, b=0, w=0, y=0 ? Statement Coverage with a=10, b=4, w=5, y = anything ? Coverage is cumulative
  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 19 Decision

    Coverage 1. x = 0; 2. if (x<10) 3. doSomething(); 4. x =5; Total Statements? Statement coverage ? Decision Coverage ?
  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 20 Decision-Condition

    Coverage 1. if (x<1 || y>5 a&& z!=0 || flag== T && s==NIL) 2. doThis(); 3. else 4. doThat(); Total Statements? Test cases needed for 100% statement coverage? Test cases needed for Test for 100% decision coverage? Test cases needed for Test for 100% decision-condition coverage?
  10. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 21 Test

    Yourselves 1. start =1; 2. end = num; 3. found = false; 4. while (starts <= end and not found ) { 5. middle =(start - end)/2; 6. if (key > table[middle]) { 7. start = middle +1 8. } else if (key = table[middle]) { 9. found = T 10. LOC = middle; 11. } else 12. end = middle -1; 13. } 14. } //TestCase1 table={10, 20, 30, 40, 50, 60, 70}, key=55 //TestCase2 table={10, 20, 30, 40, 50, 60, 70}, key=40
  11. CSE360 – Introduction to Software Engineering Javier G onzalez-Sanchez javiergs@

    asu.edu Sum m er 2017 Disclaim er. These slides can only be used as study m aterial for the class C SE360 at ASU. They cannot be distributed or used for another purpose.