Gens N’ Roses: Appetite for Reduction • Jacob Stanley • YOW! 2017

Sdílet
Vložit
  • čas přidán 29. 03. 2024
  • This presentation was recorded at YOW! 2017. #GOTOcon #YOW
    yowcon.com
    Jacob Stanley - Senior Software Engineer at Lighthouse Financial Technologies
    RESOURCES
    / jacobstanley
    / jacobstanley
    github.com/jacobstanley
    hedgehog.qa
    ABSTRACT
    #QuickCheck is a shockingly effective tool for validating the initial and ongoing correctness of production software. One of QuickCheck’s most compelling features is that when a test failure is found, the failing test case is simplified to a minimal counterexample, through a process called shrinking. This makes it significantly easier to understand why a test has failed.
    The #Haskell version of QuickCheck, and most of its derivatives, tackle shrinking in a type-directed fashion. #Quiviq’s #Erlang version on the other hand, and a few similar tools for other dynamic languages, couple their shrinking capability directly with their test data generators. Now, types are good, right? So surely the Haskell version is better! Why wouldn’t we want to use types to guide our shrinking process?
    In this talk, I will highlight the technical and social problems that we, at Ambiata, experienced with type-directed shrinking. We’ll explore the alternative, integrated shrinking, and we’ll see that even in a statically typed language, integrated shrinking provides enormous benefits for developer productivity. We will see how to implement integrated shrinking, using rose trees, in the context of a strong statically typed language. Finally, we will see how to create a rose tree monad transformer, a tool which will allow us to create effectful test data generators, which still shrink properly!
    From this talk, the audience will learn about the difference between type-directed and integrated shrinking, and how integrated shrinking can provide superior counterexamples, while placing a smaller burden on developers writing tests. [...]
    RECOMMENDED BOOKS
    Rebecca Skinner • Effective Haskell • amzn.to/3SxTpwY
    Kevlin Henney • 97 Things Every Programmer Should Know • amzn.to/2Yahf9U
    Henney & Monson-Haefel • 97 Things Every Software Architect Should Know • amzn.to/3pZuHsQ
    Matthew Skelton & Manuel Pais • Team Topologies • amzn.to/3sVLyLQ
    Michael Jackson • Software Requirements and Specifications • amzn.to/3ql2T14
    Geoffrey West • Scale • amzn.to/3eKMbpc
    Donald G. Reinertsen • The Principles of Product Development Flow • amzn.to/3hJ2Ye2
    / gotocon
    / goto-
    / goto_con
    / gotoconferences
    #FunctionalProgramming #Programming #SoftwareEngineering #JacobStanley #YOWcon
    Looking for a unique learning experience?
    Attend the next GOTO conference near you! Get your ticket at gotopia.tech
    Sign up for updates and specials at gotopia.tech/newsletter
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    czcams.com/users/GotoConf...
  • Věda a technologie

Komentáře • 1