Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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/