The idea is similar to how we used autotest in Chapter 8 except that the

The idea is similar to how we used autotest in

This preview shows page 457 - 459 out of 517 pages.

The idea is similar to how we used autotest in Chapter 8 , except that the complete integration test suite may include tests that a developer might not normally run on his own, such as: Browser compatibility: correct behavior across different browsers that have differences in CSS or JavaScript implementations Version compatibility: correct behavior on different versions of the Ruby interpreter (Ruby 1.9, JRuby, and so on), the Rack application server, or for software that may be hosted in a variety of environments, different versions of Ruby gems Service-oriented architecture integration: correct behavior when external services on which the app depends behave in unexpected ways (very slow connection, return a flood of garbage information, and so on) Stress: performance and stress tests such as those described in Section 12.6 Hardening: testing for protection against malicious attacks such as those described in Section 12.9 CI systems are typically integrated into the overall development process rather than simply running tests passively. For example, Salesforce’s CI system runs 150,000+ tests in parallel across many machines, and if any test fails, it performs binary searches across checkins to pinpoint the culprit and automatically opens a bug report for the developer responsible for that checkin ( Hansma 2011 ). Travis , an open-source hosted CI system for Ruby apps, runs integration tests whenever it is notified of a new code push via GitHub’s post-receive URI repo; it then uses OAuth (which we met in Section 5.2 ) to check out the code runs rake test , another demonstration of using rake tasks for automation. SauceLabs provides hosted CI focused on cross-browser testing: your app’s Webdriver-based Cucumber scenarios are run against a variety of browsers and operating systems, with each test run captured as a screencast so you can visually inspect what the browser looked like for tests that failed. Although deployment is a non-event, there is still a role for release milestones: they reassure the customer that new work is being deployed. For example, a customer-requested feature may require
Image of page 457
multiple commits to implement, each of which may include a deployment, but the overall feature remains “hidden” in the user interface until all changes are completed. “Turning on” the feature would be a useful release milestone. For this reason, many continuous-deployment workflows assign distinct and often whimsical labels to specific release points (such as “Bamboo” and “Cedar” for Heroku’s software stacks), but just use the Git commit-id to identify deployments that don’t include customer- visible changes. Summary of Continuous Integration (CI): CI consists of running a set of integration tests prior to deployment that are usually more extensive than what a single developer would run on his own.
Image of page 458
Image of page 459

You've reached the end of your free preview.

Want to read all 517 pages?

  • Spring '19
  • Dr.Marcos

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors