Continuous testing shortens feedback loops through automated testing that occurs throughout the development lifecycle—hence "continuous." Testing and QA become the responsibility of everyone working on the software, not just testers. Let's look at some proven practices from organizations that have used continuous testing effectively to realize tangible benefits.
Most organizations understand that test automation is essential for modern application delivery processes. They’re just not sure how to make it a reality in an enterprise environment without exorbitant overhead and massive disruption. Enterprise organizations typically achieve small victories, but the process ultimately decays due to challenges in five main areas. Understanding these challenges will help us overcome them.
Fixing a bug in one area of the software may break something in another area. To detect whether defects have been introduced, we need to perform regression testing—executing certain test cases again to see whether a change has affected other existing features. But how do you make time for another testing cycle prior to every production release? You need to get QA involved earlier in the software development lifecycle.
The internet of things (IoT) continues to proliferate as connected smart devices become critical for individuals and businesses. Even with test automation, performing comprehensive testing can be quite a challenge.
Because enterprise applications are highly interconnected, development in stages puts a strain on the implementation and execution of automated testing. Service virtualization can be introduced to validate work in progress while reducing the dependencies on components and third-party technologies still under development.
Melissa Benua, director of engineering at mParticle, chats with TechWell community manager Owen Gotimer about the importance of whole team quality, how to get started using the test pyramid, and how developers can start writing testable code.
Jeremias Rößler, founder of ReTest, discusses his company’s open source re-check tool, how customer input was vital to the tool’s development, and shares insight on growing a start-up. Jeremias also provides resources for learning about AI that can guide you on how to apply AI into your testing strategy.
Melissa Benua, engineering manager at mParticle, discusses the role that containers play in test environments. She answers questions like: Why do you need containers? How is your team going to benefit from containers? What is the first step in getting started with containers? Melissa provides resources for learning how to make a container and on how containers will aid you in maintaining control over data and code.
Jason Arbon, CEO and founder of test.ai, discusses his goal to test all the world’s apps. Jason also provides insight on a frequent question he faces: When will AI replace my job? He believes that AI and machine learning have already started taking over some aspects of software testing, and that this transition will keep accelerating. Based on available data, Jason predicts which aspects of testing are going to be subsumed by AI, in what order, and in what time frame.
Most modern testing, especially in a DevOps model, uses a lot of telemetry to evaluate and monitor quality of experience for apps and services. In this interconnected world, there is power and risk in data. Ken Johnston will share his personal experiences dealing with US and European Union privacy regulations and the methods he and his team have implemented to mitigate the potential of significant penalties for the misuse of data. He will cover privacy-preserving techniques such as differential privacy and private enclave, what constitutes primary versus secondary uses of data, and how you should handle personally identifiable information (PII). You'll leave with a better understanding of how to keep data private and secured, as well as how to keep your team adhering to privacy best practices and regulations.
Serverless cloud applications are rapidly moving into the mainstream. In this model, teams focus on developing and deploying code on a known technology stack and runtime, with fixed interfaces for application, database, and network.