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

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

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