Slide 1

Slide 1 text

1 Build Software to Test Software exactpro.com Lecture 4 Foundations of Software Testing Software Testing for Complex Intelligent Systems and Autonomous Vehicles Online Course

Slide 2

Slide 2 text

2 Build Software to Test Software exactpro.com Lecture structure Sources of information about testing What is testing? What is quality, errors, defects, failures? What testing is not: QA, unit testing, BDD, bad testing Principles and types of testing Testing objectives; what constitutes good testing Testing Components: processes, platforms, people The testing process: phases and results Is it the testers' fault that failures occur in production

Slide 3

Slide 3 text

3 Build Software to Test Software exactpro.com Exactpro The company was founded on Tester Day, September 9, 2009 The company’s headquarters are in London Moscow Kostroma Saratov Obninsk Tbilisi London New York

Slide 4

Slide 4 text

4 Build Software to Test Software exactpro.com What We Do Our company specializes in development and implementation of high load market infrastructures as well as systems that work with financial tools/platforms. Our solutions are used in more than 20 countries all over the world.

Slide 5

Slide 5 text

5 Build Software to Test Software exactpro.com Sources of information - Absence-of-errors fallacy and other principles of software testing. - Types and levels of software testing. - Understanding of test objectives and methodologies in different schools of thought in the software testing domain.

Slide 6

Slide 6 text

6 Build Software to Test Software exactpro.com Sources of Information https://www.developsense.com/blog/2010/05/testers-get-out-of-the-quality-assurance-business/

Slide 7

Slide 7 text

7 Build Software to Test Software exactpro.com Sources of Information https://youtu.be/jZitXMQaXvE Watch Yegor Bugayenko

Slide 8

Slide 8 text

8 Build Software to Test Software exactpro.com Sources of Information https://ingophilipp.medium.com/excellent-software-testing-6e0fd8f3e11e

Slide 9

Slide 9 text

9 Build Software to Test Software exactpro.com Sources of Information http://cartoontester.blogspot.com/ Andy Glover

Slide 10

Slide 10 text

10 Build Software to Test Software exactpro.com Software Testing: Definition ● Testing is about extracting information about software quality ● Testing is pain ● Testing is relentless learning ● Testing is about processes, platforms, people

Slide 11

Slide 11 text

11 Build Software to Test Software exactpro.com West World TEST WORLD: REBOOT

Slide 12

Slide 12 text

12 Build Software to Test Software exactpro.com Ray Dalio PAIN + REFLECTION = PROGRESS

Slide 13

Slide 13 text

13 Build Software to Test Software exactpro.com Ray Dalio

Slide 14

Slide 14 text

14 Build Software to Test Software exactpro.com Ray Dalio

Slide 15

Slide 15 text

15 Build Software to Test Software exactpro.com How We Get Information

Slide 16

Slide 16 text

16 Build Software to Test Software exactpro.com How We Get Information

Slide 17

Slide 17 text

17 Build Software to Test Software exactpro.com https://blogs.scientificamerican.com/observations/the-line-between-science-and-journali sm-is-getting-blurry-again/ ● Journalism is communication of 'what's new'. A journalist is anyone who can say "I’m there, you’re not, let me tell you about it." ● Science is communication of 'how the world works'. A scientist is anyone who can say "I understand something about the world, you don't, let me explain it to you". ● Neither definition necessitates that what they say is True, just what they know to the best of their ability and understanding.

Slide 18

Slide 18 text

18 Build Software to Test Software exactpro.com How We Get Information

Slide 19

Slide 19 text

19 Build Software to Test Software exactpro.com How We Get Information

Slide 20

Slide 20 text

20 Build Software to Test Software exactpro.com Quality Quality is value to some people Quality is the degree to which a component or system satisfies the stated and implied needs of its various stakeholders. Quality is inherently subjective. Different stakeholders will perceive the same product as having different levels of quality.

Slide 21

Slide 21 text

21 Build Software to Test Software exactpro.com What is a Bug? Bug is a discrepancy between expectations and reality An attribute of a software product that reduces its value to a stakeholder or increases its value to a competitor. May or may not be a coding error or a functional error Design errors are bugs too.

Slide 22

Slide 22 text

22 Build Software to Test Software exactpro.com What is a Bug? Error – a human action that produces an incorrect result Defect (bug) – an imperfection or deficiency in a work product where it does not meet its requirements or specifications Failure – an event in which a component or system does not perform a required function within specified limits

Slide 23

Slide 23 text

23 Build Software to Test Software exactpro.com What is a Bug? 65,586 m/ h (~65.6 km/h) error defect/bug failure

Slide 24

Slide 24 text

24 Build Software to Test Software exactpro.com What is a Bug? 65,586 m/ h (~65.6 km/h) error defect/bug failure

Slide 25

Slide 25 text

25 Build Software to Test Software exactpro.com What is a Bug? Breaking path

Slide 26

Slide 26 text

26 Build Software to Test Software exactpro.com What is a Bug? Breaking path https://cordis.europa.eu/arti cle/id/19509-ariane-5-explo sion-caused-by-fault-in-mai n-engine-cooling-system

Slide 27

Slide 27 text

27 Build Software to Test Software exactpro.com https://www.snopes.com/fact-check/cone-of-silence PASS FAIL PASS + = = = + + What is a Bug?

Slide 28

Slide 28 text

28 Build Software to Test Software exactpro.com What is Software Testing? Software Testing is an ● empirical ● technical ● investigation ● conducted to provide stakeholders ● with information ● about the quality ● of the product or service under test Software Testing is exploring software with the intent of finding bugs

Slide 29

Slide 29 text

29 Build Software to Test Software exactpro.com Watch “Software is Eating the World.”

Slide 30

Slide 30 text

30 Build Software to Test Software exactpro.com “Software is Eating the World.” http://www3.weforum.org/docs/WEF_ The_Global_Risks_Report_2021.pdf

Slide 31

Slide 31 text

31 Build Software to Test Software exactpro.com Software Testing is not Quality Assurance Testers: Get Out of the Quality Assurance Business Quality Assurance Quality Control Testing Code review Unit testing Audit Process Improvements Change management Early reviews and testing

Slide 32

Slide 32 text

32 Build Software to Test Software exactpro.com Software Testing is an Information Service

Slide 33

Slide 33 text

33 Build Software to Test Software exactpro.com Testing is not Quality Assurance Testers: Get Out of the Quality Assurance Business https://www.developsense.com/presentations/2010-06-TestersGetO utOfTheQABusiness.pdf

Slide 34

Slide 34 text

34 Build Software to Test Software exactpro.com Unit Testing Development of unit tests allows you to isolate individual parts of the program and test their performance - creating tests, executing them and obtaining reports using open source frameworks Pytest and PyUnit.

Slide 35

Slide 35 text

35 Build Software to Test Software exactpro.com BDD Studying the Behavior Driven Development (BDD) software development methodology Using the Gherkin in the requirements definition process, use cases, and acceptance testing

Slide 36

Slide 36 text

36 Build Software to Test Software exactpro.com Software Testing Not Software Testing

Slide 37

Slide 37 text

37 Build Software to Test Software exactpro.com Examples of Obtaining Information

Slide 38

Slide 38 text

38 Build Software to Test Software exactpro.com Examples of Obtaining Information

Slide 39

Slide 39 text

39 Build Software to Test Software exactpro.com Examples of obtaining and disseminating information

Slide 40

Slide 40 text

40 Build Software to Test Software exactpro.com Bad Testing https://youtu.be/2S--Ge3c-yA

Slide 41

Slide 41 text

41 Build Software to Test Software exactpro.com Software Testing is not... https://mrslavchev.com/2016/03/28/software-testing-not/

Slide 42

Slide 42 text

42 Build Software to Test Software exactpro.com

Slide 43

Slide 43 text

43 Build Software to Test Software exactpro.com Testing Principles Principle 1: Testing shows the presence of defects, not their absence Principle 2: Exhaustive testing is impossible Principle 3: Early testing saves time and money Principle 4: Defects cluster together Principle 5: Beware of the pesticide paradox Principle 6: Testing is context dependent Principle 7: Absence-of-errors is a fallacy

Slide 44

Slide 44 text

44 Build Software to Test Software exactpro.com Testing shows the presence of defects, not their absence

Slide 45

Slide 45 text

45 Build Software to Test Software exactpro.com Exhaustive testing is impossible

Slide 46

Slide 46 text

46 Build Software to Test Software exactpro.com Autonomous Vehicle Testing

Slide 47

Slide 47 text

47 Build Software to Test Software exactpro.com LGSVL Road Simulator - Introduction to the multi-agent road simulator developed by LG's Research and Development division based on the cross-platform environment for creating video games - Unity. - Overview of installation, launch, and user interface.

Slide 48

Slide 48 text

48 Build Software to Test Software exactpro.com Pareto Principle

Slide 49

Slide 49 text

49 Build Software to Test Software exactpro.com Beware of the Pesticide Paradox

Slide 50

Slide 50 text

50 Build Software to Test Software exactpro.com Beware of the Pesticide Paradox

Slide 51

Slide 51 text

51 Build Software to Test Software exactpro.com Context Driven Testing Consider: ● Software development lifecycle model and project methodologies being used ● Test levels and test types being considered ● Product and project risks ● Business domain ● Operational constraints, including but not limited to: a. Budgets and resources b. Timescales c. Complexity d. Contractual and regulatory requirements ● Organizational policies and practices ● Required internal and external standards

Slide 52

Slide 52 text

52 Build Software to Test Software exactpro.com Context Driven Testing The Seven Basic Principles of the Context-Driven School 1. The value of any practice depends on its context. 2. There are good practices in context, but there are no best practices. 3. People, working together, are the most important part of any project’s context. 4. Projects unfold over time in ways that are often not predictable. 5. The product is a solution. If the problem isn’t solved, the product doesn’t work. 6. Good software testing is a challenging intellectual process. 7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products. https://context-driven-testing.com/

Slide 53

Slide 53 text

53 Build Software to Test Software exactpro.com

Slide 54

Slide 54 text

54 Build Software to Test Software exactpro.com Absence-of-errors is a fallacy

Slide 55

Slide 55 text

55 Build Software to Test Software exactpro.com Verification vs. Validation Verification – checks whether the system meets the specified requirements Validation – checks whether the system will meet user and other stakeholder needs ● https://techcrunch.com/2018/06/22/uber-safety-driver-of-fatal-self-driving-crash-was-watchin g-hulu-not-the-road ● https://www.ntsb.gov/investigations/AccidentReports/Reports/HWY18MH010-prelim.pdf

Slide 56

Slide 56 text

56 Build Software to Test Software exactpro.com https://www.ntsb.gov/investigations/AccidentReports/Reports/HWY18MH010-prelim.pdf

Slide 57

Slide 57 text

57 Build Software to Test Software exactpro.com https://www.ntsb.gov/investigations/AccidentReports/Reports/HWY18MH010-prelim.pdf

Slide 58

Slide 58 text

58 Build Software to Test Software exactpro.com Types of Software Testing ● Functional testing — WHAT ● Non-functional testing — HOW ● Testing with access to the source code — White Box

Slide 59

Slide 59 text

59 Build Software to Test Software exactpro.com Software Testing at the confluence Functional Testing Nonfunctional Testing

Slide 60

Slide 60 text

60 Build Software to Test Software exactpro.com Black Box Testing vs. White Box Testing

Slide 61

Slide 61 text

61 Build Software to Test Software exactpro.com Testing Components

Slide 62

Slide 62 text

62 Build Software to Test Software exactpro.com ● Test planning – involves defining the objectives of testing and the approach for meeting those objectives within project constraints and contexts ● Test monitoring and control – compares actual progress against the plan, takes actions which are necessary to meet the mission and objectives of the project, and/or adjust the plan ● Test analysis – determines ‘what to test’ ● Test design – addresses the question ‘how to test’ ● Test implementation – asks ‘do we now have everything in place to run the tests? ● Test execution – runs tests ● Test completion – summarizes the results of testing Testing Components

Slide 63

Slide 63 text

63 Build Software to Test Software exactpro.com Test Objectives 1. To prevent defects by evaluating work products such as requirements, user stories, design, and code 2. To verify whether all specified requirements have been fulfilled 3. To check whether the test object is complete and validate if it works as the users and other stakeholders expect 4. To build confidence in the level of quality of the test object 5. To find defects and failures thus reduce the level of risk of inadequate software quality 6. To provide sufficient information to stakeholders to allow them to make informed decisions, especially regarding the level of quality of the test object 7. To comply with contractual, legal, or regulatory requirements or standards, and/or to verify the test object’s compliance with such requirements or standards

Slide 64

Slide 64 text

64 Build Software to Test Software exactpro.com

Slide 65

Slide 65 text

65 Build Software to Test Software exactpro.com Bad Testing Doctor Fauci

Slide 66

Slide 66 text

66 Build Software to Test Software exactpro.com Testers vs. Activists

Slide 67

Slide 67 text

67 Build Software to Test Software exactpro.com Test Objectives ● To prevent defects by evaluate work products such as requirements, user stories, design, and code ● To verify whether all specified requirements have been fulfilled ● To check whether the test object is complete and validate if it works as the users and other stakeholders expect ● To build confidence in the level of quality of the test object ● To find defects and failures thus reduce the level of risk of inadequate software quality ● To provide sufficient information to stakeholders to allow them to make informed decisions, especially regarding the level of quality of the test object ● To comply with contractual, legal, or regulatory requirements or standards, and/or to verify the test object’s compliance with such requirements or standards

Slide 68

Slide 68 text

68 Build Software to Test Software exactpro.com 2021 IEEE Autonomous Driving AI Test Challenge http://av-test-challenge.org/

Slide 69

Slide 69 text

69 Build Software to Test Software exactpro.com Good Testing

Slide 70

Slide 70 text

70 Build Software to Test Software exactpro.com Test Objectives

Slide 71

Slide 71 text

71 Build Software to Test Software exactpro.com Testing is not Quality Assurance Testers: Get Out of the Quality Assurance Business Quality Assurance Quality Control Testing Code review Unit testing Audit Process Improvements Change management Early reviews and testing

Slide 72

Slide 72 text

72 Build Software to Test Software exactpro.com Good Testing

Slide 73

Slide 73 text

73 Build Software to Test Software exactpro.com Good Testing

Slide 74

Slide 74 text

74 Build Software to Test Software exactpro.com Good Testing ● Ownership – taking care of your company. Treat others the way you would like to be treated. Take responsibility for company's needs. Remember: responsibility is power. It is not granted. It is taken. Extreme ownership is the way to lead and win. ● Deep Impact – exitus acta probat. The outcome justifies the effort. Make sure that your work results in a valuable contribution. If you want to go fast, go alone. If you want to go far, go together. Involve others to achieve scalability and increase the impact of our work. ● Hard Work – no pain, no gain. Sometimes putting in long hours does not help achieve any result. We do not measure time spent in the office. Having said that, we've never observed extraordinary results without hard work and deliberate effort.

Slide 75

Slide 75 text

75 Build Software to Test Software exactpro.com ● Learning – software testing is relentless learning. Change is the end result of all true learning. The beautiful thing about learning is that nobody can take it away from you. The Mistakes and problems are inevitable. However, it is unacceptable not to learn from them. The best way to learn something is to teach it. ● Agility – the only constant is change. We embrace the values reflected in the Manifesto for Agile Software Development. Agility allows us to turn learning into action and action into change. From its inception, Exactpro has been able to adapt to change. It is important to keep this ability as we scale up our business. ● Communication – the medium is the message. A relationship is based on communication. We need to make sure others understand us and we understand them. ● Objectivity – you have nothing to fear from knowing the truth. It is at the core of our business. Our main service is to build software to test software and provide objective information about it to our clients. Our business benefits from openness. Everyone in our company has the right to understand what makes sense, and no one has the right to hold a critical opinion without speaking up. Good Testing

Slide 76

Slide 76 text

76 Build Software to Test Software exactpro.com Thank you Exactpro Systems Exactpro Vlog