SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
Technology Based Technical Testing
Agile Testers Conference 2018
Alan Richardson
www.eviltester.com
www.compendiumdev.co.uk
@eviltester
@EvilTester | http://EvilTester.com 1
Blurb
What do you learn if you want to test 'beyond the acceptance criteria'?
Technical risk based testing can help. In this case I'm going to use the
phrase Technical Testing to cover: "identify technology based risks to
drive testing". This thought process can help us make informed
decisions about the scope of exploratory testing we will carry out. It also
helps focus your studies on the technical knowledge appropriate for the
project you are testing.
@EvilTester | http://EvilTester.com 2
Blurb
This requires:
understanding of the technology
risk identification
tools applicable to the technology
This presentation will use a simple example to demonstrate that:
Even simple technology can pose risk
Combining simple technology can increase risk
Understanding technology allows us to evaluate risk
@EvilTester | http://EvilTester.com 3
Why this talk?
Because I was asked a simple question.
@EvilTester | http://EvilTester.com 4
I know HTML, CSS, HTTP, and JavaScript
what do I learn next?
@EvilTester | http://EvilTester.com 5
I know HTML, CSS, HTTP, and JavaScript what do I
learn next?
Do you know it?
Do you know how your application uses these?
Do you understand the HTML being used?
Do you know which elements have JavaScript events?
Do you understand the CSS in use?
Do you know how it is applied?
Have you validated it?
Are there any cross browser risks?
@EvilTester | http://EvilTester.com 6
Simple things in combination can have complex
side‑effects
When changed does caching impact?
CDN, Web Server Cache, Local Browser Cache
When are JS events hooked on to HTML?
when loaded, after rendering?
Do you use CSS animations?
Is anything loaded dynamically?
Impact on automating?
@EvilTester | http://EvilTester.com 7
If you do not understand the technology
you are not testing for technical risk effectively
@EvilTester | http://EvilTester.com 8
Agile Stories
Vary between teams
Often business focussed
Often lightweight 'conversation markers'
Acceptance Criteria provide minimum 'goodness' assertions
@EvilTester | http://EvilTester.com 9
Do Acceptance Criteria cover Technical
Considerations?
Specify if validation is JavaScript, HTML5, Server Side?
Specify libraries in use?
Specify versions of libraries?
Specify 'acceptable' browser range?
They Might. We might discuss and document this during planning
sessions.
Do they cover technical risks?
@EvilTester | http://EvilTester.com 10
Do Acceptance Criteria cover Technical Risks?
Specify if validation is JavaScript, HTML5, Server Side?
risk of validation JS code cross browser?
risk of users bypassing HTML5 validation?
risk of server side validation not matching front end?
Specify libraries in use?
CDN delivery vs Web Server
keeping versions up to date?
Specify 'acceptable' browser range?
based on what criteria?
test all functionality on all specified browsers?
Do they rarely cover technical risks?
@EvilTester | http://EvilTester.com 11
An Example
The user must be able to navigate the site from a drop down
menu
Acceptance Criteria:
Drop down menu shown
Clicking on drop down menu items navigates to specified menu
item
@EvilTester | http://EvilTester.com 12
General Risks for the Story and Acceptance
Criteria?
Drop down menu shown
What about tablets/Mobile?
Accessibility?
screen sizes?
specific browsers used?
Clicking on drop down menu items navigates to specified menu
item
How do we know correct text/link mapping?
So we decide on platforms/browser combinations and create a list of
text/link mappings.
@EvilTester | http://EvilTester.com 13
Did we consider the technology?
What JavaScript is used?
What CSS is used?
What libraries?
Is CSS generated in the build or hard coded?
Deployment of artifacts?
Caching of CSS/JS?
etc.
@EvilTester | http://EvilTester.com 14
Why are the Technologies important?
@EvilTester | http://EvilTester.com 15
Application Perspectives
different views of an app change how we test it
require different domain knowledge
business, HTML, CSS, HTTP, JavaScript, Server side
require different tools
@EvilTester | http://EvilTester.com 16
Non‑Technical Views of an app
@EvilTester | http://EvilTester.com 17
Browser View
@EvilTester | http://EvilTester.com 18
Server Communications View
@EvilTester | http://EvilTester.com 19
Why do this for testing?
"identify technology based risks to drive and limit testing"
@EvilTester | http://EvilTester.com 20
Technical Testing by (MORIM):
Modelling the application from multiple view points and multiple
technical levels.
Using tools to:
Observe the application in action,
Reflecting on what you see to approach the testing with intent
based on risks, and at different interface points.
Using tools to:
Interrogate the application to more detailed levels
Manipulating the application at detailed levels
@EvilTester | http://EvilTester.com 21
The Pulper v001
github.com/eviltester/TestingApp
@EvilTester | http://EvilTester.com 22
The Drop Down
Why is drop down menu risky for the web?
@EvilTester | http://EvilTester.com 23
Why is drop down menu risky for the web?
It doesn't exist
On Desktop it exists as a native control
It doesn't exist as a native HTML element
We have to simulate it
We have to write code
@EvilTester | http://EvilTester.com 24
If it did exist
<ddm>
   <mi><a href="/home">Home</a>
        <ddm>
            <mi><a href="/help">Help</a></mi>
            <mi><a href="/home">Home</a></mi>
        </ddm>
   </mi>
</ddm>
Why would this be less risky?
@EvilTester | http://EvilTester.com 25
Why would this be less risky?
It would be 'just HTML'.
standard
can be compliance checked
browser implements
cross‑browser testing reduced
don't test browser implementations
tool supported
automated tools will support
automated tools may have abstractions
e.g.  new DropDown().select("Home"); 
@EvilTester | http://EvilTester.com 26
But even when it is standard HTML we can introduce
risk
Different set of risks:
CSS styling
rendering of CSS, animations
Augmenting with JavaScript
@EvilTester | http://EvilTester.com 27
But it doesn't exist
Humans have to implement it. Using?
CSS?
JavaScript?
What HTML Underpinning it?
As an exercise after this talk: look at all the different implementations of
drop downs on the web.
@EvilTester | http://EvilTester.com 28
Possible Risks?
Might not render at all ‑ Why?
Rendering Errors
Overlapping Drop Downs
Animation Errors
Links might not work
Might not be responsive
Cross Browser JavaScript Errors?
Ajax JSON Errors Loading Sub Menus?
@EvilTester | http://EvilTester.com 29
Without knowing the technology used.
How would we test for these risks?
@EvilTester | http://EvilTester.com 30
Possible Test Approaches
Links might not work
Mitigation:
Link Checker?
Does that work for non exposed sub‑menus?
can we test rendering independent of link clicking?
@EvilTester | http://EvilTester.com 31
Possible Mitigation/Detection Test Approaches
"Test in all browsers"
"Test on all platforms"
@EvilTester | http://EvilTester.com 32
Mitigation/Detection
where "Test in all browsers" would mean:
all
all that we care about? blindly accepting risk with others?
create a 'supported browser list'
create a 'supported resolution' list?
create a 'supported device list'
who creates these? based on what?
test
test what?
on every page?
every combination of drop down?
do I have to click every link on every rendering?
@EvilTester | http://EvilTester.com 33
Too Many Risks!
Testing Blind
Reduce Risks by understanding the Technology
@EvilTester | http://EvilTester.com 34
Drop Down is not a Li
But what makes it a drop down?
Magic?
CSS?
JavaScript?
Different Tech, Different Risks
@EvilTester | http://EvilTester.com 35
v001 has a problem
@EvilTester | http://EvilTester.com 36
Could our 'standard' browser set find that?
only if we resize the browser
@EvilTester | http://EvilTester.com 37
Could we predict that with technical knowledge?
past experience?
CSS/HTML knowledge about z‑index styling?
@EvilTester | http://EvilTester.com 38
Fixed in v002
#primary_nav_wrap ul li:hover > ul
{
    display:block;
    z‑index:100;
}
@EvilTester | http://EvilTester.com 39
A JavaScript Example
from
a JS Implementation at Javascript‑array.com
@EvilTester | http://EvilTester.com 40
Similar functionality but a different set of risks
same basic functionality
different technology
different risks
Do we do the same testing?
@EvilTester | http://EvilTester.com 41
Amazon ‑ divs and spans
previous examples used div,ul,li
Amazon uses div,span
@EvilTester | http://EvilTester.com 42
Do we test for fallback?
What if CSS is not present?
What if JavaScript is not present?
Do we test for that risk?
Is the app designed for that risk?
@EvilTester | http://EvilTester.com 43
Amazon without CSS
@EvilTester | http://EvilTester.com 44
The Pulper without CSS
@EvilTester | http://EvilTester.com 45
Do we know how to test for fallback?
Chrome Dev Tools Network
Block URL
Proxies
Block requests/responses
Autoresponders
Browser Plugins
Browser Settings
Tools are required for technology based testing.
@EvilTester | http://EvilTester.com 46
Reduce/Explore Risks by understanding
the tech
@EvilTester | http://EvilTester.com 47
What Technology Do We Need To Learn?
HTML?
CSS?
JavaScript?
HTTP?
AJAX?
DOM Manipulation?
@EvilTester | http://EvilTester.com 48
We only really need to understand the technology in
use.
@EvilTester | http://EvilTester.com 49
Learn the technology in use
Do not need to learn all technology at once
Learn the technology you are testing
To the level that the technology is used
This makes developing technical skills sustainable.
@EvilTester | http://EvilTester.com 50
The Pulper Uses Basic HTML
<div class="main_menu">
<nav id="primary_nav_wrap">
    <ul>
        <li><a href="/apps/pulp/gui/">Home</a>
            <ul>
              <li><a href="/apps/pulp/gui/help">Help</a></li>
              <li><a href="/apps/pulp/gui/">Menu</a></li>
            </ul>
        </li>
    </ul>
</nav>
</div>
What are the risks with this?
@EvilTester | http://EvilTester.com 51
Risks
Do the links work?
Any styling applied?
Is the HTML Valid
Seems like standard HTML ‑ reduces cross browser
@EvilTester | http://EvilTester.com 52
How to make HTML Less Risky?
Ideal is:
<ddm>
     <mi>Home
        <ddm>
          <mi>Help</mi>
          <mi>Menu</mi>
        </ddm>
    </mi>
</ddm>
Analogous or Isomorphic HTML is less risky. (HTML that shares similar
structure)
@EvilTester | http://EvilTester.com 53
Analogous HTML
<menu>
     <menuitem>Home</menuitem>
     <menu>
          <menuitem>Help</menuitem>
          <menuitem>Menu</menuitem>
     </menu>
</menu>
Good?
@EvilTester | http://EvilTester.com 54
Menu according to w3schools is for context Menus
w3schools.com/tags/tag_menu.asp
@EvilTester | http://EvilTester.com 55
Menu according to MDN is not particularly well
supported
https://developer.mozilla.org/en‑US/docs/Web/HTML/Element/menu
@EvilTester | http://EvilTester.com 56
Authorative Oracles
https://www.w3schools.com
https://developer.mozilla.org
https://validator.w3.org
https://caniuse.com/
Find tools and Oracles to help identify/explore risk.
@EvilTester | http://EvilTester.com 57
Analogous HTML
<ul>
     <li>Home
       <ul>
          <li>Help</li>
          <li>Menu</li>
       </ul>
     </li>
</ul>
@EvilTester | http://EvilTester.com 58
Analogous HTML
<div class="ddm">
     <div class="mi">Home
         <div class="ddm">
            <div class="mi">Help</div>
            <div class="mi">Menu</div>
         </div>
     </div>
</div>
Risks?
@EvilTester | http://EvilTester.com 59
Div risks
By Default a browser puts a new line before each div:
div {
    display: block;
}
CSS needs to be used to  inline the display.
 div provides the nested structure required for a menu. Uses styling
rather than semantics for layout.
@EvilTester | http://EvilTester.com 60
Unconventional
<div class="ddm">
     <li>Home</li>
     <div class="ddm">
          <li>Help</li>
          <li>Menu</li>
     </div>
</div>
Issue: Does not validate according to validator.w3.org
@EvilTester | http://EvilTester.com 61
@EvilTester | http://EvilTester.com 62
@EvilTester | http://EvilTester.com 63
What risks does non validated HTML pose?
Might have no impact
Might not render
Browser might 'fix' the HTML
impact: then CSS styling or JavaScript might not work
Mitigation:
Increase in Cross browser testing required
@EvilTester | http://EvilTester.com 64
CSS Risk Identification
What is CSS?
How does CSS work?
What CSS is used?
Are there any CSS Validators?
Are there any common problem areas with CSS?
animation, z‑order
@EvilTester | http://EvilTester.com 65
What general CSS risks are there?
cross browser
version compatability
invalid syntax
browser quirks
@EvilTester | http://EvilTester.com 66
Technology Based Testing Requires Tools
We probably need to understand:
Browser Dev Tools
Different Dev Tools ‑ different functions
Proxy Tools
Different proxies ‑ different functions
Different functions ‑ different testing opportunities e.g. Charles ‑ can
send HTML for w3c validation, Fiddler ‑ AutoResponders, Zap ‑ Fuzzing
@EvilTester | http://EvilTester.com 67
Complexity can arise from combinations
https://jsfiddle.net/h7wkoea6/16/
@EvilTester | http://EvilTester.com 68
Become Tech Aware
use tech knowledge to identify new risks
identify risk beyond acceptance criteria
use tech knowledge to limit test scope
identify appropriate tools
model applications from different tech perspectives
@EvilTester | http://EvilTester.com 69
Useful Links
Handling common HTML and CSS problems
developer.mozilla.org/en‑
US/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_
and_CSS
Bootstrap Dropdowns
getbootstrap.com/docs/4.0/components/dropdowns/
Web Animations Complexities
https://dev.to/kyleparisi/making‑web‑animations‑9ng
@EvilTester | http://EvilTester.com 70
Exercises
When you visit a site or an app, use the dev tools to interrogate the
HTML/CSS/Javascript
Review the apps you are testing, do you understand the
fundamental building blocks?
Find similar functionality on different sites ‑ are they implemented
the same way?
Identify risks, identify the tools you need to enable testing for them
@EvilTester | http://EvilTester.com 71
End Credits
Alan Richardson
www.eviltester.com
@eviltester
@EvilTester | http://EvilTester.com 72
Learn More
www.compendiumdev.co.uk
uk.linkedin.com/in/eviltester
Online Training ‑
www.compendiumdev.co.uk/page/online_training
Books ‑ www.compendiumdev.co.uk/page/books
Dear Evil Tester
Automating and Testing a REST API
Java For Testers
Selenium Simplified
@EvilTester | http://EvilTester.com 73
Follow
Linkedin ‑ @eviltester
Twitter ‑ @eviltester
Instagram ‑ @eviltester
Facebook ‑ @eviltester
Youtube ‑ EvilTesterVideos
Pinterest ‑ @eviltester
Github ‑ @eviltester
Slideshare ‑ @eviltester
@EvilTester | http://EvilTester.com 74
BIO
Alan is a test consultant who enjoys testing at a technical level using
techniques from psychotherapy and computer science. In his spare
time Alan is currently programming a multi‑user text adventure game
and some buggy JavaScript games in the style of the Cascade Cassette
50. Alan is the author of the books "Dear Evil Tester", "Java For
Testers" and "Automating and Testing a REST API". Alan's main
website is compendiumdev.co.uk and he blogs at blog.eviltester.com
@EvilTester | http://EvilTester.com 75
END SLIDE
This slide intentionally left blank.
Not including: this text, the paragraph above or the slide title or the
footer, but this is the last slide so it is effectively blank. In fact, it is
actually unnecessary. Forget you saw this slide.
@EvilTester | http://EvilTester.com 76

Mais conteúdo relacionado

Mais procurados

Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep DiveAlan Richardson
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment TestingAlan Richardson
 
Confessions of an Accidental Security Tester
Confessions of an Accidental Security TesterConfessions of an Accidental Security Tester
Confessions of an Accidental Security TesterAlan Richardson
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAlan Richardson
 
The Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialThe Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialAlan Richardson
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Alan Richardson
 
Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testingAlan Richardson
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentAlan Richardson
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Alan Richardson
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialAlan Richardson
 
Push Functional Testing Further
Push Functional Testing FurtherPush Functional Testing Further
Push Functional Testing FurtherAlan Richardson
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With AgilityAlan Richardson
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingAlan Richardson
 
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...Alan Richardson
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecturemdwheele
 
Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Alan Richardson
 
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Faichi Solutions
 
Entrepreneurship for hackers
Entrepreneurship for hackersEntrepreneurship for hackers
Entrepreneurship for hackerssnyff
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 

Mais procurados (20)

Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep Dive
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment Testing
 
Confessions of an Accidental Security Tester
Confessions of an Accidental Security TesterConfessions of an Accidental Security Tester
Confessions of an Accidental Security Tester
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when Testing
 
The Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies TutorialThe Evil Tester's Guide to HTTP proxies Tutorial
The Evil Tester's Guide to HTTP proxies Tutorial
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020
 
Devfest 2019-slides
Devfest 2019-slidesDevfest 2019-slides
Devfest 2019-slides
 
Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testing
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software Development
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial
 
Push Functional Testing Further
Push Functional Testing FurtherPush Functional Testing Further
Push Functional Testing Further
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With Agility
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support Testing
 
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecture
 
Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)
 
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
 
Entrepreneurship for hackers
Entrepreneurship for hackersEntrepreneurship for hackers
Entrepreneurship for hackers
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 

Semelhante a Technology Based Testing

Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trendsbeched
 
[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar GanievOWASP Russia
 
U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10eshwar83
 
A security note for web developers
A security note for web developersA security note for web developers
A security note for web developersJohn Ombagi
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Securitygjdevos
 
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...Andrey Karpov
 
Examining And Bypassing The IE8 XSS Filter
Examining And Bypassing The IE8 XSS FilterExamining And Bypassing The IE8 XSS Filter
Examining And Bypassing The IE8 XSS Filterkuza55
 
Static Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationStatic Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationAndrey Karpov
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesBrad Hill
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedMinded Security
 
Module 12 (web application vulnerabilities)
Module 12 (web application vulnerabilities)Module 12 (web application vulnerabilities)
Module 12 (web application vulnerabilities)Wail Hassan
 
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdfEN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdfGiorgiRcheulishvili
 
Efficient Context-sensitive Output Escaping for Javascript Template Engines
Efficient Context-sensitive Output Escaping for Javascript Template EnginesEfficient Context-sensitive Output Escaping for Javascript Template Engines
Efficient Context-sensitive Output Escaping for Javascript Template Enginesadonatwork
 
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar NikaleAgile Testing Alliance
 

Semelhante a Technology Based Testing (20)

Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trends
 
[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev[2.1] Web application Security Trends - Omar Ganiev
[2.1] Web application Security Trends - Omar Ganiev
 
Dev{sec}ops
Dev{sec}opsDev{sec}ops
Dev{sec}ops
 
U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10
 
A security note for web developers
A security note for web developersA security note for web developers
A security note for web developers
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s canners
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ code
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
 
Examining And Bypassing The IE8 XSS Filter
Examining And Bypassing The IE8 XSS FilterExamining And Bypassing The IE8 XSS Filter
Examining And Bypassing The IE8 XSS Filter
 
Static Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationStatic Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to Integration
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession Learned
 
Module 12 (web application vulnerabilities)
Module 12 (web application vulnerabilities)Module 12 (web application vulnerabilities)
Module 12 (web application vulnerabilities)
 
Building Web Interfaces
Building Web InterfacesBuilding Web Interfaces
Building Web Interfaces
 
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdfEN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
 
Efficient Context-sensitive Output Escaping for Javascript Template Engines
Efficient Context-sensitive Output Escaping for Javascript Template EnginesEfficient Context-sensitive Output Escaping for Javascript Template Engines
Efficient Context-sensitive Output Escaping for Javascript Template Engines
 
Webinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for DevelopersWebinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for Developers
 
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
#ATAGTR2019 Presentation "DevSecOps with GitLab" By Avishkar Nikale
 

Mais de Alan Richardson

Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009Alan Richardson
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing WebinarAlan Richardson
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesAlan Richardson
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonAlan Richardson
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsAlan Richardson
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAlan Richardson
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST APIAlan Richardson
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameAlan Richardson
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzAlan Richardson
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyAlan Richardson
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.Alan Richardson
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMapAlan Richardson
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingAlan Richardson
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017Alan Richardson
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?Alan Richardson
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupAlan Richardson
 
Learning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopLearning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopAlan Richardson
 
How to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingHow to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingAlan Richardson
 

Mais de Alan Richardson (19)

Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing Webinar
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slides
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan Richardson
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStrings
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil Tester
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST API
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" Game
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzz
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be Flaky
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMap
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile Testing
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setup
 
Learning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public WorkshopLearning in Public - A How to Speak in Public Workshop
Learning in Public - A How to Speak in Public Workshop
 
How to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public SpeakingHow to Practise to Remove Fear of Public Speaking
How to Practise to Remove Fear of Public Speaking
 

Último

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Último (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

Technology Based Testing

  • 1. Technology Based Technical Testing Agile Testers Conference 2018 Alan Richardson www.eviltester.com www.compendiumdev.co.uk @eviltester @EvilTester | http://EvilTester.com 1
  • 2. Blurb What do you learn if you want to test 'beyond the acceptance criteria'? Technical risk based testing can help. In this case I'm going to use the phrase Technical Testing to cover: "identify technology based risks to drive testing". This thought process can help us make informed decisions about the scope of exploratory testing we will carry out. It also helps focus your studies on the technical knowledge appropriate for the project you are testing. @EvilTester | http://EvilTester.com 2
  • 3. Blurb This requires: understanding of the technology risk identification tools applicable to the technology This presentation will use a simple example to demonstrate that: Even simple technology can pose risk Combining simple technology can increase risk Understanding technology allows us to evaluate risk @EvilTester | http://EvilTester.com 3
  • 4. Why this talk? Because I was asked a simple question. @EvilTester | http://EvilTester.com 4
  • 5. I know HTML, CSS, HTTP, and JavaScript what do I learn next? @EvilTester | http://EvilTester.com 5
  • 6. I know HTML, CSS, HTTP, and JavaScript what do I learn next? Do you know it? Do you know how your application uses these? Do you understand the HTML being used? Do you know which elements have JavaScript events? Do you understand the CSS in use? Do you know how it is applied? Have you validated it? Are there any cross browser risks? @EvilTester | http://EvilTester.com 6
  • 7. Simple things in combination can have complex side‑effects When changed does caching impact? CDN, Web Server Cache, Local Browser Cache When are JS events hooked on to HTML? when loaded, after rendering? Do you use CSS animations? Is anything loaded dynamically? Impact on automating? @EvilTester | http://EvilTester.com 7
  • 8. If you do not understand the technology you are not testing for technical risk effectively @EvilTester | http://EvilTester.com 8
  • 9. Agile Stories Vary between teams Often business focussed Often lightweight 'conversation markers' Acceptance Criteria provide minimum 'goodness' assertions @EvilTester | http://EvilTester.com 9
  • 10. Do Acceptance Criteria cover Technical Considerations? Specify if validation is JavaScript, HTML5, Server Side? Specify libraries in use? Specify versions of libraries? Specify 'acceptable' browser range? They Might. We might discuss and document this during planning sessions. Do they cover technical risks? @EvilTester | http://EvilTester.com 10
  • 11. Do Acceptance Criteria cover Technical Risks? Specify if validation is JavaScript, HTML5, Server Side? risk of validation JS code cross browser? risk of users bypassing HTML5 validation? risk of server side validation not matching front end? Specify libraries in use? CDN delivery vs Web Server keeping versions up to date? Specify 'acceptable' browser range? based on what criteria? test all functionality on all specified browsers? Do they rarely cover technical risks? @EvilTester | http://EvilTester.com 11
  • 12. An Example The user must be able to navigate the site from a drop down menu Acceptance Criteria: Drop down menu shown Clicking on drop down menu items navigates to specified menu item @EvilTester | http://EvilTester.com 12
  • 13. General Risks for the Story and Acceptance Criteria? Drop down menu shown What about tablets/Mobile? Accessibility? screen sizes? specific browsers used? Clicking on drop down menu items navigates to specified menu item How do we know correct text/link mapping? So we decide on platforms/browser combinations and create a list of text/link mappings. @EvilTester | http://EvilTester.com 13
  • 14. Did we consider the technology? What JavaScript is used? What CSS is used? What libraries? Is CSS generated in the build or hard coded? Deployment of artifacts? Caching of CSS/JS? etc. @EvilTester | http://EvilTester.com 14
  • 15. Why are the Technologies important? @EvilTester | http://EvilTester.com 15
  • 16. Application Perspectives different views of an app change how we test it require different domain knowledge business, HTML, CSS, HTTP, JavaScript, Server side require different tools @EvilTester | http://EvilTester.com 16
  • 17. Non‑Technical Views of an app @EvilTester | http://EvilTester.com 17
  • 18. Browser View @EvilTester | http://EvilTester.com 18
  • 19. Server Communications View @EvilTester | http://EvilTester.com 19
  • 20. Why do this for testing? "identify technology based risks to drive and limit testing" @EvilTester | http://EvilTester.com 20
  • 21. Technical Testing by (MORIM): Modelling the application from multiple view points and multiple technical levels. Using tools to: Observe the application in action, Reflecting on what you see to approach the testing with intent based on risks, and at different interface points. Using tools to: Interrogate the application to more detailed levels Manipulating the application at detailed levels @EvilTester | http://EvilTester.com 21
  • 23. The Drop Down Why is drop down menu risky for the web? @EvilTester | http://EvilTester.com 23
  • 24. Why is drop down menu risky for the web? It doesn't exist On Desktop it exists as a native control It doesn't exist as a native HTML element We have to simulate it We have to write code @EvilTester | http://EvilTester.com 24
  • 25. If it did exist <ddm>    <mi><a href="/home">Home</a>         <ddm>             <mi><a href="/help">Help</a></mi>             <mi><a href="/home">Home</a></mi>         </ddm>    </mi> </ddm> Why would this be less risky? @EvilTester | http://EvilTester.com 25
  • 26. Why would this be less risky? It would be 'just HTML'. standard can be compliance checked browser implements cross‑browser testing reduced don't test browser implementations tool supported automated tools will support automated tools may have abstractions e.g.  new DropDown().select("Home");  @EvilTester | http://EvilTester.com 26
  • 27. But even when it is standard HTML we can introduce risk Different set of risks: CSS styling rendering of CSS, animations Augmenting with JavaScript @EvilTester | http://EvilTester.com 27
  • 28. But it doesn't exist Humans have to implement it. Using? CSS? JavaScript? What HTML Underpinning it? As an exercise after this talk: look at all the different implementations of drop downs on the web. @EvilTester | http://EvilTester.com 28
  • 29. Possible Risks? Might not render at all ‑ Why? Rendering Errors Overlapping Drop Downs Animation Errors Links might not work Might not be responsive Cross Browser JavaScript Errors? Ajax JSON Errors Loading Sub Menus? @EvilTester | http://EvilTester.com 29
  • 30. Without knowing the technology used. How would we test for these risks? @EvilTester | http://EvilTester.com 30
  • 31. Possible Test Approaches Links might not work Mitigation: Link Checker? Does that work for non exposed sub‑menus? can we test rendering independent of link clicking? @EvilTester | http://EvilTester.com 31
  • 32. Possible Mitigation/Detection Test Approaches "Test in all browsers" "Test on all platforms" @EvilTester | http://EvilTester.com 32
  • 33. Mitigation/Detection where "Test in all browsers" would mean: all all that we care about? blindly accepting risk with others? create a 'supported browser list' create a 'supported resolution' list? create a 'supported device list' who creates these? based on what? test test what? on every page? every combination of drop down? do I have to click every link on every rendering? @EvilTester | http://EvilTester.com 33
  • 34. Too Many Risks! Testing Blind Reduce Risks by understanding the Technology @EvilTester | http://EvilTester.com 34
  • 35. Drop Down is not a Li But what makes it a drop down? Magic? CSS? JavaScript? Different Tech, Different Risks @EvilTester | http://EvilTester.com 35
  • 36. v001 has a problem @EvilTester | http://EvilTester.com 36
  • 37. Could our 'standard' browser set find that? only if we resize the browser @EvilTester | http://EvilTester.com 37
  • 38. Could we predict that with technical knowledge? past experience? CSS/HTML knowledge about z‑index styling? @EvilTester | http://EvilTester.com 38
  • 40. A JavaScript Example from a JS Implementation at Javascript‑array.com @EvilTester | http://EvilTester.com 40
  • 41. Similar functionality but a different set of risks same basic functionality different technology different risks Do we do the same testing? @EvilTester | http://EvilTester.com 41
  • 42. Amazon ‑ divs and spans previous examples used div,ul,li Amazon uses div,span @EvilTester | http://EvilTester.com 42
  • 43. Do we test for fallback? What if CSS is not present? What if JavaScript is not present? Do we test for that risk? Is the app designed for that risk? @EvilTester | http://EvilTester.com 43
  • 44. Amazon without CSS @EvilTester | http://EvilTester.com 44
  • 45. The Pulper without CSS @EvilTester | http://EvilTester.com 45
  • 46. Do we know how to test for fallback? Chrome Dev Tools Network Block URL Proxies Block requests/responses Autoresponders Browser Plugins Browser Settings Tools are required for technology based testing. @EvilTester | http://EvilTester.com 46
  • 47. Reduce/Explore Risks by understanding the tech @EvilTester | http://EvilTester.com 47
  • 48. What Technology Do We Need To Learn? HTML? CSS? JavaScript? HTTP? AJAX? DOM Manipulation? @EvilTester | http://EvilTester.com 48
  • 49. We only really need to understand the technology in use. @EvilTester | http://EvilTester.com 49
  • 50. Learn the technology in use Do not need to learn all technology at once Learn the technology you are testing To the level that the technology is used This makes developing technical skills sustainable. @EvilTester | http://EvilTester.com 50
  • 51. The Pulper Uses Basic HTML <div class="main_menu"> <nav id="primary_nav_wrap">     <ul>         <li><a href="/apps/pulp/gui/">Home</a>             <ul>               <li><a href="/apps/pulp/gui/help">Help</a></li>               <li><a href="/apps/pulp/gui/">Menu</a></li>             </ul>         </li>     </ul> </nav> </div> What are the risks with this? @EvilTester | http://EvilTester.com 51
  • 52. Risks Do the links work? Any styling applied? Is the HTML Valid Seems like standard HTML ‑ reduces cross browser @EvilTester | http://EvilTester.com 52
  • 53. How to make HTML Less Risky? Ideal is: <ddm>      <mi>Home         <ddm>           <mi>Help</mi>           <mi>Menu</mi>         </ddm>     </mi> </ddm> Analogous or Isomorphic HTML is less risky. (HTML that shares similar structure) @EvilTester | http://EvilTester.com 53
  • 55. Menu according to w3schools is for context Menus w3schools.com/tags/tag_menu.asp @EvilTester | http://EvilTester.com 55
  • 56. Menu according to MDN is not particularly well supported https://developer.mozilla.org/en‑US/docs/Web/HTML/Element/menu @EvilTester | http://EvilTester.com 56
  • 60. Div risks By Default a browser puts a new line before each div: div {     display: block; } CSS needs to be used to  inline the display.  div provides the nested structure required for a menu. Uses styling rather than semantics for layout. @EvilTester | http://EvilTester.com 60
  • 64. What risks does non validated HTML pose? Might have no impact Might not render Browser might 'fix' the HTML impact: then CSS styling or JavaScript might not work Mitigation: Increase in Cross browser testing required @EvilTester | http://EvilTester.com 64
  • 65. CSS Risk Identification What is CSS? How does CSS work? What CSS is used? Are there any CSS Validators? Are there any common problem areas with CSS? animation, z‑order @EvilTester | http://EvilTester.com 65
  • 66. What general CSS risks are there? cross browser version compatability invalid syntax browser quirks @EvilTester | http://EvilTester.com 66
  • 67. Technology Based Testing Requires Tools We probably need to understand: Browser Dev Tools Different Dev Tools ‑ different functions Proxy Tools Different proxies ‑ different functions Different functions ‑ different testing opportunities e.g. Charles ‑ can send HTML for w3c validation, Fiddler ‑ AutoResponders, Zap ‑ Fuzzing @EvilTester | http://EvilTester.com 67
  • 68. Complexity can arise from combinations https://jsfiddle.net/h7wkoea6/16/ @EvilTester | http://EvilTester.com 68
  • 69. Become Tech Aware use tech knowledge to identify new risks identify risk beyond acceptance criteria use tech knowledge to limit test scope identify appropriate tools model applications from different tech perspectives @EvilTester | http://EvilTester.com 69
  • 70. Useful Links Handling common HTML and CSS problems developer.mozilla.org/en‑ US/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_ and_CSS Bootstrap Dropdowns getbootstrap.com/docs/4.0/components/dropdowns/ Web Animations Complexities https://dev.to/kyleparisi/making‑web‑animations‑9ng @EvilTester | http://EvilTester.com 70
  • 71. Exercises When you visit a site or an app, use the dev tools to interrogate the HTML/CSS/Javascript Review the apps you are testing, do you understand the fundamental building blocks? Find similar functionality on different sites ‑ are they implemented the same way? Identify risks, identify the tools you need to enable testing for them @EvilTester | http://EvilTester.com 71
  • 73. Learn More www.compendiumdev.co.uk uk.linkedin.com/in/eviltester Online Training ‑ www.compendiumdev.co.uk/page/online_training Books ‑ www.compendiumdev.co.uk/page/books Dear Evil Tester Automating and Testing a REST API Java For Testers Selenium Simplified @EvilTester | http://EvilTester.com 73
  • 74. Follow Linkedin ‑ @eviltester Twitter ‑ @eviltester Instagram ‑ @eviltester Facebook ‑ @eviltester Youtube ‑ EvilTesterVideos Pinterest ‑ @eviltester Github ‑ @eviltester Slideshare ‑ @eviltester @EvilTester | http://EvilTester.com 74
  • 75. BIO Alan is a test consultant who enjoys testing at a technical level using techniques from psychotherapy and computer science. In his spare time Alan is currently programming a multi‑user text adventure game and some buggy JavaScript games in the style of the Cascade Cassette 50. Alan is the author of the books "Dear Evil Tester", "Java For Testers" and "Automating and Testing a REST API". Alan's main website is compendiumdev.co.uk and he blogs at blog.eviltester.com @EvilTester | http://EvilTester.com 75
  • 76. END SLIDE This slide intentionally left blank. Not including: this text, the paragraph above or the slide title or the footer, but this is the last slide so it is effectively blank. In fact, it is actually unnecessary. Forget you saw this slide. @EvilTester | http://EvilTester.com 76