SlideShare une entreprise Scribd logo
1  sur  47
The Evolution of Testing Methodology
at AWS: From Status Quo To Formal
Methods With TLA+
Tim Rath
Principal Engineer
AWS Database Services
Amazon.com
1
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/aws-testing-tla
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
AWS Landscape
2
Services comprise large fleets
of servers decomposed into
smaller services
3
Many of which experience
sustained exponential growth
4
S3 experienced exponential growth for
6 years to reach 1 trillion objects
stored; less than a year later it reached
2 trillion objects [1]
5
DynamoDB processes millions of
transactions per second in a single
AWS region around the clock [2]
6
Systems and data are managed
through subtle concurrent and
distributed algorithms
7
“Must Haves” of Every Service
8
Security
Durability
Scalability
Availability
General Test Strategy
• Developers
– Unit Tests
– Integration Tests
9
•QA (release testing)
•Functional Tests
•Performance Tests
•Stress Tests
•Failure Tests
Test Adequacy Criteria
• Literature expresses as a form of measurable
code coverage [3]
• Status Quo Criteria:
– Statement coverage
• Most common adequacy criteria employed today
• Tools readily available to measure and report
• Extremely weak criteria
10
Test Adequacy Criteria
• Literature expresses as a form of measurable
code coverage[3]
• Perfect Criteria:
– Cover every execution path across every possible
state for the system
• States may be infinite
• Test space is exponential with path length
11
Test Adequacy Criteria
• Real world practice further defines test
adequacy criteria through an ad-hoc process:
– Brain-storm test scenarios
– Brain-storm stress test workloads
– Brain-storm failure scenarios
12
Better testing of distributed algorithms
• We look for strategies that:
– Help to understand and protect algorithm invariants
– Help expand test coverage
– Allow thorough testing as early as possible in the
development process
13
Development starts with specification
14
Development starts with specification
14
Development starts with specification
14
Development starts with specification
14
Testing Starts With Development
• Write tests and test support structure while working
on the implementation
– The spirit of “Test Driven Development” without
subscribing to the specific formula
• It is unclear how useful adhering to strict TDD concepts
really is [4]
• The emphasis it puts on test, and test thoroughness is
where the value is [5]
15
Testing Starts With Development
15
Assert system invariants
• Asserts enforce the specification in code
• Strong assert statements come from clear
understanding of the specification
16
Assert system invariants
16
Assert system invariants
16
Generative Testing
Formalization around randomized testing
with invariant or “property” checking
17
Generative Testing
18
Test Case
Generator
Test
Execution
Validation Of
Properties
Against Result
Properties
Violated?
Expected
Properties Of
Result
Report
Failure Case
Loop
No Yes
Anecdotes From QuickCheck Paper [6]
• Made them think harder about properties;
document the specification
• Need to think about the input domain to
exercise less probable paths
19
Anecdotes From QuickCheck Paper [6]
19
Anecdotes From QuickCheck Paper [6]
19
In Process Clusters
20
Process
1) Run multiple nodes in the same process as unit test
2) Insert arbitrary code into the communication channel
3) Ability to pipeline the inserted bits of code
In Process Clusters
• Helps write better integration tests
– Allows easy construction of intricate test scenarios
– Integration testing of distributed components in a
unit test environment
• Helps write better stress tests
– Direct control at the communication layer
– Much faster, lower over-head test cycles
21
In Process Clusters
21
In Process Clusters
21
Informal Proofs
• Requires deep thinking which promotes even
better understanding of the algorithms
• Hard to get right – can still lead to a false
sense of security
22
Informal Proofs
22
Formal Methods
• Precise specification of algorithms
• Tools to validate correctness
• We surveyed some of the systems and languages
for writing formal specifications, and ended up
finding what we were looking for in TLA+ [7]
• TLA+ gives us all possible executions over all
possible system states for algorithm designs
23
TLA+
24
read
write
read
write
read
write
read
write
read
write
TLA+
• How the model works:
– Init == <set of initial system states>
– Next == <set of possible next actions>
• That’s it!
25
TLA+
25
TLA+
25
TLA+
25
Real World Examples
• DynamoDB
– Replication protocols
– Membership handling
– Quorum Configuration Changes
• Other AWS projects [8]
– Low level distributed network protocol
– Internal distributed lock manager
– S3, EC2, EBS system management algorithms
26
Thank You!
27
Thank You!
27
we’re hiring
rath@amazon.com
28
[2] Hamilton, J. Challenges in Designing at Scale: Formal Methods in Building Robust
Distributed Systems. Perspectives Blog. July 2014;
http://perspectives.mvdirona.com/2014/07/03/ChallengesInDesigningAtScaleFormalMethodsInBuildingRobustDistributedSystems.aspx
[1] Barr, J. Amazon S3-The First Trillion Objects. Amazon Web Services Blog. June 2012;
https://aws.amazon.com/blogs/aws/amazon-s3-two-trillion-objects-11-million-requests-second/
[3] Zhu, H., et al. Software Unit Test Coverage and Adequacy. ACM Computing Surveys,
Vol. 29, No. 4, December 1997;
http://www.cs.toronto.edu/~chechik/courses07/csc410/p366-zhu.pdf
[4] Bulajic, A., Sambasivam, S., Stojic, R. Overview of the Test Driven Development
Research Projects and Experiments. Proceedings of Informing Science & IT Education
Conference (InSITE), 2012;
http://proceedings.informingscience.org/InSITE2012/InSITE12p165-187Bulajic0052.pdf
[5] Dalke, A. Problems with TDD. Dalke Scientific (dalkescientific.com), December 2009;
http://www.dalkescientific.com/writings/diary/archive/2009/12/29/problems_with_tdd.html
29
[6] Claessen, K., Hughes, J. QuickCheck: A Lightweight Tool for Random Testing of
Haskell Programs. ACM SIGPLAN Notices Volume 35 Issue 9, Sept. 2000;
http://www.eecs.northwestern.edu/~robby/courses/395-495-2009-fall/quick.pdf
[7] Newcombe, C., et al. Use of Formal Methods at Amazon Web Services. (pending ACM
publication), November 2013;
http://research.microsoft.com/en-us/um/people/lamport/tla/amazon.html
[8] Newcombe, C. Why Amazon Chose TLA+. Lecture Notes in Computer Science Volume
8477, June 2014; http://link.springer.com/chapter/10.1007%2F978-3-662-43652-3_3
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/aws-
testing-tla

Contenu connexe

Tendances

Monitoring Apache Kafka
Monitoring Apache KafkaMonitoring Apache Kafka
Monitoring Apache Kafkaconfluent
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseRed Gate Software
 
Scalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestScalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestKrishna Gade
 
RedisConf18 - Implementing a New Data Structure for Redis
RedisConf18 - Implementing a New Data Structure for Redis  RedisConf18 - Implementing a New Data Structure for Redis
RedisConf18 - Implementing a New Data Structure for Redis Redis Labs
 
The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...Red Gate Software
 
RedisConf18 - Serving Automated Home Valuation with Redis & Kafka
RedisConf18 - Serving Automated Home Valuation with Redis & KafkaRedisConf18 - Serving Automated Home Valuation with Redis & Kafka
RedisConf18 - Serving Automated Home Valuation with Redis & KafkaRedis Labs
 
Peer council 2013_presentation
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentationWiLS
 
RedisConf18 - Redis Fault Injection
RedisConf18  - Redis Fault InjectionRedisConf18  - Redis Fault Injection
RedisConf18 - Redis Fault InjectionRedis Labs
 
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...Ching-Hwa Yu
 
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0Legacy Typesafe (now Lightbend)
 
SDL Trados Studio 2014... what's new?
SDL Trados Studio 2014... what's new?SDL Trados Studio 2014... what's new?
SDL Trados Studio 2014... what's new?SDL Trados
 
Stream Processing with Apache Flink
Stream Processing with Apache FlinkStream Processing with Apache Flink
Stream Processing with Apache FlinkC4Media
 
Extending the Yahoo Streaming Benchmark
Extending the Yahoo Streaming BenchmarkExtending the Yahoo Streaming Benchmark
Extending the Yahoo Streaming BenchmarkJamie Grier
 
QCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache FlinkQCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache FlinkRobert Metzger
 
QA Evening Игорь Колосов - Performance Testing: Metrics & Measurements
QA Evening Игорь Колосов - Performance Testing: Metrics & MeasurementsQA Evening Игорь Колосов - Performance Testing: Metrics & Measurements
QA Evening Игорь Колосов - Performance Testing: Metrics & MeasurementsArtjoker
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to AzureRed Gate Software
 
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...Flink Forward
 
Robust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkRobust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkJamie Grier
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...confluent
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
 

Tendances (20)

Monitoring Apache Kafka
Monitoring Apache KafkaMonitoring Apache Kafka
Monitoring Apache Kafka
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your Database
 
Scalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestScalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at Pinterest
 
RedisConf18 - Implementing a New Data Structure for Redis
RedisConf18 - Implementing a New Data Structure for Redis  RedisConf18 - Implementing a New Data Structure for Redis
RedisConf18 - Implementing a New Data Structure for Redis
 
The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...
 
RedisConf18 - Serving Automated Home Valuation with Redis & Kafka
RedisConf18 - Serving Automated Home Valuation with Redis & KafkaRedisConf18 - Serving Automated Home Valuation with Redis & Kafka
RedisConf18 - Serving Automated Home Valuation with Redis & Kafka
 
Peer council 2013_presentation
Peer council 2013_presentationPeer council 2013_presentation
Peer council 2013_presentation
 
RedisConf18 - Redis Fault Injection
RedisConf18  - Redis Fault InjectionRedisConf18  - Redis Fault Injection
RedisConf18 - Redis Fault Injection
 
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...
2017 LabVIEW Developer Day - Branching Workflows for Accelerated Team Develop...
 
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
 
SDL Trados Studio 2014... what's new?
SDL Trados Studio 2014... what's new?SDL Trados Studio 2014... what's new?
SDL Trados Studio 2014... what's new?
 
Stream Processing with Apache Flink
Stream Processing with Apache FlinkStream Processing with Apache Flink
Stream Processing with Apache Flink
 
Extending the Yahoo Streaming Benchmark
Extending the Yahoo Streaming BenchmarkExtending the Yahoo Streaming Benchmark
Extending the Yahoo Streaming Benchmark
 
QCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache FlinkQCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache Flink
 
QA Evening Игорь Колосов - Performance Testing: Metrics & Measurements
QA Evening Игорь Колосов - Performance Testing: Metrics & MeasurementsQA Evening Игорь Колосов - Performance Testing: Metrics & Measurements
QA Evening Игорь Колосов - Performance Testing: Metrics & Measurements
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to Azure
 
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
 
Robust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkRobust Stream Processing with Apache Flink
Robust Stream Processing with Apache Flink
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 

En vedette

Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Amazon Web Services
 
Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Amazon Web Services
 
Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber. Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber. Stelligent
 
Introduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSIntroduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSEdureka!
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAmazon Web Services
 
Partner Marketing Plan for Amazon Web Services
Partner Marketing Plan for Amazon Web ServicesPartner Marketing Plan for Amazon Web Services
Partner Marketing Plan for Amazon Web ServicesMakewavesGroup
 
Amazon Web Services (AWS) Marketing Plan Analysis
Amazon Web Services (AWS) Marketing Plan AnalysisAmazon Web Services (AWS) Marketing Plan Analysis
Amazon Web Services (AWS) Marketing Plan Analysisjewellynnz
 
Test & Development on the AWS Cloud
Test & Development on the AWS CloudTest & Development on the AWS Cloud
Test & Development on the AWS CloudAmazon Web Services
 

En vedette (15)

Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
Agile Development and Continuous Integration in the Cloud - RIchard Durnall -...
 
Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013
 
Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber. Test-Driven Infrastructure with CloudFormation and Cucumber.
Test-Driven Infrastructure with CloudFormation and Cucumber.
 
Introduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWSIntroduction to Cloud Computing with AWS
Introduction to Cloud Computing with AWS
 
Development and Test on AWS
Development and Test on AWSDevelopment and Test on AWS
Development and Test on AWS
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
 
Partner Marketing Plan for Amazon Web Services
Partner Marketing Plan for Amazon Web ServicesPartner Marketing Plan for Amazon Web Services
Partner Marketing Plan for Amazon Web Services
 
AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Amazon Web Services (AWS) Marketing Plan Analysis
Amazon Web Services (AWS) Marketing Plan AnalysisAmazon Web Services (AWS) Marketing Plan Analysis
Amazon Web Services (AWS) Marketing Plan Analysis
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Test & Development on the AWS Cloud
Test & Development on the AWS CloudTest & Development on the AWS Cloud
Test & Development on the AWS Cloud
 
Test & Dev on the AWS Cloud
Test & Dev on the AWS CloudTest & Dev on the AWS Cloud
Test & Dev on the AWS Cloud
 
Cost Optimisation on AWS
Cost Optimisation on AWSCost Optimisation on AWS
Cost Optimisation on AWS
 
The Benefits of Cloud Computing
The Benefits of Cloud ComputingThe Benefits of Cloud Computing
The Benefits of Cloud Computing
 

Similaire à The Evolution of Testing Methodology at AWS: From Status Quo to Formal Methods with TLA+

Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1Qualitest
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting startedQualitest
 
ADDO Open Source Observability Tools
ADDO Open Source Observability Tools ADDO Open Source Observability Tools
ADDO Open Source Observability Tools Mickey Boxell
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous TestingParasoft
 
Model Based Test Validation and Oracles for Data Acquisition Systems
Model Based Test Validation and Oracles for Data Acquisition SystemsModel Based Test Validation and Oracles for Data Acquisition Systems
Model Based Test Validation and Oracles for Data Acquisition SystemsLionel Briand
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case studyDavid Marsh
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspecjeffrey1ross
 
Microservices: Organizing Large Teams for Rapid Delivery
Microservices: Organizing Large Teams for Rapid DeliveryMicroservices: Organizing Large Teams for Rapid Delivery
Microservices: Organizing Large Teams for Rapid DeliveryVMware Tanzu
 
Computational Patterns of the Cloud
Computational Patterns of the CloudComputational Patterns of the Cloud
Computational Patterns of the CloudC4Media
 
Quantifying DevOps Adoption Empirically for Demonstrable ROI
Quantifying DevOps Adoption Empirically for Demonstrable ROIQuantifying DevOps Adoption Empirically for Demonstrable ROI
Quantifying DevOps Adoption Empirically for Demonstrable ROIDevOps for Enterprise Systems
 
ASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge EventASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge Eventjmustac
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021Shelley Lambert
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practicesSkills Matter
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Vimal Suba
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...AgileNetwork
 
OpenStack Marketing Meeting - Icehouse Release
OpenStack Marketing Meeting - Icehouse ReleaseOpenStack Marketing Meeting - Icehouse Release
OpenStack Marketing Meeting - Icehouse ReleaseOpenStack Foundation
 

Similaire à The Evolution of Testing Methodology at AWS: From Status Quo to Formal Methods with TLA+ (20)

Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI
Deploying at will - SEI
 
ADDO Open Source Observability Tools
ADDO Open Source Observability Tools ADDO Open Source Observability Tools
ADDO Open Source Observability Tools
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Model Based Test Validation and Oracles for Data Acquisition Systems
Model Based Test Validation and Oracles for Data Acquisition SystemsModel Based Test Validation and Oracles for Data Acquisition Systems
Model Based Test Validation and Oracles for Data Acquisition Systems
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
 
Microservices: Organizing Large Teams for Rapid Delivery
Microservices: Organizing Large Teams for Rapid DeliveryMicroservices: Organizing Large Teams for Rapid Delivery
Microservices: Organizing Large Teams for Rapid Delivery
 
Computational Patterns of the Cloud
Computational Patterns of the CloudComputational Patterns of the Cloud
Computational Patterns of the Cloud
 
Quantifying DevOps Adoption Empirically for Demonstrable ROI
Quantifying DevOps Adoption Empirically for Demonstrable ROIQuantifying DevOps Adoption Empirically for Demonstrable ROI
Quantifying DevOps Adoption Empirically for Demonstrable ROI
 
ASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge EventASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge Event
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practices
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
 
OpenStack Marketing Meeting - Icehouse Release
OpenStack Marketing Meeting - Icehouse ReleaseOpenStack Marketing Meeting - Icehouse Release
OpenStack Marketing Meeting - Icehouse Release
 

Plus de C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 

Plus de C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Dernier

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

The Evolution of Testing Methodology at AWS: From Status Quo to Formal Methods with TLA+

  • 1. The Evolution of Testing Methodology at AWS: From Status Quo To Formal Methods With TLA+ Tim Rath Principal Engineer AWS Database Services Amazon.com 1
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /aws-testing-tla
  • 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  • 5. Services comprise large fleets of servers decomposed into smaller services 3
  • 6. Many of which experience sustained exponential growth 4
  • 7. S3 experienced exponential growth for 6 years to reach 1 trillion objects stored; less than a year later it reached 2 trillion objects [1] 5
  • 8. DynamoDB processes millions of transactions per second in a single AWS region around the clock [2] 6
  • 9. Systems and data are managed through subtle concurrent and distributed algorithms 7
  • 10. “Must Haves” of Every Service 8 Security Durability Scalability Availability
  • 11. General Test Strategy • Developers – Unit Tests – Integration Tests 9 •QA (release testing) •Functional Tests •Performance Tests •Stress Tests •Failure Tests
  • 12. Test Adequacy Criteria • Literature expresses as a form of measurable code coverage [3] • Status Quo Criteria: – Statement coverage • Most common adequacy criteria employed today • Tools readily available to measure and report • Extremely weak criteria 10
  • 13. Test Adequacy Criteria • Literature expresses as a form of measurable code coverage[3] • Perfect Criteria: – Cover every execution path across every possible state for the system • States may be infinite • Test space is exponential with path length 11
  • 14. Test Adequacy Criteria • Real world practice further defines test adequacy criteria through an ad-hoc process: – Brain-storm test scenarios – Brain-storm stress test workloads – Brain-storm failure scenarios 12
  • 15. Better testing of distributed algorithms • We look for strategies that: – Help to understand and protect algorithm invariants – Help expand test coverage – Allow thorough testing as early as possible in the development process 13
  • 16. Development starts with specification 14
  • 17. Development starts with specification 14
  • 18. Development starts with specification 14
  • 19. Development starts with specification 14
  • 20. Testing Starts With Development • Write tests and test support structure while working on the implementation – The spirit of “Test Driven Development” without subscribing to the specific formula • It is unclear how useful adhering to strict TDD concepts really is [4] • The emphasis it puts on test, and test thoroughness is where the value is [5] 15
  • 21. Testing Starts With Development 15
  • 22. Assert system invariants • Asserts enforce the specification in code • Strong assert statements come from clear understanding of the specification 16
  • 25. Generative Testing Formalization around randomized testing with invariant or “property” checking 17
  • 26. Generative Testing 18 Test Case Generator Test Execution Validation Of Properties Against Result Properties Violated? Expected Properties Of Result Report Failure Case Loop No Yes
  • 27. Anecdotes From QuickCheck Paper [6] • Made them think harder about properties; document the specification • Need to think about the input domain to exercise less probable paths 19
  • 30. In Process Clusters 20 Process 1) Run multiple nodes in the same process as unit test 2) Insert arbitrary code into the communication channel 3) Ability to pipeline the inserted bits of code
  • 31. In Process Clusters • Helps write better integration tests – Allows easy construction of intricate test scenarios – Integration testing of distributed components in a unit test environment • Helps write better stress tests – Direct control at the communication layer – Much faster, lower over-head test cycles 21
  • 34. Informal Proofs • Requires deep thinking which promotes even better understanding of the algorithms • Hard to get right – can still lead to a false sense of security 22
  • 36. Formal Methods • Precise specification of algorithms • Tools to validate correctness • We surveyed some of the systems and languages for writing formal specifications, and ended up finding what we were looking for in TLA+ [7] • TLA+ gives us all possible executions over all possible system states for algorithm designs 23
  • 38. TLA+ • How the model works: – Init == <set of initial system states> – Next == <set of possible next actions> • That’s it! 25
  • 42. Real World Examples • DynamoDB – Replication protocols – Membership handling – Quorum Configuration Changes • Other AWS projects [8] – Low level distributed network protocol – Internal distributed lock manager – S3, EC2, EBS system management algorithms 26
  • 45. 28 [2] Hamilton, J. Challenges in Designing at Scale: Formal Methods in Building Robust Distributed Systems. Perspectives Blog. July 2014; http://perspectives.mvdirona.com/2014/07/03/ChallengesInDesigningAtScaleFormalMethodsInBuildingRobustDistributedSystems.aspx [1] Barr, J. Amazon S3-The First Trillion Objects. Amazon Web Services Blog. June 2012; https://aws.amazon.com/blogs/aws/amazon-s3-two-trillion-objects-11-million-requests-second/ [3] Zhu, H., et al. Software Unit Test Coverage and Adequacy. ACM Computing Surveys, Vol. 29, No. 4, December 1997; http://www.cs.toronto.edu/~chechik/courses07/csc410/p366-zhu.pdf [4] Bulajic, A., Sambasivam, S., Stojic, R. Overview of the Test Driven Development Research Projects and Experiments. Proceedings of Informing Science & IT Education Conference (InSITE), 2012; http://proceedings.informingscience.org/InSITE2012/InSITE12p165-187Bulajic0052.pdf [5] Dalke, A. Problems with TDD. Dalke Scientific (dalkescientific.com), December 2009; http://www.dalkescientific.com/writings/diary/archive/2009/12/29/problems_with_tdd.html
  • 46. 29 [6] Claessen, K., Hughes, J. QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs. ACM SIGPLAN Notices Volume 35 Issue 9, Sept. 2000; http://www.eecs.northwestern.edu/~robby/courses/395-495-2009-fall/quick.pdf [7] Newcombe, C., et al. Use of Formal Methods at Amazon Web Services. (pending ACM publication), November 2013; http://research.microsoft.com/en-us/um/people/lamport/tla/amazon.html [8] Newcombe, C. Why Amazon Chose TLA+. Lecture Notes in Computer Science Volume 8477, June 2014; http://link.springer.com/chapter/10.1007%2F978-3-662-43652-3_3
  • 47. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/aws- testing-tla