SlideShare a Scribd company logo
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

More Related Content

PDF
Abstraction Layers Test Management Summit Faciliated Session 2014
ODP
How to Improve Your Technical Test Ability - AADays 2015 Keynote
PDF
Technical Testing Webinar
PPTX
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
PDF
Add More Security To Your Testing and Automating - Saucecon 2021
PDF
Black Ops Testing Workshop from Agile Testing Days 2014
PDF
Automating Pragmatically - Testival 20190604
PDF
If you want to automate, you learn to code
Abstraction Layers Test Management Summit Faciliated Session 2014
How to Improve Your Technical Test Ability - AADays 2015 Keynote
Technical Testing Webinar
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Add More Security To Your Testing and Automating - Saucecon 2021
Black Ops Testing Workshop from Agile Testing Days 2014
Automating Pragmatically - Testival 20190604
If you want to automate, you learn to code

What's hot (20)

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

Similar to Technology Based Testing (20)

PPTX
Owasp web application security trends
PPTX
[2.1] Web application Security Trends - Omar Ganiev
PPTX
Dev{sec}ops
PDF
U test whitepaper_10
PDF
A security note for web developers
PDF
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
PDF
BSides Vegas 2024_ Don’t Make This Mistake_ Painful Learnings of Applying AI ...
PPTX
2 . web app s canners
PDF
PVS-Studio advertisement - static analysis of C/C++ code
PDF
Shift Left Security
PDF
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
PPT
Examining And Bypassing The IE8 XSS Filter
PDF
Static Analysis: From Getting Started to Integration
PPTX
W3 conf hill-html5-security-realities
PPTX
industrial training report with all compony information
PDF
Sandboxing JS and HTML. A lession Learned
PDF
Module 12 (web application vulnerabilities)
PPT
Building Web Interfaces
PDF
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
PDF
Efficient Context-sensitive Output Escaping for Javascript Template Engines
Owasp web application security trends
[2.1] Web application Security Trends - Omar Ganiev
Dev{sec}ops
U test whitepaper_10
A security note for web developers
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
BSides Vegas 2024_ Don’t Make This Mistake_ Painful Learnings of Applying AI ...
2 . web app s canners
PVS-Studio advertisement - static analysis of C/C++ code
Shift Left Security
PVS-Studio Static Analyzer as a Tool for Protection against Zero-Day Vulnerab...
Examining And Bypassing The IE8 XSS Filter
Static Analysis: From Getting Started to Integration
W3 conf hill-html5-security-realities
industrial training report with all compony information
Sandboxing JS and HTML. A lession Learned
Module 12 (web application vulnerabilities)
Building Web Interfaces
EN - BlackHat US 2009 favorite XSS Filters-IDS and how to attack them.pdf
Efficient Context-sensitive Output Escaping for Javascript Template Engines
Ad

More from Alan Richardson (19)

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

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
A Presentation on Artificial Intelligence
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Cloud computing and distributed systems.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Modernizing your data center with Dell and AMD
Understanding_Digital_Forensics_Presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Monthly Chronicles - July 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine learning based COVID-19 study performance prediction
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Spectral efficient network and resource selection model in 5G networks
Cloud computing and distributed systems.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

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
  • 22. The Pulper v001 github.com/eviltester/TestingApp @EvilTester | http://EvilTester.com 22
  • 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