SlideShare a Scribd company logo
1 of 34
Download to read offline
@trentmwillis #dotjs
Working Well:
The Future of Web
Testing
|Trent Willis @trentmwillis
QUnit Project Lead
@trentmwillis #dotjs
Testing Gives Us Confidence
That Software Works
@trentmwillis #dotjs
Testing Should Give Us Confidence
That Software Works Well
@trentmwillis #dotjs
Works Well:
@trentmwillis #dotjs
Works Well:
Accessible
Performant
Necessary
@trentmwillis #dotjs
chrome
@trentmwillis #dotjs
chrome --headless
@trentmwillis #dotjs
Chrome DevTools Protocol
@trentmwillis #dotjs
chrome --headless
+
Chrome DevTools Protocol
=
New Possibilities
@trentmwillis #dotjs
Puppeteer
@trentmwillis #dotjs
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.content();
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
@trentmwillis #dotjs
QUnit-In-Browser
@trentmwillis #dotjs
const title = 'Home page successfully renders';
const url = 'https://localhost:8000/';
QUnit.test.inBrowser(title, url, function(assert) {
const content = document.getElementById('content');
assert.ok(content, 'main content is rendered!');
});
@trentmwillis #dotjs
How is this the future?
@trentmwillis #dotjs
How is this the future?
Less about “how”
More about “what”
@trentmwillis #dotjs
Accessibility
@trentmwillis #dotjs
axe-core
@trentmwillis #dotjs
QUnit.test.inBrowser(title, {
url,
injections: ['node_modules/axe-core/axe.min.js']
}, async function(assert) {
const content = document.getElementById('content');
const results = await axe.run(content);
assert.equal(results.violations.length, 0);
});
@trentmwillis #dotjs
const pages = [ /* pages in site */ ];
pages.forEach(page => {
QUnit.test.inBrowser(`${title} - ${page}`, {
url: page,
injections: ['node_modules/axe-core/axe.min.js']
}, async function(assert) {
const content = document.getElementById('content');
const results = await axe.run(content);
assert.equal(results.violations.length, 0);
});
});
@trentmwillis #dotjs
Performance
@trentmwillis #dotjs
macro-benchmark
@trentmwillis #dotjs
ember-macro-benchmark
@trentmwillis #dotjs
@trentmwillis #dotjs
Code Coverage
@trentmwillis #dotjs
Code Usage
@trentmwillis #dotjs
@trentmwillis #dotjs
await Profiler.startPreciseCoverage();
// Trigger some action
const { result } = await Profiler.takePreciseCoverage();
// Assert against results or track over time
@trentmwillis #dotjs
Functionality
@trentmwillis #dotjs
Functionality + Quality
@trentmwillis #dotjs
The Future Is
Accessible
@trentmwillis #dotjs
The Future Is
Performant
@trentmwillis #dotjs
The Future Is
Necessary
@trentmwillis #dotjs
The Future Is
Bright
|Trent Willis @trentmwillis
QUnit Project Lead

More Related Content

What's hot

Dev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelDev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelChristian Güdemann
 
The Road to (Kenti)continuous Delivery
The Road to (Kenti)continuous DeliveryThe Road to (Kenti)continuous Delivery
The Road to (Kenti)continuous DeliveryJeroen Fürst
 
Introduction to koyomi #appkoyomi
Introduction to koyomi #appkoyomiIntroduction to koyomi #appkoyomi
Introduction to koyomi #appkoyomiIKEDA Kiyoshi
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
 
Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.WordCamp Harare
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
We need to talk about core web vitals
We need to talk about core web vitals  We need to talk about core web vitals
We need to talk about core web vitals Anton Shulke
 
Modern Monitoring - devops roadtrip
Modern Monitoring - devops roadtripModern Monitoring - devops roadtrip
Modern Monitoring - devops roadtripbridgetkromhout
 
Git for Beginners
Git for BeginnersGit for Beginners
Git for BeginnersRick Umali
 
NYC Continuous Delivery Meetup - Introducing delta
NYC Continuous Delivery Meetup - Introducing deltaNYC Continuous Delivery Meetup - Introducing delta
NYC Continuous Delivery Meetup - Introducing deltaMichael Bryzek
 

What's hot (16)

From zero to git
From zero to gitFrom zero to git
From zero to git
 
Dev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelDev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the Wheel
 
The Road to (Kenti)continuous Delivery
The Road to (Kenti)continuous DeliveryThe Road to (Kenti)continuous Delivery
The Road to (Kenti)continuous Delivery
 
Introduction to koyomi #appkoyomi
Introduction to koyomi #appkoyomiIntroduction to koyomi #appkoyomi
Introduction to koyomi #appkoyomi
 
Git
GitGit
Git
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
We need to talk about core web vitals
We need to talk about core web vitals  We need to talk about core web vitals
We need to talk about core web vitals
 
Modern Monitoring - devops roadtrip
Modern Monitoring - devops roadtripModern Monitoring - devops roadtrip
Modern Monitoring - devops roadtrip
 
Git for Beginners
Git for BeginnersGit for Beginners
Git for Beginners
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
NYC Continuous Delivery Meetup - Introducing delta
NYC Continuous Delivery Meetup - Introducing deltaNYC Continuous Delivery Meetup - Introducing delta
NYC Continuous Delivery Meetup - Introducing delta
 
Gdg makurdi
Gdg makurdiGdg makurdi
Gdg makurdi
 

Similar to Working Well: The Future of Web Testing

Beyond Ad-hoc Automation: Leveraging Structured Platforms
Beyond Ad-hoc Automation: Leveraging Structured PlatformsBeyond Ad-hoc Automation: Leveraging Structured Platforms
Beyond Ad-hoc Automation: Leveraging Structured Platformsbridgetkromhout
 
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...bridgetkromhout
 
cloud, containers, kubernetes (devopsdays nyc 2018)
cloud, containers, kubernetes (devopsdays nyc 2018)cloud, containers, kubernetes (devopsdays nyc 2018)
cloud, containers, kubernetes (devopsdays nyc 2018)bridgetkromhout
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIubunturk
 
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...Catalyst
 
Beyond Ad-hoc Automation - To Structured Platforms
Beyond Ad-hoc Automation - To Structured PlatformsBeyond Ad-hoc Automation - To Structured Platforms
Beyond Ad-hoc Automation - To Structured Platformsbridgetkromhout
 
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...RightScale
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB
 
Challenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering serviceChallenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering serviceGiacomo Zecchini
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web ComponentsRed Pill Now
 
HTML5 Hotness
HTML5 HotnessHTML5 Hotness
HTML5 Hotnesspaultrani
 
AngularJS for Web and Mobile
 AngularJS for Web and Mobile AngularJS for Web and Mobile
AngularJS for Web and MobileRocket Software
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchMongoDB
 
The Promise of a Cloud Native Platform (Code Freeze conf)
The Promise of a Cloud Native Platform (Code Freeze conf)The Promise of a Cloud Native Platform (Code Freeze conf)
The Promise of a Cloud Native Platform (Code Freeze conf)bridgetkromhout
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるSadaaki HIRAI
 

Similar to Working Well: The Future of Web Testing (20)

Beyond Ad-hoc Automation: Leveraging Structured Platforms
Beyond Ad-hoc Automation: Leveraging Structured PlatformsBeyond Ad-hoc Automation: Leveraging Structured Platforms
Beyond Ad-hoc Automation: Leveraging Structured Platforms
 
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...
Beyond Ad-hoc Automation - Leveraging Structured Platforms (Agile Day Twin Ci...
 
cloud, containers, kubernetes (devopsdays nyc 2018)
cloud, containers, kubernetes (devopsdays nyc 2018)cloud, containers, kubernetes (devopsdays nyc 2018)
cloud, containers, kubernetes (devopsdays nyc 2018)
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node API
 
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...
TechSEO Boost 2021 - Rendering Strategies: Measuring the Devil’s Details in C...
 
Beyond Ad-hoc Automation - To Structured Platforms
Beyond Ad-hoc Automation - To Structured PlatformsBeyond Ad-hoc Automation - To Structured Platforms
Beyond Ad-hoc Automation - To Structured Platforms
 
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...
Integrating RightScale, Windows, and .NET for Fun and Profit - RightScale Com...
 
Long Distance DevOps
Long Distance DevOpsLong Distance DevOps
Long Distance DevOps
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch Tutorial
 
Challenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering serviceChallenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering service
 
Real_World_0days.pdf
Real_World_0days.pdfReal_World_0days.pdf
Real_World_0days.pdf
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web Components
 
HTML5 Hotness
HTML5 HotnessHTML5 Hotness
HTML5 Hotness
 
AngularJS for Web and Mobile
 AngularJS for Web and Mobile AngularJS for Web and Mobile
AngularJS for Web and Mobile
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
Puppeteerのお話
Puppeteerのお話Puppeteerのお話
Puppeteerのお話
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB Stitch
 
The Promise of a Cloud Native Platform (Code Freeze conf)
The Promise of a Cloud Native Platform (Code Freeze conf)The Promise of a Cloud Native Platform (Code Freeze conf)
The Promise of a Cloud Native Platform (Code Freeze conf)
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 

Recently uploaded

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 

Recently uploaded (20)

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 

Working Well: The Future of Web Testing