Modern web applications are complex systems that are often deployed across multiple servers in a network. The complexity of these systems, along with the human nature to introduce faults in software, makes automated testing and deployment essential. Testing is used to ensure that software under development or maintenance is correct, and may include functionality testing, usability testing, interface testing, compatibility testing, performance testing and security testing. The ability to automatically deploy a web application in a production environment also eliminates the human mistakes that occur when manually deploying the various pieces of a web application.
In this course you will learn how automated testing and deployment supports agile software methodologies, where web applications are often updated and deployed on a daily basis. You will first learn about the various types of software tests, and then we will consider a number of the testing frameworks that are available for web applications. As a part of this, you will learn about test-driven and behavior-driven development, and how to use them in a Rails environment. In particular, you will learn how to use the popular RSpec framework in your web applications. In addition, you will learn how to use factories and populators to create realistic data that can be used to test web applications. Finally, you will learn about automated deployment tools such as Puppet, Chef and Capistrano, and you will use these tools in order to deploy a web application in the cloud.