AGENDA ● Why move to Continuous Delivery? ● Does QA fit in CD? ○ The QA evolution ● The way to go: Continuous Testing! ● Some Best Practices ● The challenges ahead
● Usable pieces of software code can be delivered quickly ● Get early feedback on features being developed ● Deliver value to the customer in a continuous way The Benefits
• Continuous Delivery doesn’t require frequent releases • The objectives: ○ Make testing and development processes more collaborative ○ Ensure software quality ○ Help launch the product faster to the market The Reality (1/2)
● The constant need of real-time changes by the customers requires: ○ continuous testing ○ continuous development ○ continuous delivery ● For Companies to evolve in a sustainable way, Quality has to be at the core of every practice The Reality (2/2)
For starters, let’s make some things clear... Testing is just an activity in the development process Testing can’t be the responsibility of one single person We can compromise scope but not Quality! More QAs More Quality
● QA in the DevOps world is about preventing defects, not finding them! ● Have visibility and directive to push code out when it is working, and roll it back when it is not. ● Become responsible for continuous improvement and help to assure quality across the development cycle. The QA Evolution (1/2 )
● It’s cheaper and much faster to guarantee quality continuously ● It creates a “safety net” that increases dev confidence in making changes and shipping code ● There’s a much less prominent risk of releasing features What are the benefits?
● Automate the tests! ● Change mentality ○ Start testing from the first line of code and work your way up in the testing pyramid ○ Continuously integrate, deliver and deploy working software ○ Get early feedback and keep quality high at all times How should we do that?
● QAs emphasize the customer experience over all else ● Their goal is to accelerate deployment, rather than hold it back ● Releasing new and functional builds at any point through the SDLC can become a disaster if quality is not ensured constantly ● Knowing which tests to automate is critical to guarantee quality and bring speed Do organizations really need QAs?
Building a QA strategy with the necessary best practices will help in delivering effective software development and operations to achieve user experience.
1. Developers, QAs and Operations have to work together ● Share constant feedback on what actually is going on ● Communicate on how the code relates back to a requirement or user story ● Share feedback on which tests should be automated and which are actually affecting the feature that’s being released
2. Think about automate first ● This doesn’t mean that you just get rid of manual testing ● You shouldn’t automate everything, but you should take an “automation first” approach
● It’s not possible to test everything ○ The focus should be on covering critical scenarios ○ Have a solid base of unit and functional tests, and anything automatable ● Regression tests have to be built incrementally ○ When making a bug fix, add a test for that bug ● Manual testing should only be used for exploration