Transcript Slide 1

Improve Development Process
with Open Source Software
Wen Tao
senior consultant
陈金洲
senior consultant
[email protected]
Xi’an Software Park, Xi’an High-tech Development Zone,
Xi’an Shaanxi, P. R. China, 710075
[email protected]
cell +86.138.1030.2515
office +86.29.8760.7341
Xi’an Software Park, Xi’an High-tech Development Zone,
Agenda
• Introduction
• Selenium
• Demo
• CruiseControl
• Showcase
• Conclusion
Share experience
• How do we test the web project?
• What’s our daily development like?
• Happy or painful?
• Why?
• Share your experience!
Question #1:
Functional Test For Web app
Traditional approach
Acceptance Testing
Feature developed
Bug found!
• Developers have moved on
• Too close to release
Regression Testing
Regression found!
Release
Development
Faster feedback
Development
Regression Testing
Write test as you go
Problems are found quickly
Run them as often as you can
Release
Acceptance Testing
Why Automated?
• Manual testing is slow, tedious and
error-prone
– Especially for regression
Regression Testing
3 months
Either take long time or less thorough
What now? Start again?
Regression Testing
10 minutes
Consistently Thorough
Fast enough to start again and again and again…
Selenium
http://www.openqa.org/selenium/
Selenium
• Open source test tool for web
applications.
• Run in browser
• Test browser compatibility & system
functionality.
• Easy to use.
– Test cases are written in pure HTML
– Clean and impressive UI
Demo
• Demo
– Start hsqldb
– Start tomcat
– Firefox
• http://localhost:8080/jpetstore
• http://localhost:8080/jpetstore/selenium
Question #2:
Continuous Integration
What is Continuous Integration
• Integrates source code and runs
tests after each commit of code to
the source repository.
• Near-immediate feedback to the
developer
Benefits of C.I.
• Minimizes integration risk.
• Supports easier defect diagnosis.
• Encourages good testing habit
• Support release management
• Enforces company development
policy
CruiseControl
http://cruisecontrol.sourceforge.net/
Also see Luntbuild, which is a simpler analogue of CruiseControl.
About CruiseControl
• Think of it as “timer for Ant”.
• Simple design. Full featured, but not
bloated.
• Adapts to your project, not the other
way around.
• Can be completely customized.
Build loop of C.C.
1. Bootstrap
2. Check for modifications
3. Get the revision log
5. Publish Artifacts
Cruise Control
VCS
3. Tag source
(optional)
Your project’s
Build file
Ant, Maven, Make
1. Get the latest
source
6. Send to publisher
4. Run Build
Project Specific
Adapter Ant Script
2. Run Build
Build Artifacts Dir
Mail/Sound/Light…
• Showcase
Conclusion
• DRY, use automation test/continuous
tools help you improve your
development process, and maximize
customer value.
• Selenium helps you test webapp
more easily.
• Keep CruiseControl running. it gives
you feedback as soon as possible.
Resources
Mike Clark, author of Pragmatic Project Automation
http://media.pragprog.com/movies/auto/CruiseControl_MikeClark.html
Selenium IDE:
http://www.openqa.org/selenium-ide/
Selenium Remote Control
http://www.openqa.org/selenium-rc/