200 likes | 350 Views
Wen Tao senior consultant. 陈金洲 senior consultant. wtao @thoughtworks.com Xi’an Software Park, Xi’an High-tech Development Zone, Xi’an Shaanxi, P. R. China, 710075 cell +86. 13 8 . 1030 . 2515 office +86.29.8760.7341. jchen @thoughtworks.com
E N D
Wen Taosenior consultant 陈金洲senior consultant wtao@thoughtworks.com Xi’an Software Park, Xi’an High-tech Development Zone, Xi’an Shaanxi, P. R. China, 710075 cell +86.138.1030.2515office +86.29.8760.7341 jchen@thoughtworks.com Xi’an Software Park, Xi’an High-tech Development Zone, Xi’an Shaanxi, P. R. China, 710075 cell +86.139.9197.1753office +86.29.8760.7341 Improve Development Process with Open Source Software
Agenda • Introduction • Selenium • Demo • CruiseControl • Showcase • Conclusion
Share experience • How do wetest the web project? • What’s our daily development like? • Happy or painful? • Why? • Share your experience!
Question #1: Functional Test For Web app
Bug found! Feature developed Regression found! Traditional approach Release Development Acceptance Testing Regression Testing • Developers have moved on • Too close to release
Faster feedback Release Development Acceptance Testing Regression Testing Write test as you go Problems are found quickly Run them as often as you can
Regression Testing 3 months Why Automated? • Manual testing is slow, tedious and error-prone • Especially for regression 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 goodtesting habit • Support release management • Enforcescompany 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 VCS Cruise Control 3. Get the revision log 5. Publish Artifacts Build Artifacts Dir 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 project’s Build file Ant, Maven, Make 2. Run Build
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/