• • • • • • Continuous Integration Continuous Delivery A Good Testing Strategy Agile Testing in Production … Core Search Principles Rapid Componentized Builds Continuous Integration Unit Testing Improve service quality and engineering agility Operate at Near Zero Bugs Focused Integration Testing Effective Exploratory Testing integrate frequently multiple integrations per day automated build and test as quickly as possible. http://www.martinfowler.com/articles/continuous Integration.html Continuous Integration in .NET Every Commit should build the mainline on integration machine Keep the Build fast Everyone can see what's happening http://google-engtools.blogspot.com/ Continuous Delivery Building, Testing releasing faster frequently Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation The process for releasing/deploying software MUST be repeatable and reliable. Automate everything! Done means “released”. If something difficult or painful, do it more often. Deployment Pipeline models the part of your project’s value stream that goes from check-in to release, and then to automate it. Acceptance Tests Code Change Build Test Deployment Run test on deployment Run test on Pre Production Pre Production Deployment Unit Tests Functional Tests Monitor in Production Production Deployment Agile Testing: A Practical Guide for Testers and Agile Teams Production Level Monitoring Staging Level A simulation of the production environment with faked identities etc. Uses monitoring techniques Integration Level Automated testing of every code change over the dependency closure End-to-End testing with partial component isolation Unit Level Super-strict component isolation using e.g. dependency injection Extensive use of mock-based testing Load testing enables continuous and frequent customer value delivery high quality predictable lower cost.” Protection Services 2.0 Engineering Methodology Test In Production (TiP) • Continuously and extensively Monitoring and experimental our service in production Continuous Deployment • Frequent deployments of small changes to production environment (starting with weekly releases) Continuous Integration • Minimize the gap between code development and deployment readiness Pushing Quality Upstream • Efficient processes to reduce the cost and gaps between product and quality development Continuous Improvement • Constant observation, measurement and feedback on processes ,systems and cost • • • • • Continuous Delivery Book Agile Testing Book My Blog at http://my/sites/qyao/Blog/default.aspx Http://Services Http://Tip is NOT Mind Shift How Google testing services Active Monitoring Framework Experimention in Production different experiences manner right thing controlled built the we build the thing right know what the customer thinks is truly important and test for those subjects.