際際滷

際際滷Share a Scribd company logo
Automating with Open Source
Testing Tools
Corey McGarrahan
rSmart
01-July-08
Agenda
 Getting from Here to There
 Test Procedures
 Criteria for Tool Selection
 Tools Discussed
 And the winner is
 The Next Step
Where We Want to Be
 No Manual Test Scripts
 No Testing Tool
 Totally dependent on Sakai Scripts
Where We Were
 Acceptance tests for all tools
 Regression Suite
 Automated the Test Suites
Manual Test Procedures
 Writing Test procedures
 Procedures vs. Scripts
 Hire Testers
 Automate Procedures
Test Script
Resource
s
1: Add Item
Test ID Test Objective Pass/Fail Notes
1.1 Add an empty folder
1.1.1 Make folder publicly available
1.1.2
Restrict folder access to site
participants
1.1.3
Add more than one folder at one
time
1.1.4
Add a folder with spaces in the
name
Test Procedure
Step ID Action Expected Result
1.  Select the Announcements tool o The Announcements page is displayed
2.  Select the Add link o The Add Announcement page is displayed with
the following options:
oAnnouncement Title
oBody
oAccess
oAvailability
oAttachments
oEmail Notification
3.  Create an Announcement with the following
information:
Title: This is a Test
Body: Lorem ipsum 
Access: No change
Availability: No Change
Attachments: None
Email Notification: No change
Select the Add Announcement button
o The Announcements page is displayed showing
the This is a Test announcement.
Criteria
 Functional Test tool
 Open Source
 Collaborative in nature
 Easy to use, easy to learn
 Ability to record and playback
 Manual scripting capabilities
 Command Line functionality
 Maintenance of Scripts
 User Community
Tools
 JMeter
 Push To Test
 TestGen4Web
 Selenium
 IDE, Remote Control, Core, Grid
Apache JMeter
Apache JMeter may be used to test
performance both on static and dynamic
resources. It can be used to simulate a heavy
load on a server, network or object to test its
strength or to analyze overall performance
under different load types. You can use it to
make a graphical analysis of performance or
to test your server/script/object behavior
under heavy concurrent load.
Scorecard
 Ease of use - NO
 Record and Playback - YES
 Manual scripting  YES
 Command Line  YES
 Script Maintenance - NO
 User Community - Established
Push To Test w/ TestGen4Web
PushToTest TestMaker is a functional, end-to-end testing
platform that validates the service code from interface to
database and back. PushToTest is the open-source platform for
software developers, QA groups, and IT management to test,
optimize, monitor, and govern information systems.
TestGen4Web is a Navigation recorder, and playback tool. It
records the user action on the page, form fills, etc, and can save
the recording to a file and replay it back for you on demand.
Combined with translators, which can convert this recording to
automated command line test tools, you can generate
HTTPUnit, PHP-SimpleTest scripts.
Scorecard
 Ease of use - YES
 Record and Playback - YES
 Manual scripting  YES
 Command Line  YES
 Script Maintenance - NO
 User Community - Growing
Selenium IDE
Selenium IDE is an integrated development
environment for Selenium tests. It is
implemented as a Firefox extension, and
allows you to record, edit, and debug tests.
Selenium IDE includes the entire Selenium
Core, allowing you to easily and quickly
record and play back tests in the actual
environment that they will run.
Scorecard
 Ease of use  YES
 Record and Playback - YES
 Manual scripting  YES
 Command Line  YES
 Script Maintenance - YES
 User Community - Growing rapidly
And the winner is
 Selenium
 How we use Selenium
 Sample Tests
 Language Options
 TestSuite.html
How We Use Selenium IDE
 Environment Setup
 Site Creation and Data Seeding
 Acceptance Testing
 Positive Path Functional Tests
 Regression Testing
 Incorporating bug fixes and code
changes into the Acceptance Tests
on an ongoing basis
TestSuite.html
<html>
<head>
<title>Test Suite</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<tbody>
<tr>
<td>Test suite for setting up environment and acceptance tests</td>
</tr>
<tr>
<td<a target="testFrame" href=SS-01.htm" >Site Setup for 2.5</a></td>
</tr>
<tr>
<td<a target="testFrame" href=ANNC-01.htm" >Create
announcements</a></td>
</tr>
<tr>
<td<a target="testFrame" href=CAL-01.htm" >Create calendar
events</a></td>
</tr>
<tr>
<td<a target="testFrame" href=LGOUT-01.htm" >Log out</a></td>
</tr>
</tbody>
</table>
</body>
</html>
Language Options
 HTML
 Java
 C#
 Perl
 PHP
 Ruby
Support with Selenium
 Support Engineers Record steps to recreate bug
and attach Selenium test to JIRA Issue
 QA uses Selenium test to verify bug fix
 Tests are added to Regression Suite
The Next Step
 Continuous Integration
 Selenium Remote Control and Selenium
Grid

More Related Content

Automating testing with open source tools (1)

  • 1. Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08
  • 2. Agenda Getting from Here to There Test Procedures Criteria for Tool Selection Tools Discussed And the winner is The Next Step
  • 3. Where We Want to Be No Manual Test Scripts No Testing Tool Totally dependent on Sakai Scripts Where We Were Acceptance tests for all tools Regression Suite Automated the Test Suites
  • 4. Manual Test Procedures Writing Test procedures Procedures vs. Scripts Hire Testers Automate Procedures
  • 5. Test Script Resource s 1: Add Item Test ID Test Objective Pass/Fail Notes 1.1 Add an empty folder 1.1.1 Make folder publicly available 1.1.2 Restrict folder access to site participants 1.1.3 Add more than one folder at one time 1.1.4 Add a folder with spaces in the name
  • 6. Test Procedure Step ID Action Expected Result 1. Select the Announcements tool o The Announcements page is displayed 2. Select the Add link o The Add Announcement page is displayed with the following options: oAnnouncement Title oBody oAccess oAvailability oAttachments oEmail Notification 3. Create an Announcement with the following information: Title: This is a Test Body: Lorem ipsum Access: No change Availability: No Change Attachments: None Email Notification: No change Select the Add Announcement button o The Announcements page is displayed showing the This is a Test announcement.
  • 7. Criteria Functional Test tool Open Source Collaborative in nature Easy to use, easy to learn Ability to record and playback Manual scripting capabilities Command Line functionality Maintenance of Scripts User Community
  • 8. Tools JMeter Push To Test TestGen4Web Selenium IDE, Remote Control, Core, Grid
  • 9. Apache JMeter Apache JMeter may be used to test performance both on static and dynamic resources. It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
  • 10. Scorecard Ease of use - NO Record and Playback - YES Manual scripting YES Command Line YES Script Maintenance - NO User Community - Established
  • 11. Push To Test w/ TestGen4Web PushToTest TestMaker is a functional, end-to-end testing platform that validates the service code from interface to database and back. PushToTest is the open-source platform for software developers, QA groups, and IT management to test, optimize, monitor, and govern information systems. TestGen4Web is a Navigation recorder, and playback tool. It records the user action on the page, form fills, etc, and can save the recording to a file and replay it back for you on demand. Combined with translators, which can convert this recording to automated command line test tools, you can generate HTTPUnit, PHP-SimpleTest scripts.
  • 12. Scorecard Ease of use - YES Record and Playback - YES Manual scripting YES Command Line YES Script Maintenance - NO User Community - Growing
  • 13. Selenium IDE Selenium IDE is an integrated development environment for Selenium tests. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run.
  • 14. Scorecard Ease of use YES Record and Playback - YES Manual scripting YES Command Line YES Script Maintenance - YES User Community - Growing rapidly
  • 15. And the winner is Selenium How we use Selenium Sample Tests Language Options TestSuite.html
  • 16. How We Use Selenium IDE Environment Setup Site Creation and Data Seeding Acceptance Testing Positive Path Functional Tests Regression Testing Incorporating bug fixes and code changes into the Acceptance Tests on an ongoing basis
  • 17. TestSuite.html <html> <head> <title>Test Suite</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <tbody> <tr> <td>Test suite for setting up environment and acceptance tests</td> </tr> <tr> <td<a target="testFrame" href=SS-01.htm" >Site Setup for 2.5</a></td> </tr> <tr> <td<a target="testFrame" href=ANNC-01.htm" >Create announcements</a></td> </tr> <tr> <td<a target="testFrame" href=CAL-01.htm" >Create calendar events</a></td> </tr> <tr> <td<a target="testFrame" href=LGOUT-01.htm" >Log out</a></td> </tr> </tbody> </table> </body> </html>
  • 18. Language Options HTML Java C# Perl PHP Ruby
  • 19. Support with Selenium Support Engineers Record steps to recreate bug and attach Selenium test to JIRA Issue QA uses Selenium test to verify bug fix Tests are added to Regression Suite
  • 20. The Next Step Continuous Integration Selenium Remote Control and Selenium Grid

Editor's Notes

  1. Importance of manual scripts Easier to automate and control the tests Procedure vs. Script Procedures can be run by anyone regardless of experience with Sakai (Detailed test Procedures)
  2. Only an experienced user would be able to use this script
  3. Anyone who knows how to use a computer and a browser would be able to run this script
  4. Functional Test tool - White Box - Simulate user experience Open Source - To align with Sakai ideas of Community Source - Easy to get community adoption Collaborative in nature - Ability to share scripts Easy to use, easy to learn - Intuitive - No need for a developer, none available - Works with being collaborative Ability to record and playback - Quickly create tests - Simulating the user experience Manual scripting capabilities - For editing as well as writing without recording &amp;gt; Detailed Test Procedures can be written without application Command Line functionality - Continuous Integration Maintenance of Scripts - Cross environment, cross platform - Editing of scripts only when there are code changes User Community - Established user community or growing community
  5. Easy to record but a large amount of editing needed XML URL based script needs a great deal of editing
  6. Not as easy as Selenium Jython Buzz w/ Google, building support for Selenium
  7. Intuitive 6 languages: Java, Ruby, Perl, PHP, Python, C#, HTML No URL&amp;apos;s, XPath, 6 languages Google using extensively, hired original dev&amp;apos;s
  8. Nightly builds will kick off Environment Setup Setup scripts and Acceptance/Regression Tests Run Tests on different environments, platforms and browsers at the same time