SlideShare une entreprise Scribd logo
1  sur  26
Software Testing for
International Students
Yes! You can test it!
I will talk about…
 I wish to share the title of my project today: 'Software Testing for
International Students - Yes! You Can Test it!'
 In my presentation I will show facts, histories and funny things about software
testing. But I will not be so technical! I will just explain some basic concepts e
techniques. At the end of the presentation, I thinking to do a simple activity,
in groups of 3 students. I'm focus in produce something not boring, but
interesting for you!!!! :-)
 Also, I intend to share some facts about the Software Tester profession,
weekly;
Facts – Week 1
The evolution of testing – Part 1
The Evolution of Testing – Part 1
The evolution of testing – Part 1
Some decades ago, systems were smaller, less complex and didn’t communicate
with other systems. So, a single professional could have knowledge about the entire
system. The same professional designed, developed and tested the system. There was
no reason to exist professionals like Test Analysts or Software Testers to exist.
However, the software systems have become bigger and more complex. Different
software systems have started to communicate to each other. Now was impossible a
single professional keep all the knowledge. Professionals like Business Analyst,
Software Architect and Test Analyst/Software Tester have became indispensable to
create systems with quality.
Today, the systems are very integrated to each other. For example, imagine an
online shop where you can buy and consult your orders both by an app in your phone,
or by a browser in your laptop. These two different platforms now have to access the
same database to provide the information that you request.
A team developed the web system and another team developed the mobile
system. Now the knowledge is split into different teams and different professionals.
Someone have to test both systems to guarantee that they are working fine. That
professional is the Test Analyst and the Software Tester. Today these professionals
have became indispensable.
Facts – Week 2
The evolution of testing – Part 2
The evolution of testing – Part 2
Today, it is very common for software to need improvements, updates and failure fixes. Every new
version is tested before be released to users. However, the software is not tested only in that feature which
was fixed or improved: the ENTIRE software must be retested to guarantee that the other functionalities
are still working well. This kind of testing is called ‘Regression Testing’.
As the systems can be very complex and big, testing the entire system can be a hard task, taking too
much time. Now, imagine that the fix is something extremely important (a safe fix for example) and a
Regression Testing can take days to be finished. We can not wait days to release this fix, right?
In fact, we can’t wait. Today the testing activities have to be very agile and quick in order to not
impact the releases of new software versions. So, to improve the testing activities, we use ‘Automation
Testing’.
Basically, ‘Automation Testing’ is the activity of recording the actions during the execution of manual
testings in a automation tool, and then ‘playing’ again these actions in newer versions of the software under
testing. The advantage? Saving time!!! The tests which could need days to be executed manually, now can
be executed in a few hours because the execution becomes very quick when automated.
In addition, the software companies have awoken to the importance of automation testing, then they
are investing hardly in this kind of testing, adopting automation tools in their processes of system
development. They are looking for professionals capable of working with these tools, but still aren’t enough
professionals available in job market. Automation testing looks like be the future of testing.
The Cake
Following the instructions
Instructions for Baking a Cake
Instructions to baking a cake
1. In a bowl, put:
2 cups of flour;
1 cup of sugar;
2 eggs;
1 spoon of yeast;
2. Put all the ingredients from
previous instruction inside a
pan
3. Put the pan inside a oven
4. Wait for 45 minutes
RESULT: ???????
Have you ever baked a cake? If yes, you probably followed some
instructions to bake the cake. Were the instructions clear?
Let’s take the example to the right. What will be the result if you
follow the instructions? Well, if you have previous experience with baking,
the result can be satisfactory. However, if you don’t have experience, the
result will be a disaster… Why?
Look the last item of the first instruction: what kind of yeast do we
have to use? The chemical yeast or the biological yeast? The information is
not clear.
Another example: the second instruction says to put all the
ingredients in a baking dish. Do we have to mix the ingredients before
putting them inside the pan? Or do we have mix the ingredients inside the
pan? Obviously, an important instruction is missing: mixing the ingredients.
By the way: In what order do we have to mix the ingredients?
If you don’t have expertise with baking, and resolve following only
what is inside these instructions, your cake will not by cooked. Why? Look
at the instruction: Is there an instruction saying “turn on the oven”?
The concept behind the cake
This example shows an important concept present both in testing and developing activities:
the clarity of the information. The information has to be clear, without ambiguity! Why is this
important? Because if the information is ambiguous, different interpretations can be made and,
as a consequence, a different result from what is expected can be obtained. The picture bellow
can be used as an example of the consequences:
Writing test instructions
Before testing activities, instructions about what tests have to be made on software can be
written. Each different test can be written as a sequence of instructions, similar to the example
of baking a cake. Each set of instructions is called ‘Test Case’. Basically, a Test Cause is a
compound of: a title, a sequence of instructions, and the expected result*. By the way, a single
instruction can also have an expected result – and this result must be written near of the
instruction.
So, different sequences of instructions can produce different results. Let’s look at the
following examples of Baking a Cake:
*A test case has other parts, but in order to facilitate our understanding, we will focus only in these three parts
Different instructions – different results
Test Case 1: testing the yeast
1. In a bowl, put, in this order:
2 cups of flour;
1 cup of sugar;
1 spoon of chemical yeast;
2. Mix the ingredients;
3. Put in the middle of the bowl:
2 eggs;
1 cup of warm water;
4. Mix all the ingredients;
5. Put all the ingredients from the bowl
inside a greased pan;
6. Put the pan inside an oven;
7. Wait for 45 minutes;
RESULT: The batter will cook and rise, but
will not be cooked
Test Case 2: baking the cake
1. In a bowl, put, in this order:
2 cups of flour;
1 cup of sugar;
1 spoon of chemical yeast;
2. Mix the ingredients;
3. Put in the middle of the bowl:
2 eggs;
1 cup of warm water;
4. Mix all the ingredients;
5. Put all the ingredients from the bowl
inside a greased pan;
6. Turn on the oven at 400°F;
7. Put the pan inside an oven;
8. Wait for 45 minutes;
RESULT: The batter will cook and rise and
be cooked properly.
Writing test instructions
As you can see, a single different instruction results in a different outcome. So, can you
imagine what can happen if the instructions are not clear? Yes! Anything can happen!
Communicating a
Failure
Working as a team
Communicating a Failure
The goal of a software tester is to find failures in the software as much as possible, but this
is only the first step. He has to communicate this failure, take evidence, make description of how
to reproduce the error and then send to someone to fix it.
For a software be successful, all professionals involved must work together as a team. But,
what does that mean? Well, let’s take a real example that happened this week:
Communicating a Failure
In this example, Tracy tried to edit a document from Google Docs using the browser Microsoft
Edge (Microsoft Edge is the substitute of the browser Microsoft Internet Explorer). However, in
this browser the edition of the document didn’t work!!! She ask me for some ideas to resolve
this.
So, the first thing I asked: can you describe what do you did to get this problem? Tracy described
the reasons to me why she wanted to use the Edge, so I asked for a screenshot with the message.
In addition, Tracy described me the reasons why she wish to use the Edge: if she uses the browser
Chrome, she will be logout of this account only a few minutes later, automatically. This behavior
was making Tracy waste a lot of time.
That browser’s behavior seemed weird to me. So I ask for more information: the version of
windows on her laptop. Then I had all the information I needed to try find a solution: the
browser, the version of Windows system, images of the error, a description about how to
reproduce the problem, and the impact of this problem on her activities.
In this story, Tracy was the tester and I was the analyst/developer.
Communicating a Failure
So, what does it mean to work as a team? Tracy gave me all the information I needed to try find
a solution. When a software tester finds a failure, he has to collect all the information that can
help the developer or the system analyst understand the problem. Everyone involved in a
software project has to supply each other with information as much as possible.
If the software tester is not clear when communicating a failure, the time to fix the problem will
be longer, or worse: another problem will be fixed, or the problem will be fixed partially. What
does that mean? That means a waste of time, waste of money and stress between the team.
Usually, before to collect the information about the failure, a software tester talks with
developers and analysts in order to be sure that this failure is really a problem. In this moment,
the software tester has to be very polite when he is talking about the problem.
As a team, the focus must be on fixing the problems, not accusing others for being responsible
for the problem. The software tester has to talk with developers and analysts wisely. How?
Communicating a Failure
Bellow are some examples of how to NOT talk:
 Hey! I found a problem in your code!
 You made a mistake!
 Your code in that software are not good!
 You developed that page wrong!
 You didn't fix anything!
As you can see, this approach is blaming the others!
In our previous example, we know the needs and the ‘pains’ of Tracy with that problem. When
talking with developers and analysts to report a problem, the software tester must keep in mind
that they also have their ‘pains’, for example: they probably are working on many different
projects at the same time (work overload), or maybe they worked until late to release that
version for the software tester to begin his work. So, how to proceed?
Communicating a Failure
Bellow are some examples of HOW to talk:
 Hey! I have a question about that page! Can you help me?
 I think I’ve found something, but I’m not sure!
 There is something that is not very clear! Can you help me?
 Can you explain to me how that software works at this point?
 Does my test make sense in this case?
As you can see, this approach is focused on the problem. The software tester is looking for
resolve the issue, not find a responsible for it. Everyone is working together, as a team. In
addition, this approach gives also the ‘benefit of the doubt’. What does it mean? It means that
the software tester can also make mistakes. What looks like a problem to him can be just a
feature and, as a consequence, not a failure!
#funny: The Hard Life of a Tester
https://www.youtube.com/watch?v=_QV13mhwOkI
Documentation
Writing And Showing What You Have Done
Documentation
In the chapter ‘The cake – Following the instructions’, we talk about the importance of clear
instructions and a bit of test cases. Is a test case useful only for executing instructions?
Absolutely not!! The test case can be utilized by developers, analysts and even by the software
sponsor!!! Why?? Let’s see an example (This example is FICTIONAL, for didactic purposes only).
In the previous chapter (Communicating a Failure), we talk about an issue that Tracy had with
the Edge Browser. Imagine that she works for Microsoft as a test analyst, and she has to describe
this problem to Bill Gates – he will be the system analyst. Imagine that after a developer fixes
the problem, someone else will retest it to guarantee that the failure has been fixed.
So, Tracy has described the issue and has made a Test Case with the same steps that she made to
cause the issue. This document was sent to Bill Gates. There, Bill Gates reads the document and
realizes that the issue is a compatibility problem between Google Docs and the browser.
However, the compatibility problem is not in the Edge Browser, but in the Google Docs. So, Bill
Gates sends the failure description and the Test Case to Google. Meanwhile, Bill Gates suggests a
temporary solution: use the Internet Explorer Browser until the problem is fixed.
Documentation
In this fictional example, the test case was sent to two different companies. Without the test
case, the information about the problem wouldn’t be shared. In the real world, a test case is
used for test analysts, developers, analysts and even the sponsor. The test case is a document
that allows the specialists to know what tests have been executed in a given software release
and what results have been obtained, and SHARE this results with the team.
Also, they can be used as proof that the software was working well when it was released the
testing team. Here is a real and very common example: When software is released to the public
and doesn’t work, many times the first question is ‘The testing team didn’t get this (failure)?’.
With the test case and their results, it’s possible to prove that the testing team did made their
work well, and discovered that the problem was caused by a new code inserted into the software
BEFORE the software passed by the hands of the testing team.
Obviously, no new code can be inserted in the software version after being passed by the testing
team. If this happens, the software must be retested again before be released to users. But we
are in the real world!!! Emergencies happen and many times some fixes have to be inserted in
the software even when the testing team is testing the software – and there is not enough time
to retest all. A solution for this is the testing automation – as we saw in previous chapters.
Documentation
Ok, test cases are important as we have just seen. But, is it possible to have failures and errors
in the steps of a test case? YES!!! Are there some techniques to avoid this? YES!!!
When I was writing this chapter during the class, Tracy stayed at my side making a revision and
found a lot of grammar errors. Then I just fixed them. We have just made a peer review!!! This is
a technique used to find problems or ambiguities in a test case. Also, is a technique used for
review codes!!! Yes! Another developer can sit at the side of the developer who wrote a code and
then revise everything – and find failures before the software be sent to testing!
Usually a test analyst/software test analyzes the test case elaborated by another one. This
allows to these professionals to revise and improve the test case and find eventual errors.
#funny: Installing a New Software
#funny: Are you qualified to be a tester?
https://www.youtube.com/watch?v=t4Y-082CgHw

Contenu connexe

En vedette

Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Coupa Software
 
Advanced Software Test Automation
Advanced Software Test AutomationAdvanced Software Test Automation
Advanced Software Test AutomationUnmesh Ballal
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanQA or the Highway
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationLior Tal
 
Testing Software
Testing SoftwareTesting Software
Testing Softwareodelorenzi
 
Testing web services by Stan Jónsson
Testing web services by Stan JónssonTesting web services by Stan Jónsson
Testing web services by Stan JónssonQA or the Highway
 
Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration TestCampRO
 
Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Chuan Chuan Law
 
Distributed Testing Environment
Distributed Testing EnvironmentDistributed Testing Environment
Distributed Testing EnvironmentŁukasz Morawski
 
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
Scrum gathering Paris 2013 -  test automation strategy for Scrum ProjectsScrum gathering Paris 2013 -  test automation strategy for Scrum Projects
Scrum gathering Paris 2013 - test automation strategy for Scrum ProjectsEliane Collins
 
Continuous test automation
Continuous test automationContinuous test automation
Continuous test automationViresh Doshi
 
Fundamentals of Software Testing
Fundamentals of Software TestingFundamentals of Software Testing
Fundamentals of Software TestingSagar Joshi
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)Terry Cho
 
Physical Security Assessments
Physical Security AssessmentsPhysical Security Assessments
Physical Security AssessmentsTom Eston
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimationdjview
 
Agile Application Lifecycle Management (ALM)
Agile Application Lifecycle Management (ALM)Agile Application Lifecycle Management (ALM)
Agile Application Lifecycle Management (ALM)Jurgen Appelo
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesNed Potter
 

En vedette (19)

Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
 
Advanced Software Test Automation
Advanced Software Test AutomationAdvanced Software Test Automation
Advanced Software Test Automation
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Testing Software
Testing SoftwareTesting Software
Testing Software
 
Testing web services by Stan Jónsson
Testing web services by Stan JónssonTesting web services by Stan Jónsson
Testing web services by Stan Jónsson
 
Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration
 
Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law
 
Distributed Testing Environment
Distributed Testing EnvironmentDistributed Testing Environment
Distributed Testing Environment
 
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
Scrum gathering Paris 2013 -  test automation strategy for Scrum ProjectsScrum gathering Paris 2013 -  test automation strategy for Scrum Projects
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
 
Continuous test automation
Continuous test automationContinuous test automation
Continuous test automation
 
Fundamentals of Software Testing
Fundamentals of Software TestingFundamentals of Software Testing
Fundamentals of Software Testing
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)
 
Physical Security Assessments
Physical Security AssessmentsPhysical Security Assessments
Physical Security Assessments
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Agile Application Lifecycle Management (ALM)
Agile Application Lifecycle Management (ALM)Agile Application Lifecycle Management (ALM)
Agile Application Lifecycle Management (ALM)
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similaire à Software Testing for International Students

Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfSaraj Hameed Sidiqi
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101QA Hannah
 
Effective Testing fo Startups
Effective Testing fo StartupsEffective Testing fo Startups
Effective Testing fo StartupsTestnetic
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-TestingMary Clemons
 
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013TEST Huddle
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software TestingTony Ennis
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundationalessandro100
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...Yuval Yeret
 
Lloyd roden the fragility of agility
Lloyd roden   the fragility of agilityLloyd roden   the fragility of agility
Lloyd roden the fragility of agilityBouvet ASA
 
Codifying Knowledge in Tests
Codifying Knowledge in TestsCodifying Knowledge in Tests
Codifying Knowledge in TestsJohan Hoberg
 
A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileIlari Henrik Aegerter
 
Usability Testing for Technical Writers
Usability Testing for Technical WritersUsability Testing for Technical Writers
Usability Testing for Technical WritersDimiter Simov
 
How To Install TestNG in Eclipse Step By Step Guide.pdf
How To Install TestNG in Eclipse Step By Step Guide.pdfHow To Install TestNG in Eclipse Step By Step Guide.pdf
How To Install TestNG in Eclipse Step By Step Guide.pdfpCloudy
 
Art Center Interactive Design 4 - #4 Usability Testing
Art Center Interactive Design 4 - #4 Usability TestingArt Center Interactive Design 4 - #4 Usability Testing
Art Center Interactive Design 4 - #4 Usability TestingJoy Liu
 
fundamentals of testing
fundamentals of testingfundamentals of testing
fundamentals of testingaidil fitra
 

Similaire à Software Testing for International Students (20)

Testing trapeze-2014-april
Testing trapeze-2014-aprilTesting trapeze-2014-april
Testing trapeze-2014-april
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdf
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
 
Effective Testing fo Startups
Effective Testing fo StartupsEffective Testing fo Startups
Effective Testing fo Startups
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
 
int.ppt
int.pptint.ppt
int.ppt
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundation
 
bug-advocacy
bug-advocacybug-advocacy
bug-advocacy
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
 
Lloyd roden the fragility of agility
Lloyd roden   the fragility of agilityLloyd roden   the fragility of agility
Lloyd roden the fragility of agility
 
Codifying Knowledge in Tests
Codifying Knowledge in TestsCodifying Knowledge in Tests
Codifying Knowledge in Tests
 
A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and Agile
 
Usability Testing for Technical Writers
Usability Testing for Technical WritersUsability Testing for Technical Writers
Usability Testing for Technical Writers
 
How To Install TestNG in Eclipse Step By Step Guide.pdf
How To Install TestNG in Eclipse Step By Step Guide.pdfHow To Install TestNG in Eclipse Step By Step Guide.pdf
How To Install TestNG in Eclipse Step By Step Guide.pdf
 
Art Center Interactive Design 4 - #4 Usability Testing
Art Center Interactive Design 4 - #4 Usability TestingArt Center Interactive Design 4 - #4 Usability Testing
Art Center Interactive Design 4 - #4 Usability Testing
 
What is testing
What is testingWhat is testing
What is testing
 
fundamentals of testing
fundamentals of testingfundamentals of testing
fundamentals of testing
 
midterm_fa08.pdf
midterm_fa08.pdfmidterm_fa08.pdf
midterm_fa08.pdf
 

Dernier

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 

Dernier (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

Software Testing for International Students

  • 1. Software Testing for International Students Yes! You can test it!
  • 2. I will talk about…  I wish to share the title of my project today: 'Software Testing for International Students - Yes! You Can Test it!'  In my presentation I will show facts, histories and funny things about software testing. But I will not be so technical! I will just explain some basic concepts e techniques. At the end of the presentation, I thinking to do a simple activity, in groups of 3 students. I'm focus in produce something not boring, but interesting for you!!!! :-)  Also, I intend to share some facts about the Software Tester profession, weekly;
  • 3. Facts – Week 1 The evolution of testing – Part 1
  • 4. The Evolution of Testing – Part 1
  • 5. The evolution of testing – Part 1 Some decades ago, systems were smaller, less complex and didn’t communicate with other systems. So, a single professional could have knowledge about the entire system. The same professional designed, developed and tested the system. There was no reason to exist professionals like Test Analysts or Software Testers to exist. However, the software systems have become bigger and more complex. Different software systems have started to communicate to each other. Now was impossible a single professional keep all the knowledge. Professionals like Business Analyst, Software Architect and Test Analyst/Software Tester have became indispensable to create systems with quality. Today, the systems are very integrated to each other. For example, imagine an online shop where you can buy and consult your orders both by an app in your phone, or by a browser in your laptop. These two different platforms now have to access the same database to provide the information that you request. A team developed the web system and another team developed the mobile system. Now the knowledge is split into different teams and different professionals. Someone have to test both systems to guarantee that they are working fine. That professional is the Test Analyst and the Software Tester. Today these professionals have became indispensable.
  • 6. Facts – Week 2 The evolution of testing – Part 2
  • 7. The evolution of testing – Part 2 Today, it is very common for software to need improvements, updates and failure fixes. Every new version is tested before be released to users. However, the software is not tested only in that feature which was fixed or improved: the ENTIRE software must be retested to guarantee that the other functionalities are still working well. This kind of testing is called ‘Regression Testing’. As the systems can be very complex and big, testing the entire system can be a hard task, taking too much time. Now, imagine that the fix is something extremely important (a safe fix for example) and a Regression Testing can take days to be finished. We can not wait days to release this fix, right? In fact, we can’t wait. Today the testing activities have to be very agile and quick in order to not impact the releases of new software versions. So, to improve the testing activities, we use ‘Automation Testing’. Basically, ‘Automation Testing’ is the activity of recording the actions during the execution of manual testings in a automation tool, and then ‘playing’ again these actions in newer versions of the software under testing. The advantage? Saving time!!! The tests which could need days to be executed manually, now can be executed in a few hours because the execution becomes very quick when automated. In addition, the software companies have awoken to the importance of automation testing, then they are investing hardly in this kind of testing, adopting automation tools in their processes of system development. They are looking for professionals capable of working with these tools, but still aren’t enough professionals available in job market. Automation testing looks like be the future of testing.
  • 8. The Cake Following the instructions
  • 9. Instructions for Baking a Cake Instructions to baking a cake 1. In a bowl, put: 2 cups of flour; 1 cup of sugar; 2 eggs; 1 spoon of yeast; 2. Put all the ingredients from previous instruction inside a pan 3. Put the pan inside a oven 4. Wait for 45 minutes RESULT: ??????? Have you ever baked a cake? If yes, you probably followed some instructions to bake the cake. Were the instructions clear? Let’s take the example to the right. What will be the result if you follow the instructions? Well, if you have previous experience with baking, the result can be satisfactory. However, if you don’t have experience, the result will be a disaster… Why? Look the last item of the first instruction: what kind of yeast do we have to use? The chemical yeast or the biological yeast? The information is not clear. Another example: the second instruction says to put all the ingredients in a baking dish. Do we have to mix the ingredients before putting them inside the pan? Or do we have mix the ingredients inside the pan? Obviously, an important instruction is missing: mixing the ingredients. By the way: In what order do we have to mix the ingredients? If you don’t have expertise with baking, and resolve following only what is inside these instructions, your cake will not by cooked. Why? Look at the instruction: Is there an instruction saying “turn on the oven”?
  • 10. The concept behind the cake This example shows an important concept present both in testing and developing activities: the clarity of the information. The information has to be clear, without ambiguity! Why is this important? Because if the information is ambiguous, different interpretations can be made and, as a consequence, a different result from what is expected can be obtained. The picture bellow can be used as an example of the consequences:
  • 11. Writing test instructions Before testing activities, instructions about what tests have to be made on software can be written. Each different test can be written as a sequence of instructions, similar to the example of baking a cake. Each set of instructions is called ‘Test Case’. Basically, a Test Cause is a compound of: a title, a sequence of instructions, and the expected result*. By the way, a single instruction can also have an expected result – and this result must be written near of the instruction. So, different sequences of instructions can produce different results. Let’s look at the following examples of Baking a Cake: *A test case has other parts, but in order to facilitate our understanding, we will focus only in these three parts
  • 12. Different instructions – different results Test Case 1: testing the yeast 1. In a bowl, put, in this order: 2 cups of flour; 1 cup of sugar; 1 spoon of chemical yeast; 2. Mix the ingredients; 3. Put in the middle of the bowl: 2 eggs; 1 cup of warm water; 4. Mix all the ingredients; 5. Put all the ingredients from the bowl inside a greased pan; 6. Put the pan inside an oven; 7. Wait for 45 minutes; RESULT: The batter will cook and rise, but will not be cooked Test Case 2: baking the cake 1. In a bowl, put, in this order: 2 cups of flour; 1 cup of sugar; 1 spoon of chemical yeast; 2. Mix the ingredients; 3. Put in the middle of the bowl: 2 eggs; 1 cup of warm water; 4. Mix all the ingredients; 5. Put all the ingredients from the bowl inside a greased pan; 6. Turn on the oven at 400°F; 7. Put the pan inside an oven; 8. Wait for 45 minutes; RESULT: The batter will cook and rise and be cooked properly.
  • 13. Writing test instructions As you can see, a single different instruction results in a different outcome. So, can you imagine what can happen if the instructions are not clear? Yes! Anything can happen!
  • 15. Communicating a Failure The goal of a software tester is to find failures in the software as much as possible, but this is only the first step. He has to communicate this failure, take evidence, make description of how to reproduce the error and then send to someone to fix it. For a software be successful, all professionals involved must work together as a team. But, what does that mean? Well, let’s take a real example that happened this week:
  • 16. Communicating a Failure In this example, Tracy tried to edit a document from Google Docs using the browser Microsoft Edge (Microsoft Edge is the substitute of the browser Microsoft Internet Explorer). However, in this browser the edition of the document didn’t work!!! She ask me for some ideas to resolve this. So, the first thing I asked: can you describe what do you did to get this problem? Tracy described the reasons to me why she wanted to use the Edge, so I asked for a screenshot with the message. In addition, Tracy described me the reasons why she wish to use the Edge: if she uses the browser Chrome, she will be logout of this account only a few minutes later, automatically. This behavior was making Tracy waste a lot of time. That browser’s behavior seemed weird to me. So I ask for more information: the version of windows on her laptop. Then I had all the information I needed to try find a solution: the browser, the version of Windows system, images of the error, a description about how to reproduce the problem, and the impact of this problem on her activities. In this story, Tracy was the tester and I was the analyst/developer.
  • 17. Communicating a Failure So, what does it mean to work as a team? Tracy gave me all the information I needed to try find a solution. When a software tester finds a failure, he has to collect all the information that can help the developer or the system analyst understand the problem. Everyone involved in a software project has to supply each other with information as much as possible. If the software tester is not clear when communicating a failure, the time to fix the problem will be longer, or worse: another problem will be fixed, or the problem will be fixed partially. What does that mean? That means a waste of time, waste of money and stress between the team. Usually, before to collect the information about the failure, a software tester talks with developers and analysts in order to be sure that this failure is really a problem. In this moment, the software tester has to be very polite when he is talking about the problem. As a team, the focus must be on fixing the problems, not accusing others for being responsible for the problem. The software tester has to talk with developers and analysts wisely. How?
  • 18. Communicating a Failure Bellow are some examples of how to NOT talk:  Hey! I found a problem in your code!  You made a mistake!  Your code in that software are not good!  You developed that page wrong!  You didn't fix anything! As you can see, this approach is blaming the others! In our previous example, we know the needs and the ‘pains’ of Tracy with that problem. When talking with developers and analysts to report a problem, the software tester must keep in mind that they also have their ‘pains’, for example: they probably are working on many different projects at the same time (work overload), or maybe they worked until late to release that version for the software tester to begin his work. So, how to proceed?
  • 19. Communicating a Failure Bellow are some examples of HOW to talk:  Hey! I have a question about that page! Can you help me?  I think I’ve found something, but I’m not sure!  There is something that is not very clear! Can you help me?  Can you explain to me how that software works at this point?  Does my test make sense in this case? As you can see, this approach is focused on the problem. The software tester is looking for resolve the issue, not find a responsible for it. Everyone is working together, as a team. In addition, this approach gives also the ‘benefit of the doubt’. What does it mean? It means that the software tester can also make mistakes. What looks like a problem to him can be just a feature and, as a consequence, not a failure!
  • 20. #funny: The Hard Life of a Tester https://www.youtube.com/watch?v=_QV13mhwOkI
  • 21. Documentation Writing And Showing What You Have Done
  • 22. Documentation In the chapter ‘The cake – Following the instructions’, we talk about the importance of clear instructions and a bit of test cases. Is a test case useful only for executing instructions? Absolutely not!! The test case can be utilized by developers, analysts and even by the software sponsor!!! Why?? Let’s see an example (This example is FICTIONAL, for didactic purposes only). In the previous chapter (Communicating a Failure), we talk about an issue that Tracy had with the Edge Browser. Imagine that she works for Microsoft as a test analyst, and she has to describe this problem to Bill Gates – he will be the system analyst. Imagine that after a developer fixes the problem, someone else will retest it to guarantee that the failure has been fixed. So, Tracy has described the issue and has made a Test Case with the same steps that she made to cause the issue. This document was sent to Bill Gates. There, Bill Gates reads the document and realizes that the issue is a compatibility problem between Google Docs and the browser. However, the compatibility problem is not in the Edge Browser, but in the Google Docs. So, Bill Gates sends the failure description and the Test Case to Google. Meanwhile, Bill Gates suggests a temporary solution: use the Internet Explorer Browser until the problem is fixed.
  • 23. Documentation In this fictional example, the test case was sent to two different companies. Without the test case, the information about the problem wouldn’t be shared. In the real world, a test case is used for test analysts, developers, analysts and even the sponsor. The test case is a document that allows the specialists to know what tests have been executed in a given software release and what results have been obtained, and SHARE this results with the team. Also, they can be used as proof that the software was working well when it was released the testing team. Here is a real and very common example: When software is released to the public and doesn’t work, many times the first question is ‘The testing team didn’t get this (failure)?’. With the test case and their results, it’s possible to prove that the testing team did made their work well, and discovered that the problem was caused by a new code inserted into the software BEFORE the software passed by the hands of the testing team. Obviously, no new code can be inserted in the software version after being passed by the testing team. If this happens, the software must be retested again before be released to users. But we are in the real world!!! Emergencies happen and many times some fixes have to be inserted in the software even when the testing team is testing the software – and there is not enough time to retest all. A solution for this is the testing automation – as we saw in previous chapters.
  • 24. Documentation Ok, test cases are important as we have just seen. But, is it possible to have failures and errors in the steps of a test case? YES!!! Are there some techniques to avoid this? YES!!! When I was writing this chapter during the class, Tracy stayed at my side making a revision and found a lot of grammar errors. Then I just fixed them. We have just made a peer review!!! This is a technique used to find problems or ambiguities in a test case. Also, is a technique used for review codes!!! Yes! Another developer can sit at the side of the developer who wrote a code and then revise everything – and find failures before the software be sent to testing! Usually a test analyst/software test analyzes the test case elaborated by another one. This allows to these professionals to revise and improve the test case and find eventual errors.
  • 25. #funny: Installing a New Software
  • 26. #funny: Are you qualified to be a tester? https://www.youtube.com/watch?v=t4Y-082CgHw