SlideShare a Scribd company logo
Pragmatic Software
Testing Education
Maurício Aniche, Felienne Hermans, Arie van Deursen
(experience report)
Why software testing?
● Because society needs software that
works!
● Fundamental activity in software
development.
● Academic perspective: several open
challenges.
● Industry perspective: "Very popular"
nowadays, companies want developers
who know how to test.
Teach software testing can be tricky
● ST is an elective course in many
universities (Wong, 2012)
● Little attention is given to ST, given
the large number of topics already
covered (Clarke et al., 2014)
● Lack of educational tools and
integration with other courses.
● A clear curriculum (topic of today)
Worlds Apart
● Developers and academia talk
about different things when it
comes to software testing.
● Example: the term "automated
software testing".
Garousi, Vahid, and Michael Felderer. "Worlds apart: industrial and
academic focus areas in software testing." IEEE Software 34.5 (2017):
38-45.
Academics
● The oracle problem
● Test case generation
● Search-based software testing
● Model-based software testing
Developers
● xUnit frameworks
● The Testing Pyramid
● Mocking
● What to test? What not to test?
(This list was not developed in a systematic way)
How to combine both perspectives?
Pragmatic software testing @ TU Delft
● 4th quarter, 1st year CS
○ The real main requirement is to
know Java
● 5 ECTS (140 hours)
○ 2 lectures of 1.5h/week
○ 4 hours of labwork/week
● Large number of students
○ In 2017, 300 students.
○ In 2018, 450 students.
○ In 2019, ~750 students (expected)
● Assessment:
○ Midterm + exam (MC questions) 75%
○ Labwork 25%
9 key elements!
● Theory applied in the lecture.
● Real-world pragmatic discussions.
● Build a testing mindset.
● Software testing automation.
● A hands-on labwork.
● Test code quality matters.
● Design systems for testability.
● Mixture of pragmatic and theoretical books
● Interaction with practitioners.
Applied theory
● We believe in theory. But we prefer applied
theory.
● Whatever theory we show to them, we also
show to apply it in practice, e.g.,
○ We devise tests for a state machine, and later write
them as JUnit tests.
○ We devise tests for complex decision tables, and later
we write them as JUnit tests.
● Important: the theory and the practice happen
during our lecture.
○ Students see us coding.
Pragmatic discussions
● Software testing is challenging, and
exhaustive testing is impossible. In practice,
developers have to make trade-offs.
● We discuss such real-life trade-offs:
○ How much should I test?
○ Should this piece of code be tested at unit or
integration level?
○ Should I mock this class?
Building a testing mindset
● Students might not see testing as
"something cool".
● We want them to have a testing mindset.
How?
○ Showing that testing is a creative activity
○ Showing how to apply it in practice
○ Bringing guest lectures who discuss the importance
of software testing
Software testing automation
● Industry has been long advocating the use of
test automation.
● Our students:
○ Devise tests using theoretical knowledge (e.g., they
devise test cases in a piece of paper)
○ They later write the tests in an automated manner.
● To that aim, students need to learn tools:
○ Junit
○ Mockito
○ Selenium / Cucumber
Hands-on labwork
● We consider getting your hands dirty highly
important when learning software testing.
● Students apply all their knowledge in
JPacman.
○ 3k lines of code
○ Devised specially for this course
○ Enables them to practice the different techniques
we teach.
● Open source:
https://github.com/serg-delft/jpacman-framework
(we are still working on a Teachers' Guide. If you want to use it now,
just email us)
Test code quality matters
● Real life developers have to deal with large
test codebases.
○ Empirical research shows that test smells are
common...
● Code quality matters.
● Our TAs are trained to be picky!
Design for testability
● Software architecture meets software
testing.
● More specifically, we discuss how to design
systems that ease testability, e.g.,
○ How can I test my application when it depends on a
database?
○ How can I test my mobile app if it depends so much
on the Android's APIs, which are unmockable?
● JPacman is a good example of a testable
system.
Theoretical and practical books
● We consider both the theoretical and the
pragmatic part important.
● Thus, we suggest different books for these
two different aspects.
○ Theory: ISTQB
○ Practice: Pragmatic Unit Testing in Java 8.
Interaction with practitioners
● Guest lectures are fundamental for students.
● Maybe not for them to learn any new
practice, but for them to see how trade-offs
happen in practice.
● We have tried online AMA sessions.
We were curious...
● RQ1: What common mistakes do students
make when learning software testing?
● RQ2: Which software testing topics do
students ind hardest to learn?
● RQ3: Which teaching methods do students
find most helpful?
Research methodology:
● Survey with 84 students.
● Survey with 10 TAs.
● Analysis of ~2k feedback statements from
our TAs to students.
Their common mistakes
● Test coverage (416 times, 20.87%).
○ Students commonly either miss tests, i.e., they do not provide all the expected tests for a given piece
of code, or they write tests that are not totally correct, e.g., the test does not actually test the piece
of code.
● Maintainability of test code (407 times, 20.42%).
○ Better naming and excessive complexity, code duplication and lack of reusability, tests that could be
split in two, better usage of test cleanup features, such as JUnit’s Before and After.
● Understanding testing concepts (306 times, 15.35%).
○ Advantages and disadvantages of unit and system tests, and the importance of removing test
smells.
● Boundary testing (258 times, 12.95%).
○ Students miss some of the boundaries.
Their common mistakes
● State-based testing (247 times, 12.39%)
○ students often miss or create wrong states or events (56) and transitions (72).
● Assertions (158 times, 7.93%)
○ Missing assertions.
● Mock Objects (117 times, 5.87%)
○ how to properly verify interactions with mock objects (i.e., Mockito’s ‘verify’ method) and to explain
when one should mock an object.
● Tools (84 times, 4.21%).
○ AssertJ and Cucumber can be tricky to use.
Topics hard to learn
Topics hard to learn
Using the JUnit framework (Q1) as
well as to think about the
Act-Arrange-Assert pattern that
composes any unit test (Q2) easy to
learn.
(Matches the number of feedback
related to tools in previous RQ)
Topics hard to learn
MC/DC is not an easy coverage
criteria. However, structural testing
in general was considered a
somewhat easy topic.
Topics hard to learn
Pragmatism (choose the right test
level, how much to test + minimum
set of tests that gives confidence) is
not easy to learn.
Topics hard to learn
Students think Mock Objects are an
easy topic.
However, when it comes to best
practice, although students overall
perceive it as easy, TAs disagree.
This also contradicts data in RQ1.
Favourite learning methods
We still lack books that students
can enjoy...
Favourite learning methods
They enjoy guest lectures.
However, they did not enjoy AMA
as much as we'd have hoped.
We conjecture it's due to their lack
of experience, i.e., it's hard for
them to come up with questions
for practitioners.
Favourite learning methods
Live coding and discussions are
appreciated.
Where we are now?
● Better balance between formative and
summative assessments.
● Scalability issues in assessment:
○ Try self-assessment.
○ MC questions are not my favorite option.
● Increase the testing challenges in JPacman
● Write lecture notes (open book)
Pragmatic Software Testing Education
Maurício Aniche - m.f.aniche@tudelft.nl
Felienne Hermans - f.f.j.hermans@liacs.leidenuniv.nl
Arie van Deursen - arie.vandeursen@tudelft.nl
Photos in this presentation
● Photo by Houcine Ncib: https://unsplash.com/photos/jEYwJ4MYcAM
● Photo by Michał Parzuchowski: https://unsplash.com/photos/geNNFqfvw48
● Photo by 贝莉儿 NG: https://unsplash.com/photos/kWvsIYwUkJs
● Photo by Liam Welch: https://unsplash.com/photos/mVS69QbE4H4
● Photo by adrian: https://unsplash.com/photos/yocwPcXJe9c
● Photo by Dane Deaner: https://unsplash.com/photos/JNpmCYZID68
● Photo by John Doyle: https://unsplash.com/photos/RSgwLqIWH8w
● Photo by Markus Spiske: https://unsplash.com/photos/tGcCXy5bfzQ
● Photo by Elisa Michelet: https://unsplash.com/photos/b4EsL48DIK0
● Photo by Jon Tyson: https://unsplash.com/photos/TBtsrLYebSU
● Photo by Damir Bosnjak: https://unsplash.com/photos/W5qJExlQTGI

More Related Content

What's hot

Test construction
Test constructionTest construction
Test construction
munsif123
 
2014 what-is-a-cat-narrated
2014 what-is-a-cat-narrated2014 what-is-a-cat-narrated
2014 what-is-a-cat-narrated
Ryan Haroldson
 
Using interactive models to enhance UML education
Using interactive models to enhance UML educationUsing interactive models to enhance UML education
Using interactive models to enhance UML education
Stephen Frezza
 
Zmitrowicz SQA DAYS EU Riga
Zmitrowicz SQA DAYS EU RigaZmitrowicz SQA DAYS EU Riga
Zmitrowicz SQA DAYS EU Riga
KAROLINA ZMITROWICZ
 
#LearnPAd prototype early validation - feedbacks from end users
#LearnPAd prototype early validation - feedbacks from end users#LearnPAd prototype early validation - feedbacks from end users
#LearnPAd prototype early validation - feedbacks from end users
Andrea Sergiacomi
 
Instrument development process
Instrument development processInstrument development process
Instrument development process
munsif123
 
Istqb foundation level
Istqb foundation levelIstqb foundation level
Istqb foundation level
Le Trung Hieu
 
Lecture 3. Computer-based assessment
Lecture 3. Computer-based assessmentLecture 3. Computer-based assessment
Lecture 3. Computer-based assessment
Georgiy Gerkushenko
 
WE16 - How do Faculty Ensure Student Competency at Course Completion?
WE16 - How do Faculty Ensure Student Competency at Course Completion?WE16 - How do Faculty Ensure Student Competency at Course Completion?
WE16 - How do Faculty Ensure Student Competency at Course Completion?
Society of Women Engineers
 
Java parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its applicationJava parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its application
Roya Hosseini
 
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
Supersede
 
Innovations in EAP oral assessment: the IOA project
Innovations in EAP oral assessment: the IOA projectInnovations in EAP oral assessment: the IOA project
Innovations in EAP oral assessment: the IOA project
Prithvi Shrestha
 
Empirical Evaluation of Active Learning in Recommender Systems
Empirical Evaluation of Active Learning in Recommender SystemsEmpirical Evaluation of Active Learning in Recommender Systems
Empirical Evaluation of Active Learning in Recommender Systems
University of Bergen
 
Addictive links, Keynote talk at WWW 2014 workshop
Addictive links, Keynote talk at WWW 2014 workshopAddictive links, Keynote talk at WWW 2014 workshop
Addictive links, Keynote talk at WWW 2014 workshop
Peter Brusilovsky
 
SBAC Performance Task Overview
SBAC Performance Task OverviewSBAC Performance Task Overview
SBAC Performance Task Overview
Glenn E. Malone, EdD
 
7.1 ealta guidelines
7.1 ealta guidelines7.1 ealta guidelines
7.1 ealta guidelines
Jesús Ángel González López
 
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculum
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculumSept 6 2021 BTech Artificial Intelligence and Data Science curriculum
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculum
Ferdin Joe John Joseph PhD
 
Thesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.ppt
Ptidej Team
 
Get Involved Early: A Tester’s Experience with Requirements
Get Involved Early: A Tester’s Experience with RequirementsGet Involved Early: A Tester’s Experience with Requirements
Get Involved Early: A Tester’s Experience with Requirements
TechWell
 
Computer based test designs (cbt)
Computer based test designs (cbt)Computer based test designs (cbt)
Computer based test designs (cbt)
munsif123
 

What's hot (20)

Test construction
Test constructionTest construction
Test construction
 
2014 what-is-a-cat-narrated
2014 what-is-a-cat-narrated2014 what-is-a-cat-narrated
2014 what-is-a-cat-narrated
 
Using interactive models to enhance UML education
Using interactive models to enhance UML educationUsing interactive models to enhance UML education
Using interactive models to enhance UML education
 
Zmitrowicz SQA DAYS EU Riga
Zmitrowicz SQA DAYS EU RigaZmitrowicz SQA DAYS EU Riga
Zmitrowicz SQA DAYS EU Riga
 
#LearnPAd prototype early validation - feedbacks from end users
#LearnPAd prototype early validation - feedbacks from end users#LearnPAd prototype early validation - feedbacks from end users
#LearnPAd prototype early validation - feedbacks from end users
 
Instrument development process
Instrument development processInstrument development process
Instrument development process
 
Istqb foundation level
Istqb foundation levelIstqb foundation level
Istqb foundation level
 
Lecture 3. Computer-based assessment
Lecture 3. Computer-based assessmentLecture 3. Computer-based assessment
Lecture 3. Computer-based assessment
 
WE16 - How do Faculty Ensure Student Competency at Course Completion?
WE16 - How do Faculty Ensure Student Competency at Course Completion?WE16 - How do Faculty Ensure Student Competency at Course Completion?
WE16 - How do Faculty Ensure Student Competency at Course Completion?
 
Java parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its applicationJava parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its application
 
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
 
Innovations in EAP oral assessment: the IOA project
Innovations in EAP oral assessment: the IOA projectInnovations in EAP oral assessment: the IOA project
Innovations in EAP oral assessment: the IOA project
 
Empirical Evaluation of Active Learning in Recommender Systems
Empirical Evaluation of Active Learning in Recommender SystemsEmpirical Evaluation of Active Learning in Recommender Systems
Empirical Evaluation of Active Learning in Recommender Systems
 
Addictive links, Keynote talk at WWW 2014 workshop
Addictive links, Keynote talk at WWW 2014 workshopAddictive links, Keynote talk at WWW 2014 workshop
Addictive links, Keynote talk at WWW 2014 workshop
 
SBAC Performance Task Overview
SBAC Performance Task OverviewSBAC Performance Task Overview
SBAC Performance Task Overview
 
7.1 ealta guidelines
7.1 ealta guidelines7.1 ealta guidelines
7.1 ealta guidelines
 
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculum
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculumSept 6 2021 BTech Artificial Intelligence and Data Science curriculum
Sept 6 2021 BTech Artificial Intelligence and Data Science curriculum
 
Thesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.ppt
 
Get Involved Early: A Tester’s Experience with Requirements
Get Involved Early: A Tester’s Experience with RequirementsGet Involved Early: A Tester’s Experience with Requirements
Get Involved Early: A Tester’s Experience with Requirements
 
Computer based test designs (cbt)
Computer based test designs (cbt)Computer based test designs (cbt)
Computer based test designs (cbt)
 

Similar to Pragmatic software testing education - SIGCSE 2019

Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Xavier Amatriain
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests Effectively
Paul Boocock
 
Machine learning: A Walk Through School Exams
Machine learning: A Walk Through School ExamsMachine learning: A Walk Through School Exams
Machine learning: A Walk Through School Exams
Ramsha Ijaz
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
Abhijeet Vaikar
 
The 't' in tel software development for tel research problems, pitfalls, and ...
The 't' in tel software development for tel research problems, pitfalls, and ...The 't' in tel software development for tel research problems, pitfalls, and ...
The 't' in tel software development for tel research problems, pitfalls, and ...
Roland Klemke
 
CloudBound K12 Presentation 2016
CloudBound K12 Presentation 2016CloudBound K12 Presentation 2016
CloudBound K12 Presentation 2016
Learnosity
 
Organization strategies to increase development productivity
Organization strategies to increase development productivityOrganization strategies to increase development productivity
Organization strategies to increase development productivity
Aaron Grant
 
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Strata 2016 -  Lessons Learned from building real-life Machine Learning SystemsStrata 2016 -  Lessons Learned from building real-life Machine Learning Systems
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Xavier Amatriain
 
Workplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing ConferenceWorkplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing Conference
Cengage Learning
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
Ivano Malavolta
 
Organizing Your First Website Usability Test - WordCamp Toronto 2016
Organizing Your First Website Usability Test - WordCamp Toronto 2016Organizing Your First Website Usability Test - WordCamp Toronto 2016
Organizing Your First Website Usability Test - WordCamp Toronto 2016
Anthony D. Paul
 
Instructional software presentation ronen cohen
Instructional software presentation  ronen cohenInstructional software presentation  ronen cohen
Instructional software presentation ronen cohen
roneninio
 
The why and what of testa
The why and what of testaThe why and what of testa
The why and what of testa
Tansy Jessop
 
Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshop
lisacrispin
 
Generating_Automated_Feedback_To_Improve_Software_Testing_Quality
Generating_Automated_Feedback_To_Improve_Software_Testing_QualityGenerating_Automated_Feedback_To_Improve_Software_Testing_Quality
Generating_Automated_Feedback_To_Improve_Software_Testing_Quality
Pratik Gundlupet Venkatesh
 
Shyam presentation prefinal
Shyam presentation prefinalShyam presentation prefinal
Shyam presentation prefinal
Shyam Raj
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
Adam Doyle
 
How Indeed asks coding interview questions
How Indeed asks coding interview questionsHow Indeed asks coding interview questions
How Indeed asks coding interview questions
Fangda Wang
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx
drennanmicah
 
Organizing Your First Website Usability Test - WordCamp Lancaster 2016
Organizing Your First Website Usability Test - WordCamp Lancaster 2016Organizing Your First Website Usability Test - WordCamp Lancaster 2016
Organizing Your First Website Usability Test - WordCamp Lancaster 2016
Anthony D. Paul
 

Similar to Pragmatic software testing education - SIGCSE 2019 (20)

Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests Effectively
 
Machine learning: A Walk Through School Exams
Machine learning: A Walk Through School ExamsMachine learning: A Walk Through School Exams
Machine learning: A Walk Through School Exams
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
 
The 't' in tel software development for tel research problems, pitfalls, and ...
The 't' in tel software development for tel research problems, pitfalls, and ...The 't' in tel software development for tel research problems, pitfalls, and ...
The 't' in tel software development for tel research problems, pitfalls, and ...
 
CloudBound K12 Presentation 2016
CloudBound K12 Presentation 2016CloudBound K12 Presentation 2016
CloudBound K12 Presentation 2016
 
Organization strategies to increase development productivity
Organization strategies to increase development productivityOrganization strategies to increase development productivity
Organization strategies to increase development productivity
 
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Strata 2016 -  Lessons Learned from building real-life Machine Learning SystemsStrata 2016 -  Lessons Learned from building real-life Machine Learning Systems
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
 
Workplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing ConferenceWorkplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing Conference
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Organizing Your First Website Usability Test - WordCamp Toronto 2016
Organizing Your First Website Usability Test - WordCamp Toronto 2016Organizing Your First Website Usability Test - WordCamp Toronto 2016
Organizing Your First Website Usability Test - WordCamp Toronto 2016
 
Instructional software presentation ronen cohen
Instructional software presentation  ronen cohenInstructional software presentation  ronen cohen
Instructional software presentation ronen cohen
 
The why and what of testa
The why and what of testaThe why and what of testa
The why and what of testa
 
Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshop
 
Generating_Automated_Feedback_To_Improve_Software_Testing_Quality
Generating_Automated_Feedback_To_Improve_Software_Testing_QualityGenerating_Automated_Feedback_To_Improve_Software_Testing_Quality
Generating_Automated_Feedback_To_Improve_Software_Testing_Quality
 
Shyam presentation prefinal
Shyam presentation prefinalShyam presentation prefinal
Shyam presentation prefinal
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
How Indeed asks coding interview questions
How Indeed asks coding interview questionsHow Indeed asks coding interview questions
How Indeed asks coding interview questions
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx
 
Organizing Your First Website Usability Test - WordCamp Lancaster 2016
Organizing Your First Website Usability Test - WordCamp Lancaster 2016Organizing Your First Website Usability Test - WordCamp Lancaster 2016
Organizing Your First Website Usability Test - WordCamp Lancaster 2016
 

More from Maurício Aniche

Can ML help software developers? (TEQnation 2022)
Can ML help software developers? (TEQnation 2022)Can ML help software developers? (TEQnation 2022)
Can ML help software developers? (TEQnation 2022)
Maurício Aniche
 
Tracing Back Log Data to its Log Statement: From Research to Practice
Tracing Back Log Data to its Log Statement: From Research to PracticeTracing Back Log Data to its Log Statement: From Research to Practice
Tracing Back Log Data to its Log Statement: From Research to Practice
Maurício Aniche
 
Test Automation Day 2018
Test Automation Day 2018Test Automation Day 2018
Test Automation Day 2018
Maurício Aniche
 
Software Testing with Caipirinhas and Stroopwafels
Software Testing with Caipirinhas and StroopwafelsSoftware Testing with Caipirinhas and Stroopwafels
Software Testing with Caipirinhas and Stroopwafels
Maurício Aniche
 
Code smells in MVC applications (Dutch Spring meetup)
Code smells in MVC applications (Dutch Spring meetup)Code smells in MVC applications (Dutch Spring meetup)
Code smells in MVC applications (Dutch Spring meetup)
Maurício Aniche
 
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
Maurício Aniche
 
Code quality in MVC systems - BENEVOL 2016
Code quality in MVC systems - BENEVOL 2016Code quality in MVC systems - BENEVOL 2016
Code quality in MVC systems - BENEVOL 2016
Maurício Aniche
 
A Validated Set of Smells for MVC Architectures - ICSME 2016
A Validated Set of Smells for MVC Architectures - ICSME 2016A Validated Set of Smells for MVC Architectures - ICSME 2016
A Validated Set of Smells for MVC Architectures - ICSME 2016
Maurício Aniche
 
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
Maurício Aniche
 
DNAD 2015 - Métricas de código, pra que te quero?
DNAD 2015 - Métricas de código, pra que te quero?DNAD 2015 - Métricas de código, pra que te quero?
DNAD 2015 - Métricas de código, pra que te quero?
Maurício Aniche
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
Maurício Aniche
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Maurício Aniche
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Maurício Aniche
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
Maurício Aniche
 
O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?
Maurício Aniche
 
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
Maurício Aniche
 
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
Maurício Aniche
 
Minicurso sobre Evolução de Software no CBSoft 2011
Minicurso sobre Evolução de Software no CBSoft 2011Minicurso sobre Evolução de Software no CBSoft 2011
Minicurso sobre Evolução de Software no CBSoft 2011
Maurício Aniche
 
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary StudyMTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
Maurício Aniche
 
[TDC 2014] Métricas de código, pra que te quero?
[TDC 2014] Métricas de código, pra que te quero?[TDC 2014] Métricas de código, pra que te quero?
[TDC 2014] Métricas de código, pra que te quero?
Maurício Aniche
 

More from Maurício Aniche (20)

Can ML help software developers? (TEQnation 2022)
Can ML help software developers? (TEQnation 2022)Can ML help software developers? (TEQnation 2022)
Can ML help software developers? (TEQnation 2022)
 
Tracing Back Log Data to its Log Statement: From Research to Practice
Tracing Back Log Data to its Log Statement: From Research to PracticeTracing Back Log Data to its Log Statement: From Research to Practice
Tracing Back Log Data to its Log Statement: From Research to Practice
 
Test Automation Day 2018
Test Automation Day 2018Test Automation Day 2018
Test Automation Day 2018
 
Software Testing with Caipirinhas and Stroopwafels
Software Testing with Caipirinhas and StroopwafelsSoftware Testing with Caipirinhas and Stroopwafels
Software Testing with Caipirinhas and Stroopwafels
 
Code smells in MVC applications (Dutch Spring meetup)
Code smells in MVC applications (Dutch Spring meetup)Code smells in MVC applications (Dutch Spring meetup)
Code smells in MVC applications (Dutch Spring meetup)
 
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
 
Code quality in MVC systems - BENEVOL 2016
Code quality in MVC systems - BENEVOL 2016Code quality in MVC systems - BENEVOL 2016
Code quality in MVC systems - BENEVOL 2016
 
A Validated Set of Smells for MVC Architectures - ICSME 2016
A Validated Set of Smells for MVC Architectures - ICSME 2016A Validated Set of Smells for MVC Architectures - ICSME 2016
A Validated Set of Smells for MVC Architectures - ICSME 2016
 
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
SATT: Tailoring Code Metric Thresholds for Different Software Architectures (...
 
DNAD 2015 - Métricas de código, pra que te quero?
DNAD 2015 - Métricas de código, pra que te quero?DNAD 2015 - Métricas de código, pra que te quero?
DNAD 2015 - Métricas de código, pra que te quero?
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?
 
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
MetricMiner: Supporting Researchers in Mining Software Repositories - SCAM 2013
 
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study - W...
 
Minicurso sobre Evolução de Software no CBSoft 2011
Minicurso sobre Evolução de Software no CBSoft 2011Minicurso sobre Evolução de Software no CBSoft 2011
Minicurso sobre Evolução de Software no CBSoft 2011
 
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary StudyMTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
 
[TDC 2014] Métricas de código, pra que te quero?
[TDC 2014] Métricas de código, pra que te quero?[TDC 2014] Métricas de código, pra que te quero?
[TDC 2014] Métricas de código, pra que te quero?
 

Recently uploaded

Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
NgcHiNguyn25
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
Celine George
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
Bisnar Chase Personal Injury Attorneys
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 

Recently uploaded (20)

Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 

Pragmatic software testing education - SIGCSE 2019

  • 1. Pragmatic Software Testing Education Maurício Aniche, Felienne Hermans, Arie van Deursen (experience report)
  • 2. Why software testing? ● Because society needs software that works! ● Fundamental activity in software development. ● Academic perspective: several open challenges. ● Industry perspective: "Very popular" nowadays, companies want developers who know how to test.
  • 3. Teach software testing can be tricky ● ST is an elective course in many universities (Wong, 2012) ● Little attention is given to ST, given the large number of topics already covered (Clarke et al., 2014) ● Lack of educational tools and integration with other courses. ● A clear curriculum (topic of today)
  • 4. Worlds Apart ● Developers and academia talk about different things when it comes to software testing. ● Example: the term "automated software testing". Garousi, Vahid, and Michael Felderer. "Worlds apart: industrial and academic focus areas in software testing." IEEE Software 34.5 (2017): 38-45.
  • 5. Academics ● The oracle problem ● Test case generation ● Search-based software testing ● Model-based software testing Developers ● xUnit frameworks ● The Testing Pyramid ● Mocking ● What to test? What not to test? (This list was not developed in a systematic way) How to combine both perspectives?
  • 6. Pragmatic software testing @ TU Delft ● 4th quarter, 1st year CS ○ The real main requirement is to know Java ● 5 ECTS (140 hours) ○ 2 lectures of 1.5h/week ○ 4 hours of labwork/week ● Large number of students ○ In 2017, 300 students. ○ In 2018, 450 students. ○ In 2019, ~750 students (expected) ● Assessment: ○ Midterm + exam (MC questions) 75% ○ Labwork 25%
  • 7. 9 key elements! ● Theory applied in the lecture. ● Real-world pragmatic discussions. ● Build a testing mindset. ● Software testing automation. ● A hands-on labwork. ● Test code quality matters. ● Design systems for testability. ● Mixture of pragmatic and theoretical books ● Interaction with practitioners.
  • 8. Applied theory ● We believe in theory. But we prefer applied theory. ● Whatever theory we show to them, we also show to apply it in practice, e.g., ○ We devise tests for a state machine, and later write them as JUnit tests. ○ We devise tests for complex decision tables, and later we write them as JUnit tests. ● Important: the theory and the practice happen during our lecture. ○ Students see us coding.
  • 9. Pragmatic discussions ● Software testing is challenging, and exhaustive testing is impossible. In practice, developers have to make trade-offs. ● We discuss such real-life trade-offs: ○ How much should I test? ○ Should this piece of code be tested at unit or integration level? ○ Should I mock this class?
  • 10. Building a testing mindset ● Students might not see testing as "something cool". ● We want them to have a testing mindset. How? ○ Showing that testing is a creative activity ○ Showing how to apply it in practice ○ Bringing guest lectures who discuss the importance of software testing
  • 11. Software testing automation ● Industry has been long advocating the use of test automation. ● Our students: ○ Devise tests using theoretical knowledge (e.g., they devise test cases in a piece of paper) ○ They later write the tests in an automated manner. ● To that aim, students need to learn tools: ○ Junit ○ Mockito ○ Selenium / Cucumber
  • 12. Hands-on labwork ● We consider getting your hands dirty highly important when learning software testing. ● Students apply all their knowledge in JPacman. ○ 3k lines of code ○ Devised specially for this course ○ Enables them to practice the different techniques we teach. ● Open source: https://github.com/serg-delft/jpacman-framework (we are still working on a Teachers' Guide. If you want to use it now, just email us)
  • 13. Test code quality matters ● Real life developers have to deal with large test codebases. ○ Empirical research shows that test smells are common... ● Code quality matters. ● Our TAs are trained to be picky!
  • 14. Design for testability ● Software architecture meets software testing. ● More specifically, we discuss how to design systems that ease testability, e.g., ○ How can I test my application when it depends on a database? ○ How can I test my mobile app if it depends so much on the Android's APIs, which are unmockable? ● JPacman is a good example of a testable system.
  • 15. Theoretical and practical books ● We consider both the theoretical and the pragmatic part important. ● Thus, we suggest different books for these two different aspects. ○ Theory: ISTQB ○ Practice: Pragmatic Unit Testing in Java 8.
  • 16. Interaction with practitioners ● Guest lectures are fundamental for students. ● Maybe not for them to learn any new practice, but for them to see how trade-offs happen in practice. ● We have tried online AMA sessions.
  • 17. We were curious... ● RQ1: What common mistakes do students make when learning software testing? ● RQ2: Which software testing topics do students ind hardest to learn? ● RQ3: Which teaching methods do students find most helpful? Research methodology: ● Survey with 84 students. ● Survey with 10 TAs. ● Analysis of ~2k feedback statements from our TAs to students.
  • 18. Their common mistakes ● Test coverage (416 times, 20.87%). ○ Students commonly either miss tests, i.e., they do not provide all the expected tests for a given piece of code, or they write tests that are not totally correct, e.g., the test does not actually test the piece of code. ● Maintainability of test code (407 times, 20.42%). ○ Better naming and excessive complexity, code duplication and lack of reusability, tests that could be split in two, better usage of test cleanup features, such as JUnit’s Before and After. ● Understanding testing concepts (306 times, 15.35%). ○ Advantages and disadvantages of unit and system tests, and the importance of removing test smells. ● Boundary testing (258 times, 12.95%). ○ Students miss some of the boundaries.
  • 19. Their common mistakes ● State-based testing (247 times, 12.39%) ○ students often miss or create wrong states or events (56) and transitions (72). ● Assertions (158 times, 7.93%) ○ Missing assertions. ● Mock Objects (117 times, 5.87%) ○ how to properly verify interactions with mock objects (i.e., Mockito’s ‘verify’ method) and to explain when one should mock an object. ● Tools (84 times, 4.21%). ○ AssertJ and Cucumber can be tricky to use.
  • 20. Topics hard to learn
  • 21. Topics hard to learn Using the JUnit framework (Q1) as well as to think about the Act-Arrange-Assert pattern that composes any unit test (Q2) easy to learn. (Matches the number of feedback related to tools in previous RQ)
  • 22. Topics hard to learn MC/DC is not an easy coverage criteria. However, structural testing in general was considered a somewhat easy topic.
  • 23. Topics hard to learn Pragmatism (choose the right test level, how much to test + minimum set of tests that gives confidence) is not easy to learn.
  • 24. Topics hard to learn Students think Mock Objects are an easy topic. However, when it comes to best practice, although students overall perceive it as easy, TAs disagree. This also contradicts data in RQ1.
  • 25. Favourite learning methods We still lack books that students can enjoy...
  • 26. Favourite learning methods They enjoy guest lectures. However, they did not enjoy AMA as much as we'd have hoped. We conjecture it's due to their lack of experience, i.e., it's hard for them to come up with questions for practitioners.
  • 27. Favourite learning methods Live coding and discussions are appreciated.
  • 28. Where we are now? ● Better balance between formative and summative assessments. ● Scalability issues in assessment: ○ Try self-assessment. ○ MC questions are not my favorite option. ● Increase the testing challenges in JPacman ● Write lecture notes (open book)
  • 29.
  • 30. Pragmatic Software Testing Education Maurício Aniche - m.f.aniche@tudelft.nl Felienne Hermans - f.f.j.hermans@liacs.leidenuniv.nl Arie van Deursen - arie.vandeursen@tudelft.nl
  • 31. Photos in this presentation ● Photo by Houcine Ncib: https://unsplash.com/photos/jEYwJ4MYcAM ● Photo by Michał Parzuchowski: https://unsplash.com/photos/geNNFqfvw48 ● Photo by 贝莉儿 NG: https://unsplash.com/photos/kWvsIYwUkJs ● Photo by Liam Welch: https://unsplash.com/photos/mVS69QbE4H4 ● Photo by adrian: https://unsplash.com/photos/yocwPcXJe9c ● Photo by Dane Deaner: https://unsplash.com/photos/JNpmCYZID68 ● Photo by John Doyle: https://unsplash.com/photos/RSgwLqIWH8w ● Photo by Markus Spiske: https://unsplash.com/photos/tGcCXy5bfzQ ● Photo by Elisa Michelet: https://unsplash.com/photos/b4EsL48DIK0 ● Photo by Jon Tyson: https://unsplash.com/photos/TBtsrLYebSU ● Photo by Damir Bosnjak: https://unsplash.com/photos/W5qJExlQTGI