SlideShare a Scribd company logo
1 of 24
Notes on Teaching Software
          Testing

   Alpen-Adria-Universität, Klagenfurt, 28 March 2013

Ladislav Samuelis, Technical University of Košice, Slovakia
Motivation
• For years I was notoriously curious about the latest
  updates in program development.
• The main question:
   – How a program “is born”. Later changed to “what is software
     evolution”.
• Challenge: grant of the Slovak Ministry of Education:
  “Implementation of Current Software Engineering
  Courses for Computer Science Programs …”




                      Ladislav Samuelis: Notes on Teaching
                                                              2 of 23
                                 Software Testing
Dawn of software testing
• P. Naur, 1969: “If you develop programs
  systematically, you can dispense with testing
  altogether.”
• This hope to achieve the goal is still present.
• However, in practice testing cannot be avoided by
  any other means, whether it is the most careful
  design, construction, or formal analysis of the
  requirements.
• Elimination of testing from the development
  process just postpones the test with reality until
  the product is put into production.
                  Ladislav Samuelis: Notes on Teaching
                                                         3 of 23
                             Software Testing
Lehman’s law
• E-type software, software implementing real
  world computer applications, must be
  continually evolved to maintain user
  satisfaction, generally over several years and
  releases.
• It is likely that the responsible organisation
  will, sooner or later, consider its replacement
  through redevelopment or acquisition. (1974)

                 Ladislav Samuelis: Notes on Teaching
                                                        4 of 23
                            Software Testing
Specific of software testing
• Testing is a part of the development
  process, not the manufacturing process.
• This testing is different from many other
  engineering products, where the
  emphasis is on testing the correct
  reproduction.


               Ladislav Samuelis: Notes on Teaching
                                                      5 of 23
                          Software Testing
What are the questions?

• What are we teaching in
  software testing courses and
  why?
• What are the scientific
  foundations of testing?

            Ladislav Samuelis: Notes on Teaching
                                                   6 of 23
                       Software Testing
Why should we have courses on
         software testing?
• Developers spend 50% of their time testing,
  and reliability requirements are steadily
  increasing.
• All programmers spend a significant amount
  of time to trial their software.
• It gets negligible significance in most software
  development curricula.
• Accidents, ARIANE …
                 Ladislav Samuelis: Notes on Teaching
                                                        7 of 23
                            Software Testing
What are we teaching in software
           testing courses?
• Techniques, measurements, management …
  – Plenty of comprehensive books …
• ISTQB (International Software Testing
  Qualification Board)
  – Effective for undergraduate informatics study-
    programmes
  – Required by the industry



                  Ladislav Samuelis: Notes on Teaching
                                                         8 of 23
                             Software Testing
Notes on obstacles in building
      software testing course
• How to avoid the phenomenon of “bag
  of tricks”?
• It is not easy to design a specific
  curriculum with adequate labs and
  assessment procedures.
• The border between the program
  analysis and testing is fuzzy.
             Ladislav Samuelis: Notes on Teaching
                                                    9 of 23
                        Software Testing
How do we cooperate with the
             industry?
• RWE IT local company provides selected
  lectures on:
  – testing of large projects
  – testing techniques
  – test cases by examples
• Diploma theses and internships
• Experimental data published in papers
• Workshop biannually for prospective
  employees
                   Ladislav Samuelis: Notes on Teaching
                                                          10 of 23
                              Software Testing
Dijkstra’s “law”
• “Program testing can be used to show the presence
  of bugs, but never to show their absence”. (1969)
• Donald Knuth:
   – Beware of bugs in the above code; I have only
      proved it correct, not tried it.
This law is expresses the limitations of black-box
testing.
Question:
How do we explain the theory of this “law” to
students?
                  Ladislav Samuelis: Notes on Teaching
                                                         11 of 23
                             Software Testing
On the limits of formal methods
                  (D.L.Parnas)
Simplification (model) is achieved by ignoring
certain facts such as the limits in the sizes of
data elements and the errors in arithmetic
operations. Unfortunately, these are exactly the
type of details that can cause faults and lead to
failures.
No formal analysis of such a model that leaves
out critical limits can reveal faults attributable
to those limits.

                  Ladislav Samuelis: Notes on Teaching
                                                         12 of 23
                             Software Testing
The theory of program testing
• The idea of program testing is as old as
  programming.
• 1970 – new field of research called testing theory
  emerged – efficiency and effectivity
• What are the main questions?
  – How to design test cases from different sources:
    specification, source code, input and output domains
    of programs
  – How to select a subset of test cases from the set of all
    possible test cases?

                    Ladislav Samuelis: Notes on Teaching
                                                           13 of 23
                               Software Testing
A scheme of testing
(a mathematical approach)




       Ladislav Samuelis: Notes on Teaching
                                              14 of 23
                  Software Testing
The theory of Goodenough and
              Gerhart
 (very simplified explanation of the ideal test)


P “runs” and gives B number of bugs.
We create new set Tk until Bk ≥ B. Then
it is an ideal test.

    • D = input domain, T≤D, d є D
    • P= program, result is P(d)
    • d is true, if output P(d) is acceptable
                    Ladislav Samuelis: Notes on Teaching
                                                           15 of 23
                               Software Testing
Other testing theories
• Theory of Weyuker and Ostrand, Gourlay
• Dines Bjørner: On a Triptych of Software
  Development
  – Domain engineering,
  – Requirements engineering,
  – Design
• SEMAT initiative

Question:
How much testing theory do we have to teach?
                     Ladislav Samuelis: Notes on Teaching
                                                            16 of 23
                                Software Testing
Power law
The notion of power laws has been around for
more than a century.

                    P(x) ~ c.x−k

Question:
What does it mean in software testing?

                Ladislav Samuelis: Notes on Teaching
                                                       17 of 23
                           Software Testing
Power law and software testing
• Object-oriented software ~ network of
  objects.
• It is worth to test less complex classes than
  many trivial classes.

Note:
This is an empirical “law” or concept , rarely
taught in testing courses.
                 Ladislav Samuelis: Notes on Teaching
                                                        18 of 23
                            Software Testing
Gödel’s incompleteness theorem
• No computer program is capable of
  proving all programs.
• For any consistent system of axioms
  there will always be statements that
  are improvable within the system.


             Ladislav Samuelis: Notes on Teaching
                                                    19 of 23
                        Software Testing
Teaching of Gödel's incompleteness
              theorems?
• Elaine Weyuker - Evaluating Software Test
  Data Adequacy (1988)

Question:
Where are the places of Gödel’s theorems in
software engineering courses?



                 Ladislav Samuelis: Notes on Teaching
                                                        20 of 23
                            Software Testing
Note on testing and deductive
               reasoning
• Deductive reasoning;
  – Major premise – initial set of facts
  – Minor premise – goal fact
• For example, PROLOG program –
  the inference engine gives the verdict.
• Not-PROLOG program – no inference engine,
  program is executed and tester “gives a
  verdict” against requirements.
                   Ladislav Samuelis: Notes on Teaching
                                                          21 of 23
                              Software Testing
Questions on the role of observation in
           software testing

 Questions:
   Why do we select observations?
   Where do we perform the observation?
   In which phase of the product lifecycle do
   we perform observations?



                Ladislav Samuelis: Notes on Teaching
                                                       22 of 23
                           Software Testing
Notes on the history of testing
         concurrent programs
• Before object-oriented programming:
  – mechanisms for ensuring mutual exclusion
    (Dijkstra),
  – monitors (Hoare) and
  – critical regions (Brinch-Hansen)

Question:
What topics to teach in concurrent program
testing?
                 Ladislav Samuelis: Notes on Teaching
                                                        23 of 23
                            Software Testing
Notes on teaching software testing

More Related Content

What's hot

What is objectives of software testing
What is objectives of software testingWhat is objectives of software testing
What is objectives of software testingSoftware Testing Books
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileChandan Mishra
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing pptAjit Waje
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
Why testing is important ?
Why testing is important ?Why testing is important ?
Why testing is important ?TestCenter
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-conceptsmedsherb
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-pptatish90
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaEdureka!
 
Testing for business benefits
Testing for business benefitsTesting for business benefits
Testing for business benefitsAsim Kazmi
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101QA Hannah
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTsuhasreddy1
 

What's hot (20)

What is objectives of software testing
What is objectives of software testingWhat is objectives of software testing
What is objectives of software testing
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and Agile
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
Why testing is important ?
Why testing is important ?Why testing is important ?
Why testing is important ?
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
 
Types of testing
Types of testingTypes of testing
Types of testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
St
StSt
St
 
Testing for business benefits
Testing for business benefitsTesting for business benefits
Testing for business benefits
 
Software testing
Software testingSoftware testing
Software testing
 
Transactionflow
TransactionflowTransactionflow
Transactionflow
 
Software testing overview subbu
Software testing overview subbuSoftware testing overview subbu
Software testing overview subbu
 
Software testing
Software testingSoftware testing
Software testing
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPT
 

Similar to Notes on teaching software testing

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Chaitanya Kn
 
Back to the basics principles for constructing quality software
Back to the basics   principles for constructing quality softwareBack to the basics   principles for constructing quality software
Back to the basics principles for constructing quality softwareRick Spiewak
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringRizwan411667
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingRadu_Negulescu
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementRadu_Negulescu
 
Software Development Methodologies
Software Development MethodologiesSoftware Development Methodologies
Software Development MethodologiesNicholas Davis
 
Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Lionel Briand
 
Risk based testing a new case study
Risk based testing   a new case studyRisk based testing   a new case study
Risk based testing a new case studyBassam Al-Khatib
 
se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com enosislearningcom
 
OOSE Unit 5 PPT.ppt
OOSE Unit 5 PPT.pptOOSE Unit 5 PPT.ppt
OOSE Unit 5 PPT.pptitadmin33
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slideAdil Mehmoood
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.pptHODCOMPUTER10
 
Oose unit 5 ppt
Oose unit 5 pptOose unit 5 ppt
Oose unit 5 pptDr VISU P
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsPavneet Singh Kochhar
 

Similar to Notes on teaching software testing (20)

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483
 
Back to the basics principles for constructing quality software
Back to the basics   principles for constructing quality softwareBack to the basics   principles for constructing quality software
Back to the basics principles for constructing quality software
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software Testing
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality Management
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Software Development Methodologies
Software Development MethodologiesSoftware Development Methodologies
Software Development Methodologies
 
Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.
 
Risk based testing a new case study
Risk based testing   a new case studyRisk based testing   a new case study
Risk based testing a new case study
 
CAJ-014 Rick Spiewak
CAJ-014 Rick SpiewakCAJ-014 Rick Spiewak
CAJ-014 Rick Spiewak
 
Unit 1
Unit 1Unit 1
Unit 1
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com
 
OOSE Unit 5 PPT.ppt
OOSE Unit 5 PPT.pptOOSE Unit 5 PPT.ppt
OOSE Unit 5 PPT.ppt
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slide
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.ppt
 
Oose unit 5 ppt
Oose unit 5 pptOose unit 5 ppt
Oose unit 5 ppt
 
An Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source ProjectsAn Empirical Study on the Adequacy of Testing in Open Source Projects
An Empirical Study on the Adequacy of Testing in Open Source Projects
 

More from Förderverein Technische Fakultät

The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...Förderverein Technische Fakultät
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfFörderverein Technische Fakultät
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfFörderverein Technische Fakultät
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Förderverein Technische Fakultät
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...Förderverein Technische Fakultät
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksFörderverein Technische Fakultät
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfFörderverein Technische Fakultät
 

More from Förderverein Technische Fakultät (20)

Supervisory control of business processes
Supervisory control of business processesSupervisory control of business processes
Supervisory control of business processes
 
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
 
A Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdfA Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdf
 
From Mind to Meta.pdf
From Mind to Meta.pdfFrom Mind to Meta.pdf
From Mind to Meta.pdf
 
Miniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdfMiniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdf
 
Distributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptxDistributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptx
 
Don't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptxDon't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptx
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdf
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
 
Towards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdfTowards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdf
 
Förderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptxFörderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptx
 
The Computing Continuum.pdf
The Computing Continuum.pdfThe Computing Continuum.pdf
The Computing Continuum.pdf
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...
 
Machine Learning in Finance via Randomization
Machine Learning in Finance via RandomizationMachine Learning in Finance via Randomization
Machine Learning in Finance via Randomization
 
IT does not stop
IT does not stopIT does not stop
IT does not stop
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial Networks
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
 
Introduction to 5G from radio perspective
Introduction to 5G from radio perspectiveIntroduction to 5G from radio perspective
Introduction to 5G from radio perspective
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 

Notes on teaching software testing

  • 1. Notes on Teaching Software Testing Alpen-Adria-Universität, Klagenfurt, 28 March 2013 Ladislav Samuelis, Technical University of Košice, Slovakia
  • 2. Motivation • For years I was notoriously curious about the latest updates in program development. • The main question: – How a program “is born”. Later changed to “what is software evolution”. • Challenge: grant of the Slovak Ministry of Education: “Implementation of Current Software Engineering Courses for Computer Science Programs …” Ladislav Samuelis: Notes on Teaching 2 of 23 Software Testing
  • 3. Dawn of software testing • P. Naur, 1969: “If you develop programs systematically, you can dispense with testing altogether.” • This hope to achieve the goal is still present. • However, in practice testing cannot be avoided by any other means, whether it is the most careful design, construction, or formal analysis of the requirements. • Elimination of testing from the development process just postpones the test with reality until the product is put into production. Ladislav Samuelis: Notes on Teaching 3 of 23 Software Testing
  • 4. Lehman’s law • E-type software, software implementing real world computer applications, must be continually evolved to maintain user satisfaction, generally over several years and releases. • It is likely that the responsible organisation will, sooner or later, consider its replacement through redevelopment or acquisition. (1974) Ladislav Samuelis: Notes on Teaching 4 of 23 Software Testing
  • 5. Specific of software testing • Testing is a part of the development process, not the manufacturing process. • This testing is different from many other engineering products, where the emphasis is on testing the correct reproduction. Ladislav Samuelis: Notes on Teaching 5 of 23 Software Testing
  • 6. What are the questions? • What are we teaching in software testing courses and why? • What are the scientific foundations of testing? Ladislav Samuelis: Notes on Teaching 6 of 23 Software Testing
  • 7. Why should we have courses on software testing? • Developers spend 50% of their time testing, and reliability requirements are steadily increasing. • All programmers spend a significant amount of time to trial their software. • It gets negligible significance in most software development curricula. • Accidents, ARIANE … Ladislav Samuelis: Notes on Teaching 7 of 23 Software Testing
  • 8. What are we teaching in software testing courses? • Techniques, measurements, management … – Plenty of comprehensive books … • ISTQB (International Software Testing Qualification Board) – Effective for undergraduate informatics study- programmes – Required by the industry Ladislav Samuelis: Notes on Teaching 8 of 23 Software Testing
  • 9. Notes on obstacles in building software testing course • How to avoid the phenomenon of “bag of tricks”? • It is not easy to design a specific curriculum with adequate labs and assessment procedures. • The border between the program analysis and testing is fuzzy. Ladislav Samuelis: Notes on Teaching 9 of 23 Software Testing
  • 10. How do we cooperate with the industry? • RWE IT local company provides selected lectures on: – testing of large projects – testing techniques – test cases by examples • Diploma theses and internships • Experimental data published in papers • Workshop biannually for prospective employees Ladislav Samuelis: Notes on Teaching 10 of 23 Software Testing
  • 11. Dijkstra’s “law” • “Program testing can be used to show the presence of bugs, but never to show their absence”. (1969) • Donald Knuth: – Beware of bugs in the above code; I have only proved it correct, not tried it. This law is expresses the limitations of black-box testing. Question: How do we explain the theory of this “law” to students? Ladislav Samuelis: Notes on Teaching 11 of 23 Software Testing
  • 12. On the limits of formal methods (D.L.Parnas) Simplification (model) is achieved by ignoring certain facts such as the limits in the sizes of data elements and the errors in arithmetic operations. Unfortunately, these are exactly the type of details that can cause faults and lead to failures. No formal analysis of such a model that leaves out critical limits can reveal faults attributable to those limits. Ladislav Samuelis: Notes on Teaching 12 of 23 Software Testing
  • 13. The theory of program testing • The idea of program testing is as old as programming. • 1970 – new field of research called testing theory emerged – efficiency and effectivity • What are the main questions? – How to design test cases from different sources: specification, source code, input and output domains of programs – How to select a subset of test cases from the set of all possible test cases? Ladislav Samuelis: Notes on Teaching 13 of 23 Software Testing
  • 14. A scheme of testing (a mathematical approach) Ladislav Samuelis: Notes on Teaching 14 of 23 Software Testing
  • 15. The theory of Goodenough and Gerhart (very simplified explanation of the ideal test) P “runs” and gives B number of bugs. We create new set Tk until Bk ≥ B. Then it is an ideal test. • D = input domain, T≤D, d є D • P= program, result is P(d) • d is true, if output P(d) is acceptable Ladislav Samuelis: Notes on Teaching 15 of 23 Software Testing
  • 16. Other testing theories • Theory of Weyuker and Ostrand, Gourlay • Dines Bjørner: On a Triptych of Software Development – Domain engineering, – Requirements engineering, – Design • SEMAT initiative Question: How much testing theory do we have to teach? Ladislav Samuelis: Notes on Teaching 16 of 23 Software Testing
  • 17. Power law The notion of power laws has been around for more than a century. P(x) ~ c.x−k Question: What does it mean in software testing? Ladislav Samuelis: Notes on Teaching 17 of 23 Software Testing
  • 18. Power law and software testing • Object-oriented software ~ network of objects. • It is worth to test less complex classes than many trivial classes. Note: This is an empirical “law” or concept , rarely taught in testing courses. Ladislav Samuelis: Notes on Teaching 18 of 23 Software Testing
  • 19. Gödel’s incompleteness theorem • No computer program is capable of proving all programs. • For any consistent system of axioms there will always be statements that are improvable within the system. Ladislav Samuelis: Notes on Teaching 19 of 23 Software Testing
  • 20. Teaching of Gödel's incompleteness theorems? • Elaine Weyuker - Evaluating Software Test Data Adequacy (1988) Question: Where are the places of Gödel’s theorems in software engineering courses? Ladislav Samuelis: Notes on Teaching 20 of 23 Software Testing
  • 21. Note on testing and deductive reasoning • Deductive reasoning; – Major premise – initial set of facts – Minor premise – goal fact • For example, PROLOG program – the inference engine gives the verdict. • Not-PROLOG program – no inference engine, program is executed and tester “gives a verdict” against requirements. Ladislav Samuelis: Notes on Teaching 21 of 23 Software Testing
  • 22. Questions on the role of observation in software testing Questions: Why do we select observations? Where do we perform the observation? In which phase of the product lifecycle do we perform observations? Ladislav Samuelis: Notes on Teaching 22 of 23 Software Testing
  • 23. Notes on the history of testing concurrent programs • Before object-oriented programming: – mechanisms for ensuring mutual exclusion (Dijkstra), – monitors (Hoare) and – critical regions (Brinch-Hansen) Question: What topics to teach in concurrent program testing? Ladislav Samuelis: Notes on Teaching 23 of 23 Software Testing