This document discusses automating testing with open source tools. It evaluates several options including Selenium, JMeter, and PushToTest/TestGen4Web. Selenium is selected as the best option. It allows recording and playing back tests in Firefox. Sample test suites and how Selenium is used for acceptance and regression testing are also described. The next steps of setting up continuous integration with Selenium Grid are mentioned.
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
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
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)
Only an experienced user would be able to use this script
Anyone who knows how to use a computer and a browser would be able to run this script
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
> 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
Easy to record but a large amount of editing needed
XML
URL based script needs a great deal of editing
Not as easy as Selenium
Jython
Buzz w/ Google, building support for Selenium
Intuitive
6 languages: Java, Ruby, Perl, PHP, Python, C#, HTML
No URL's, XPath, 6 languages
Google using extensively, hired original dev's
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