SESSION + Live Q&A
Property-Based Testing In Practice
Testing is a cornerstone of modern software development. It provides us with a safety net against bugs and regressions – without testing, it would be impossible to write large-scale applications.
The traditional approach to testing relies on hard-coded examples: fire some specific inputs into a function, and compare the result to predetermined, expected output. This means somebody has to think of examples to test, but humans are notoriously bad at coming up with random data. So why not let the computer do it for us?
In this talk, you'll learn about property-based testing. You tell the computer what sort of test data to use, and let it fill in the blanks. This allows the computer to try many, many more examples than you could write by hand. It's a great way to find bugs in your software – before they reach your users.
We’ll see this style of testing through the lens of two libraries: Hypothesis and AFL, with examples and testing patterns that you can apply in your own code.
Speaker
Alex Chan
Hypothesis Maintainer & Software Developer @WellcomeTrust
Alex is a software developer at the Wellcome Trust in London, writing search backends for the Trust’s collection of artefacts and library books. He also dabbles in open-source Python, including HTTP/2 networking stacks and testing libraries. Outside work, he can usually be found reading books...
Read moreFind Alex Chan at:
From the same track
SQL Server On Linux: Will It Perform Or Not?
Will SQL Server perform on Linux better than on Windows? Have you been wondering whether the multi-layer architecture the team revealed recently will hurt SQL Server’s performance? Are you still not convinced about the entire endeavor. Come, listen to the talk, learn about SQL Server’s...
Slava Oks
Core Developer Behind Porting SQL Server to Linux @Microsoft
Assuring Crypto Code with Automated Reasoning
Bugs in software are ubiquitous, but the impact of these bugs can vary widely. Sometimes they are largely benign, and at other times they can have catastrophic effects. Bugs in cryptographic software tend to be especially serious. To add to that, cryptographic algorithms are difficult to design...
Aaron Tomb
Research Lead, Software Correctness @Galois
Panel: What's Next for Our Programming Languages?
Types, testability, tooling, paradigms, productivity, managed, native, concurrency, parallelism, performance, asynchrony, integrations, memory management, security, resilience, or, maybe, simple readability? What are the important things crossing the minds of language designers today as they...
Brian Goetz
Java Language Architect @Oracle
Joe Duffy
Pulumi Co-founder & CEO, Previously @Microsoft Director of Engineering for Languages/Compilers
Martin Thompson
High Performance & Low Latency Specialist
Sylvan Clebsch
CTO @Causality
Richard Feldman
Elm Pioneer & Software Engineer @noredink
Power of the Log:LSM & Append Only Data Structures
This talk is about the beauty of sequential access and append only data structures. We'll do this in the context of a little known paper entitled “Log Structured Merge Trees”. LSM describes a surprisingly counterintuitive approach to storing and accessing data in a sequential fashion. It came...
Benjamin Stopford
Author of “Designing Event Driven Systems” & Senior Director @confluentinc
Pony: Co-Designing A Type-System And A Run-Time
Pony is an actor-model, capabilities-secure, native programming language. I will talk about reference capabilities (a type system for data-race freedom influenced by object capabilities and deny guarantee reasoning), the ORCA and MAC protocols for fully concurrent no-stop-the-world garbage...
Sylvan Clebsch
CTO @Causality