In this talk, Qingsong Yao will discussion a set of commonly used engineering principle and practices, namely, Continuous Integration, Continuous Delivery, and various Testing Strategies, which you can use in your daily work. These principles helped many organizations to release their product fast with high quality and were fully integrated into Agile process. He will show demos about how these engineering principle and practices are used in his DAC Import/Export improvement. In additional, he will show how organizations and companies, like Bing team, Protection Services Team, and Google use these principles.
Driving Behavioral Change for Information Management through Data-Driven Gree...
Service engineering
1.
2.
3. • Continuous Integration
• Continuous Delivery
• A Good Testing Strategy
• Testing in Production
• Agile
4.
5.
6. Rapid Componentized Builds
Continuous Integration
Unit Testing Improve service quality and
engineering agility
Operate at Near Zero Bugs
Focused Integration Testing
Effective Exploratory Testing
7.
8. 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
9. Every Commit should build the mainline on
integration machine
Keep the Build fast
Everyone can see what's happening
14. Continuous Delivery
Building, Testing
releasing faster
frequently
Continuous Delivery: Reliable Software
Releases through Build, Test, and
Deployment Automation
15. 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.
19. Deployment Pipeline models the part of your project’s
value stream that goes from check-in to release, and then
to automate it.
20.
21. Acceptance Test Run test on
Tests Deployment deployment
Code Unit Tests
Build
Change
Functional
Tests
Run test on Pre
Monitor in Production
Pre Production
Production Deployment
Production Deployment
33. Production Monitoring
Level
A simulation of
Staging the production
environment with
Uses monitoring
Load testing
techniques
Level faked identities
etc.
Automated testing
Integration of every code
End-to-End
testing with partial
change over the
component
Level dependency
closure
isolation
Super-strict
component Extensive use of
Unit Level isolation using
e.g. dependency
mock-based
testing
injection
44. 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
Notes de l'éditeur
We want to bring a set of well known engineering system principle and practice into your daily work and shift your mind: