In the bad old days of software development, developers and testers were placed on different teams and often siloed. This created frustration and long feedback loops as developers "threw" builds and features "over the wall" to testers on a different team. With the advent of modern software development practices, this is fortunately changing; testers and developers are working collaboratively, providing different perspectives on builds, features and how software is built and tested.
One place where testers and developers can now work really well together is automated testing. Developers often have strong coding abilities and know programming languages and tooling well, while testers provide insights and priority of what can be tested using automation. An example of where this collaboration can truly shine is a continuous integration/continuous delivery pipeline (CI/CD for short). This is an automated process that code passes through and may involve building, testing and deploying software using a completely automated process. Developing a CI/CD pipeline can greatly shorten feedback loops for team members and improve software quality overall. The best example of this is the pull-request build, whereby developers use automated tests to get instant feedback on the quality of their code before it is merged into a master branch. This gives teams confidence their new apps and features will provide a flawless, bug-free experience for their users.
Automated testing is essential for CI/CD and integrating Sauce into stages of a CI/CD pipeline can tighten up those automated processes even more. How? In my Tech Talk, Sauce Labs and CI/CD – Using Sauce in Your Pipeline, I demonstrate how to build a basic CI/CD pipeline, as well as incorporate several mainstream technologies (Jenkins, GitHub, Angular and WebdriverIO) along with Sauce Labs for handling automated testing. Plus, I also discuss how both unit testing done by developers and functional testing done by testers benefit from using Sauce Labs, as well as how these forms of testing work in conjunction with building and deploying an application.