SlideShare a Scribd company logo
Nicholas C. Zakas
Yahoo!, Inc.
YUIConf
November 9, 2010
Who's this guy?
@captain_picard
@slicknet
Who's this guy?
Principal Front End
Engineer
Contributor,
Creator of YUI Test
Author Lead Author Contributor Lead Author
YUI Test
How'd we get here?
Automated Integration Testing
with YUI Test (Talk)
October 2009
YUI Test Debut
July 2007 (YUI 2.3.0)
Async Testing
TestReporter
XML and JSON Test Formats
December 2007 (YUI 2.4.0)
Mock Objects
Friendly Test Names
September 2009 (YUI 3.0.0)
Test-Driven Development
with YUI Test (Talk)
October 2008
YUI Test Debut
July 2007 (YUI 2.3.0)
Getting started with
YUI Test (YUIBlog)
December 2008
Writing effective tests
(YUIBlog)
January 2009
Automation Hooks
JUnit XML and TAP Formats
April 2010 (YUI 3.1.0)
ZOMG!!!
Today
Yeti Released
August 2010
Today
YUI Test
Standalone Library
YUI Test
Selenium Driver
YUI Test
Coverage
Today
YUI Test
Standalone Library
YUI Test
Selenium Driver
YUI Test
Coverage
YUI Test Standalone Library has no
YUI dependencies
You can load it completely on its own – outside of YUI 2.x and YUI 3.x
Why?
To address a series of ongoing
problems
Problem
Inconsistencies across versions
YUI Test for YUI 2.x
YAHOO.tool.TestCase
YAHOO.tool.TestSuite
YAHOO.tool.TestRunner
YAHOO.tool.TestReporter
YAHOO.tool.TestManager
YAHOO.tool.TestFormat
YAHOO.util.Assert
YAHOO.util.ArrayAssert
YAHOO.util.DateAssert
YAHOO.util.ObjectAssert
YUI Test for YUI 3.x
Y.Test.Case
Y.Test.Suite
Y.Test.Runner
Y.Test.Reporter
Y.Test.Format
Y.Assert
Y.ArrayAssert
Y.DateAssert
Y.ObjectAssert
Y.Mock
Hmmmm...
Y.Test.Case
Y.Test.Suite
Y.Test.Runner
Y.Test.Reporter
Y.Test.Format
Y.Assert
Y.ArrayAssert
Y.DateAssert
Y.ObjectAssert
Y.Mock
YAHOO.tool.TestCase
YAHOO.tool.TestSuite
YAHOO.tool.TestRunner
YAHOO.tool.TestReporter
YAHOO.tool.TestManager
YAHOO.tool.TestFormat
YAHOO.util.Assert
YAHOO.util.ArrayAssert
YAHOO.util.DateAssert
YAHOO.util.ObjectAssert
YUI Test Standalone 1.0.0
YUITest.TestCase
YUITest.TestSuite
YUITest.TestRunner
YUITest.Reporter
YUITest.PageManager
YUITest.TestFormat
YUITest.Assert
YUITest.ArrayAssert
YUITest.DateAssert
YUITest.ObjectAssert
YUITest.Mock
Problem
I'd like to use YUI Test, but not YUI
Problem
Everyone else is doing it
What's it look like?
<script type="text/javascript"
src="yuitest.js"></script>
<script type="text/javascript">
var testCase = new YUITest.TestCase({
name: "Same ol' test case",
testSomething: function(){
YUITest.Assert.isTrue(true);
},
"This should work": function(){
YUITest.Assert.isTrue(works);
}
});
YUITest.TestRunner.add(testCase);
YUITest.TestRunner.run();
</script>
Familiar
Syntax!
var testSuite = new YUITest.TestSuite("name");
testSuite.add(testCase1);
testSuite.add(testCase2);
YUITest.TestRunner.add(testSuite);
YUITest.TestRunner.run();
Familiar
Syntax!
Not just a port!
API cleanup & bug fixes
YUITest.ObjectAssert
areEqual()
hasKey()
hasKeys()
ownsKey()
ownsKeys()
ownsNoKeys()
inheritsKey()
inheritsKeys()
ownsOrInheritsKey()
ownsOrInheritsKeys()
Friendlier Test Names
var testCase = new YUITest.TestCase({
name: "My Test Case",
"This should be a test": function(){
//this is a test in YUI Test for YUI 3.x
},
"As is this one": function(){
//this is not a test in YUI Test for YUI 3.x
//but is in YUI Test Standalone 1.0.0
}
});
Counting Asserts
var testCase = new YUITest.TestCase({
name: "My Test Case",
"This should be a test": function(){
//this test passes in YUI Test for YUI 3.x
//but fails in YUI Test Standalone 1.0.0
}
});
Beyond _should
var testCase = new YUITest.TestCase({
name: "My Test Case",
_should: { //old
"Another test": "Error message"
},
"Another test": function(){ //new
someFunction();
}
});
Beyond _should
var testCase = new YUITest.TestCase({
name: "My Test Case",
"Another test": function(){ //new
YUITest.Assert.throwsError("Error message",
someFunction);
}
});
What about the YUI 2.x and 3.x
versions?
YUI Test Standalone becomes the
core implementation of both
Today
YUI Test
Standalone Library
YUI Test
Selenium Driver
YUI Test
Coverage
Easy automation for continuous
integration
Hudson
Continuous build/testing system
Used to periodically build from source and
validate by running tests
http://hudson-ci.org/
?JUnit
Selenium
TAP
SelNG
Screen scrape
Hack
Hudson
?JUnit
TAP
SelNG
Screen scrape
Hack
Hudson
Selenium
Selenium
Web application testing system
Primarily used by QA organizations for
functional testing
http://seleniumhq.org/
http://seleniumhq.org/projects/remote-control/
Selenium Remote Control
Hudson Selenium
RC
?
Screen scraping to gather results = ick
Hudson Selenium
Driver
Selenium
RC
Selenium Driver
Three primary goals
Completely handle communication between
Hudson and Selenium RC
Yes, Uhura once wore yellow – focus, people
#1
#2
Extract as much data as possible from tests
Return the results in a format that Hudson can consume and report on
#3
Don't force already-existing tests to change
Seriously, it's just wrong
Test Pages
var testCase = new YUITest.TestCase({
name: "My Test Case",
//...
});
YUITest.TestRunner.add(testCase);
YUITest.TestRunner.run();
Test pages must automatically begin
running tests without additional interaction
Command Line
Usage: java -jar yuitest-selenium-driver-x.y.z.jar [options] [test files]
Global Options
-h, --help Displays this information.
--browsers <browsers> Run tests in these browsers (comma-delimited).
--conf <file> Load options from <file>.
--coveragedir <dir> Output coverage files to <dir>.
--erroronfail Indicates that a test failure should cause
an error to be reported to the console.
--host <host> Use the Selenium host <host>.
--port <port> Use <port> port on the Selenium host.
--resultsdir <dir> Output test result files to <dir>.
--silent Don't output test results to the console.
--tests <file> Loads test info from <file>.
-v, --verbose Display informational messages and warnings.
Examples
java -jar yuitest-selenium-driver.jar
http://www.example.com/tests/test_ui
java -jar yuitest-selenium-driver.jar --host
selenium.example.com --port 9080
http://www.example.com/tests/test_ui
java -jar yuitest-selenium-driver.jar --browsers
*firefox,*iexplore http://www.example.com/tests/test_ui
http://www.example.com/tests/test_util
java -jar yuitest-selenium-driver.jar --tests tests.xml
Tests File
<?xml version="1.0"?>
<yuitest>
<tests base="http://www.example.com/tests/" timeout="10000">
<url>test_core</url>
<url timeout="30000">test_util</url>
<url>test_ui</url>
</tests>
</yuitest>
Easiest way to specify multiple tests to
execute on the same host machine
Demo
(Sorry Slideshare viewers)
Today
YUI Test
Standalone Library
YUI Test
Selenium Driver
YUI Test
Coverage
What is code coverage?
I dunna know what
happened, all my tests
passed!
What was it you were
testing, Mr. Scott?
...
Code coverage tells you what code
executed during testing
Code can have multiple paths
function doSomething(){
if (condition){
doSomethingElse();
} else {
doAThirdThing();
}
}
The goal of unit testing is to exercise each path
The goal of code coverage is to identify if you did
doSomething()
condition
doSomethingElse() doAThirdThing()
doSomething()
condition
doSomethingElse() doAThirdThing()
doSomething()
condition
doAThirdThing()doSomethingElse()
Step One
Instrument JavaScript
Coverage covered-file.jsfile.js
Command Line
Usage: java -jar yuitest-coverage-x.y.z.jar [options] [file|dir]
Global Options
-h, --help Displays this information.
--charset <charset> Read the input file using <charset>.
-d, --dir Input and output (-o) are both directories.
-v, --verbose Display informational messages and warnings.
-o <file|dir> Place the output into <file|dir>. Defaults to
stdout.
Step Two
Run tests with instrumented
JavaScript
Step Three
Generate reports
Extract Coverage Data Yourself
//object results
results = YUITest.TestRunner.getCoverage();
//standard JSON results format
results = YUITest.TestRunner.getCoverage(
YUITest.CoverageFormat.JSON);
//alternate format
results = YUITest.TestRunner.getCoverage(
YUITest.CoverageFormat.XebugJSON);
Coverage
Report
Reportresults.json
Command Line
Usage: java -jar yuitest-coverage-report-x.y.z.jar [options] [file]
Global Options
-h, --help Displays this information.
--format <format> Output reports in <format>. Defaults to HTML.
-v, --verbose Display informational messages and warnings.
-o <file|dir> Place the output into <file|dir>.
CoverageSelenium
Driver
Selenium Driver automatically pulls in coverage data
Complete Testing Solution
YUI Test
Standalone Library
YUI Test
Selenium Driver
YUI Test
Coverage
JavaScript continuous integration testing system
Compatibility
• YUI Test Standalone Library 1.0.0
• YUI Test for YUI 3.1.1+
• YUI Test for YUI 2.8.1+
Contribute
• GitHub:
http://github.com/yui/yuitest/
• YUILibrary:
http://yuilibrary.com/projects/yuitest/
• YUIBlog Announcement:
http://www.yuiblog.com/blog/2010/11/09/intro
ducing-the-new-yui-test
Questions?
Etcetera
• My blog:
www.nczonline.net
• Twitter:
@slicknet
• These Slides:
http://slideshare.net/nzakas/
• Rate Me:
http://spkr8.com/t/4999
Creative Commons Images Used
• http://www.flickr.com/photos/anks/3311228772/
• http://www.flickr.com/photos/eschipul/4716821041/

More Related Content

What's hot

Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
Nicholas Zakas
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
Nicholas Zakas
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
Nicholas Zakas
 
High Performance Snippets
High Performance SnippetsHigh Performance Snippets
High Performance Snippets
Steve Souders
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
Nicholas Zakas
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
Nicholas Zakas
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
Nicholas Zakas
 
Testing Mobile JavaScript
Testing Mobile JavaScriptTesting Mobile JavaScript
Testing Mobile JavaScript
jeresig
 
jQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and FuturejQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and Future
Richard Worth
 
Cache is King
Cache is KingCache is King
Cache is King
Steve Souders
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
Edureka!
 
Building testable chrome extensions
Building testable chrome extensionsBuilding testable chrome extensions
Building testable chrome extensions
Seth McLaughlin
 
Hyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris ZachariasHyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris Zacharias
Christopher Zacharias
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
Chris Mills
 
Search and play more than 50 clips
Search and play more than 50 clipsSearch and play more than 50 clips
Search and play more than 50 clips
phanhung20
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
Chris Mills
 
Meteor Day Talk
Meteor Day TalkMeteor Day Talk
Meteor Day Talk
Brandon Bechtel
 
How To Build a Multi-Field Search Page For Your XPages Application
How To Build a Multi-Field Search Page For Your XPages ApplicationHow To Build a Multi-Field Search Page For Your XPages Application
How To Build a Multi-Field Search Page For Your XPages Application
Michael McGarel
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance Patterns
Stoyan Stefanov
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
Chris Mills
 

What's hot (20)

Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
High Performance Snippets
High Performance SnippetsHigh Performance Snippets
High Performance Snippets
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
 
Testing Mobile JavaScript
Testing Mobile JavaScriptTesting Mobile JavaScript
Testing Mobile JavaScript
 
jQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and FuturejQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and Future
 
Cache is King
Cache is KingCache is King
Cache is King
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
Building testable chrome extensions
Building testable chrome extensionsBuilding testable chrome extensions
Building testable chrome extensions
 
Hyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris ZachariasHyperlight Websites - Chris Zacharias
Hyperlight Websites - Chris Zacharias
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
Search and play more than 50 clips
Search and play more than 50 clipsSearch and play more than 50 clips
Search and play more than 50 clips
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Meteor Day Talk
Meteor Day TalkMeteor Day Talk
Meteor Day Talk
 
How To Build a Multi-Field Search Page For Your XPages Application
How To Build a Multi-Field Search Page For Your XPages ApplicationHow To Build a Multi-Field Search Page For Your XPages Application
How To Build a Multi-Field Search Page For Your XPages Application
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance Patterns
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 

Viewers also liked

The New Yahoo! Homepage and YUI 3
The New Yahoo! Homepage and YUI 3The New Yahoo! Homepage and YUI 3
The New Yahoo! Homepage and YUI 3
Nicholas Zakas
 
JavaScript Variable Performance
JavaScript Variable PerformanceJavaScript Variable Performance
JavaScript Variable Performance
Nicholas Zakas
 
Test Driven Development With YUI Test (Ajax Experience 2008)
Test Driven Development With YUI Test (Ajax Experience 2008)Test Driven Development With YUI Test (Ajax Experience 2008)
Test Driven Development With YUI Test (Ajax Experience 2008)
Nicholas Zakas
 
Maintainable JavaScript
Maintainable JavaScriptMaintainable JavaScript
Maintainable JavaScript
Nicholas Zakas
 
The Pointerless Web
The Pointerless WebThe Pointerless Web
The Pointerless Web
Nicholas Zakas
 
Color, themes, fonts: The building blocks of good e-commerce and ui design
Color, themes, fonts: The building blocks of good e-commerce and ui designColor, themes, fonts: The building blocks of good e-commerce and ui design
Color, themes, fonts: The building blocks of good e-commerce and ui design
Josh Levine
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Nicholas Zakas
 
High Performance JavaScript 2011
High Performance JavaScript 2011High Performance JavaScript 2011
High Performance JavaScript 2011
Nicholas Zakas
 
Speed Up Your JavaScript
Speed Up Your JavaScriptSpeed Up Your JavaScript
Speed Up Your JavaScript
Nicholas Zakas
 
Enterprise JavaScript Error Handling (Ajax Experience 2008)
Enterprise JavaScript Error Handling (Ajax Experience 2008)Enterprise JavaScript Error Handling (Ajax Experience 2008)
Enterprise JavaScript Error Handling (Ajax Experience 2008)
Nicholas Zakas
 
Writing Efficient JavaScript
Writing Efficient JavaScriptWriting Efficient JavaScript
Writing Efficient JavaScript
Nicholas Zakas
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application Architecture
Nicholas Zakas
 

Viewers also liked (12)

The New Yahoo! Homepage and YUI 3
The New Yahoo! Homepage and YUI 3The New Yahoo! Homepage and YUI 3
The New Yahoo! Homepage and YUI 3
 
JavaScript Variable Performance
JavaScript Variable PerformanceJavaScript Variable Performance
JavaScript Variable Performance
 
Test Driven Development With YUI Test (Ajax Experience 2008)
Test Driven Development With YUI Test (Ajax Experience 2008)Test Driven Development With YUI Test (Ajax Experience 2008)
Test Driven Development With YUI Test (Ajax Experience 2008)
 
Maintainable JavaScript
Maintainable JavaScriptMaintainable JavaScript
Maintainable JavaScript
 
The Pointerless Web
The Pointerless WebThe Pointerless Web
The Pointerless Web
 
Color, themes, fonts: The building blocks of good e-commerce and ui design
Color, themes, fonts: The building blocks of good e-commerce and ui designColor, themes, fonts: The building blocks of good e-commerce and ui design
Color, themes, fonts: The building blocks of good e-commerce and ui design
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
High Performance JavaScript 2011
High Performance JavaScript 2011High Performance JavaScript 2011
High Performance JavaScript 2011
 
Speed Up Your JavaScript
Speed Up Your JavaScriptSpeed Up Your JavaScript
Speed Up Your JavaScript
 
Enterprise JavaScript Error Handling (Ajax Experience 2008)
Enterprise JavaScript Error Handling (Ajax Experience 2008)Enterprise JavaScript Error Handling (Ajax Experience 2008)
Enterprise JavaScript Error Handling (Ajax Experience 2008)
 
Writing Efficient JavaScript
Writing Efficient JavaScriptWriting Efficient JavaScript
Writing Efficient JavaScript
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application Architecture
 

Similar to YUI Test The Next Generation (YUIConf 2010)

Testing Tools
Testing ToolsTesting Tools
Testing Tools
Ted Husted
 
Qunit testing slider
Qunit testing sliderQunit testing slider
Qunit testing slider
Yating Chatiron
 
Watir Presentation Sumanth Krishna. A
Watir Presentation   Sumanth Krishna. AWatir Presentation   Sumanth Krishna. A
Watir Presentation Sumanth Krishna. A
Sumanth krishna
 
Testing The Testers
Testing The TestersTesting The Testers
Testing The Testers
Ted Husted
 
Ted Husted Presentation Testing The Testers Ae2009
Ted Husted Presentation Testing The Testers Ae2009Ted Husted Presentation Testing The Testers Ae2009
Ted Husted Presentation Testing The Testers Ae2009
Ajax Experience 2009
 
Yui intro
Yui introYui intro
Yui intro
Aditya Gaur
 
探討Web ui自動化測試工具
探討Web ui自動化測試工具探討Web ui自動化測試工具
探討Web ui自動化測試工具
政億 林
 
Oh so you test? - A guide to testing on Android from Unit to Mutation
Oh so you test? - A guide to testing on Android from Unit to MutationOh so you test? - A guide to testing on Android from Unit to Mutation
Oh so you test? - A guide to testing on Android from Unit to Mutation
Paul Blundell
 
ikp321-04
ikp321-04ikp321-04
ikp321-04
Anung Ariwibowo
 
L08 Unit Testing
L08 Unit TestingL08 Unit Testing
L08 Unit Testing
Ólafur Andri Ragnarsson
 
Junit_.pptx
Junit_.pptxJunit_.pptx
Junit_.pptx
Suman Sourav
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylight
OpenDaylight
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
Luke Maung
 
Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5
Boni García
 
Testing And Drupal
Testing And DrupalTesting And Drupal
Testing And Drupal
Peter Arato
 
Security testing of YUI powered applications
Security testing of YUI powered applicationsSecurity testing of YUI powered applications
Security testing of YUI powered applications
dimisec
 
Test ng for testers
Test ng for testersTest ng for testers
Test ng for testers
Colombo Selenium Meetup
 
Hacking Selenium @ JSConf
Hacking Selenium @ JSConfHacking Selenium @ JSConf
Hacking Selenium @ JSConf
hugs
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
Marakana Inc.
 
An Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDDAn Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDD
Ahmed Ehab AbdulAziz
 

Similar to YUI Test The Next Generation (YUIConf 2010) (20)

Testing Tools
Testing ToolsTesting Tools
Testing Tools
 
Qunit testing slider
Qunit testing sliderQunit testing slider
Qunit testing slider
 
Watir Presentation Sumanth Krishna. A
Watir Presentation   Sumanth Krishna. AWatir Presentation   Sumanth Krishna. A
Watir Presentation Sumanth Krishna. A
 
Testing The Testers
Testing The TestersTesting The Testers
Testing The Testers
 
Ted Husted Presentation Testing The Testers Ae2009
Ted Husted Presentation Testing The Testers Ae2009Ted Husted Presentation Testing The Testers Ae2009
Ted Husted Presentation Testing The Testers Ae2009
 
Yui intro
Yui introYui intro
Yui intro
 
探討Web ui自動化測試工具
探討Web ui自動化測試工具探討Web ui自動化測試工具
探討Web ui自動化測試工具
 
Oh so you test? - A guide to testing on Android from Unit to Mutation
Oh so you test? - A guide to testing on Android from Unit to MutationOh so you test? - A guide to testing on Android from Unit to Mutation
Oh so you test? - A guide to testing on Android from Unit to Mutation
 
ikp321-04
ikp321-04ikp321-04
ikp321-04
 
L08 Unit Testing
L08 Unit TestingL08 Unit Testing
L08 Unit Testing
 
Junit_.pptx
Junit_.pptxJunit_.pptx
Junit_.pptx
 
Introduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylightIntroduction to JUnit testing in OpenDaylight
Introduction to JUnit testing in OpenDaylight
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5
 
Testing And Drupal
Testing And DrupalTesting And Drupal
Testing And Drupal
 
Security testing of YUI powered applications
Security testing of YUI powered applicationsSecurity testing of YUI powered applications
Security testing of YUI powered applications
 
Test ng for testers
Test ng for testersTest ng for testers
Test ng for testers
 
Hacking Selenium @ JSConf
Hacking Selenium @ JSConfHacking Selenium @ JSConf
Hacking Selenium @ JSConf
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
 
An Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDDAn Introduction To Unit Testing and TDD
An Introduction To Unit Testing and TDD
 

Recently uploaded

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 

Recently uploaded (20)

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 

YUI Test The Next Generation (YUIConf 2010)