Title: Improve Development Process with Open Source Software
1Improve Development Process with Open Source
Software
2Agenda
- Introduction
- Selenium
- Demo
- CruiseControl
- Showcase
- Conclusion
3Share experience
- How do we test the web project?
- Whats our daily development like?
- Happy or painful?
- Why?
- Share your experience!
4- Question 1
- Functional Test For Web app
5Release
Development
Acceptance Testing
Regression Testing
- Developers have moved on
- Too close to release
6Release
Development
Acceptance Testing
Regression Testing
Write test as you go
Problems are found quickly
Run them as often as you can
7Why Automated?
- Manual testing is slow, tedious and error-prone
- Especially for regression
Either take long time or less thorough
What now? Start again?
8Consistently Thorough Fast enough to start again
and again and again
9Selenium
http//www.openqa.org/selenium/
10Selenium
- 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
11Demo
- Demo
- Start hsqldb
- Start tomcat
- Firefox
- http//localhost8080/jpetstore
- http//localhost8080/jpetstore/selenium
12- Question 2
- Continuous Integration
13What is Continuous Integration
- Integrates source code and runs tests after each
commit of code to the source repository. - Near-immediate feedback to the developer
14Benefits of C.I.
- Minimizes integration risk.
- Supports easier defect diagnosis.
- Encourages good testing habit
- Support release management
- Enforces company development policy
15CruiseControl
http//cruisecontrol.sourceforge.net/
Also see Luntbuild, which is a simpler analogue
of CruiseControl.
16About 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.
17Build loop of C.C.
1. Bootstrap
2. Check for modifications
VCS
Cruise Control
3. Get the revision log
Build Artifacts Dir
5. Publish Artifacts
Mail/Sound/Light
6. Send to publisher
1. Get the latest source
4. Run Build
3. Tag source (optional)
Project Specific Adapter - Ant Script
Your projects Build file Ant, Maven, Make
2. Run Build
18 19Conclusion
- 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.
20Resources
- Mike Clark, author of Pragmatic Project
Automation - http//media.pragprog.com/movies/auto/CruiseContro
l_MikeClark.html - Selenium IDE
- http//www.openqa.org/selenium-ide/
- Selenium Remote Control
- http//www.openqa.org/selenium-rc/