Approval Tests in Action: A LEGO Exercise and an Experience Report

schedule Oct 15th 04:15 - 05:00 PM place Ballroom C people 8 Interested

Are you daunted by the prospect of introducing automated testing to a code base without it? Does your code base have automated unit tests, but no one has confidence about what the tests say about code? Consider approval tests to confront these challenges. Approval tests simplify assessing the behavior of a system by taking a snapshot of the results, and confirming that they have not changed. They are useful for both bootstrapping testing automation and for creating more expressive tests. In this session participants will join in hands on exercises using LEGO bricks that illustrate the concept of approval tests, and will share the results of a case study where the approach was used to improve software testing.

 
2 favorite thumb_down thumb_up 6 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/Structure of the Workshop

The session will begin with a two-step exercise using LEGO bricks. In the first round, the participants will have a Lego model, and they will create tests of other Lego bricks to assess the model. Following a short discussion, the participants will then build a new set of tests based on a snapshot to the original model.

The sessions will then transition to a presentation when we will describe the Approval tests as a software testing framework, and how the Lego exercise is metaphor for this framework. The presentation will include examples of test code using the Approval test framework, and the approach differs from other automated testing approaches.

Lastly, we will describe how Approval tests were used on a project to improve the testing automation of it's software.

Learning Outcome

Participants will have an understanding about what approval tests are, situations where they can be applied, and a starting point for applying them to their own projects.

Target Audience

Practitioners who (1) have code bases without automated test and want an approach to get started (2) have obtuse unit tests and would like an approach to make them more readable, or (3) are generally interested in automated testing approaches.

Prerequisites for Attendees

Participants should have familiarity with the concepts of automated testing, including automated unit testing.

schedule Submitted 1 year ago

Public Feedback

comment Suggest improvements to the Speaker
  • George Dinwiddie
    By George Dinwiddie  ~  1 year ago
    reply Reply

    This seems more about a lego simulation than approval tests. What am I missing?

    • David W Kane
      By David W Kane  ~  1 year ago
      reply Reply

      The Lego simulation is just one part of the session.  The first round of the Lego exercise is to provide a metaphor for some problems that surface in test code, and the second round illustrates how a different approach to expressing tests could address those problems.  This approach in the second round is what ties the metaphor to the approval test approach. 

      The presentation portions of the session, build on the points made in the exercise to describe the approval test frameworks themselves, and then my experience in applying approval tests.

      I expect the exercise to be fairly quick, 15 to 20 minutes, including the associated discussion.  

      • George Dinwiddie
        By George Dinwiddie  ~  11 months ago
        reply Reply

        Your public description says a little bit about approval tests, but doesn't relate it to the situations that a potential attendee might be facing. If they're not already interested in approval testing, how can they know that this is a session they should attend?

        Will you be demonstrating approval tests, or just talking about them?

        • David W Kane
          By David W Kane  ~  11 months ago
          reply Reply

          George, thank you for your feedback.  To your first question, I have updated the target audience to answer that.

          To your second question, I was not planning to run the software as a demonstration.  When I am in the audience in a conference setting, I tend to not like talks where I have to follow along in real time.  Instead my plan to look at interesting code examples.  With my planned approach, I hope to highlight what is interesting and different about Approval Tests.  I have updated the  Outline/structure of the Session section to include that detail.

          • George Dinwiddie
            By George Dinwiddie  ~  11 months ago
            reply Reply

            I would suggest hooking people in the description, as I think more read that than the "target audience." Something like

            Does your code base lack sufficient automated testing and you want a jump start for code coverage? Try approval tests. Do your tests fail to describe what they're testing? Try approval tests.

             

            • David W Kane
              By David W Kane  ~  11 months ago
              reply Reply

              Thanks again for the feedback.  I have further revised the overview with my take on your suggestion.


  • Liked Gene Gotimer
    keyboard_arrow_down

    Gene Gotimer - Building the Pipeline of My Dreams

    Gene Gotimer
    Gene Gotimer
    Technical Manager
    Coveros, Inc.
    schedule 1 year ago
    Sold Out!
    45 Mins
    Case Study
    Beginner

    I often suggest to teams that they should be using all sorts of tools in their pipelines- from simple static analysis checks and automated builds to security scans and performance testing. I've done presentations and talks at conferences. I've lobbied to clients. I've commiserated with my colleagues. But I've never put together my dream pipeline in one of my own projects.

    There are always reasons that some tests and tools get left out- our policies won't allow them, they will take too long to get approved, we don't have time, we have bigger problems to deal with, it just isn't what the client is looking for right now. And I usually think, if only I were in charge, I'd make sure we were using those...

    In late 2017 I took over maintenance on an open-source project. Now I have no restrictions. The sky's the limit. No one is around to tell me what I can't do. So why don't I have my dream pipeline in place yet?

    I'll talk about the trade-offs and compromises I made when building out the pipeline. Why I decided to focus on some tools and tests but skipped others, and what I need to do or change to make this delivery process the pipeline I've always dreamed about, now that I have no one else to blame.

  • 45 Mins
    Tutorial
    Intermediate

    Slides: https://www.slideshare.net/Camille_Bell/kata-your-way-to-sw-craftsmanship

    Maybe you are a developer and want yourself and your team to become Software Craftsmen.

    Or perhaps you've a leader and heard about the greater quality and productivity of high functioning agile development teams.

    Or you could be in dev ops and know that you can't implement a CD Pipeline without a solid suite of automated tests. But your developers don't practice Test Driven Development, Refactoring or other agile technical practices, and you don't know how to guide them.

    Whatever your role, you would like your team to become software craftsmen, proficient in agile technical practices.

    Join Camille as she shows you how to Kata Your Way to Software Craftsmanship.

  • Liked Jochy Reyes
    keyboard_arrow_down

    Jochy Reyes - Cognitive Biases in Agile Teams

    Jochy Reyes
    Jochy Reyes
    Agile Coach
    ANZ
    schedule 11 months ago
    Sold Out!
    45 Mins
    Talk
    Beginner
    Picture a tiger in front of you at this very minute. A ferocious feline looking for its next prey. Chances are you'd bolt for the door without even thinking. Your body would flip its flight or fight response switch and in this case run for safety. This is called heuristics, mental shortcuts that help us make decisions without spending a lot of time.
    Now, ferocious felines in offices are most likely unlikely (and potentially questionable --someone call PETA!), however high pressure situations are not uncommon in Agile Teams. Situations that at times unconsciously flips our flight or fight switch in our brains and lead us to jump into conclusions about our work, our colleagues and lead us to make poor decisions. This the brain suffering from cognitive biases.
    This talk provides an introduction to cognitive biases and how they sneakily find their way in our teams and affect our team dynamics and productivity.
    I'll cover 3 aspects of teams that could be impacted by these cognitive biases - team dynamics, communication and productivity.
    I'll discuss the symptoms of these biases and show you how to proactively control and reduce its effects for more effective teams.
  • Liked Gene Gotimer
    keyboard_arrow_down

    Gene Gotimer - Build a Better, Faster Pipeline for Software Delivery

    Gene Gotimer
    Gene Gotimer
    Technical Manager
    Coveros, Inc.
    schedule 1 year ago
    Sold Out!
    45 Mins
    Workshop
    Beginner

    The software delivery pipeline is the process of taking features from developers and getting them delivered to customers. The earliest tests should be the quickest and easiest to run, giving developers the fastest feedback. Successive rounds of testing should increase confidence that the code is a viable candidate for production and that more expensive tests—be it time, effort, cost—are justified. Manual testing should be performed toward the end of the pipeline, leaving computers to do as much work as possible before people get involved. Although it is tempting to arrange the delivery pipeline in phases (e.g., functional tests, then acceptance tests, then load and performance tests, then security tests), this can lead to problems progressing down the pipeline.

    In this interactive workshop, we will discuss how to arrange your pipeline, automated or not, and so each round of tests provides just enough testing to give you confidence that the next set of tests is worth the investment. We'll explore how to get the right types of testing into your pipeline at the right points so that you can determine which builds are viable candidates for production.

  • Liked M. Scott Ford
    keyboard_arrow_down

    M. Scott Ford - Important Metrics for Measuring Code Health

    45 Mins
    Talk
    Beginner

    There are a bunch of different ways to measure code quality. What’re the most important ones for your team to focus on? No matter what language(s) your team is working with or your role on the team, you’ll walk away from this talk with a clear guide of what to pay attention to.

  • Liked David Bujard
    keyboard_arrow_down

    David Bujard / Chris Meaker / David Fogel - Impossible deadlines? Fail safely, learn rapidly with Spaceteam

    45 Mins
    Workshop
    Beginner

    Communication chaos under looming deadlines - sound familiar? We'll level up our teamwork, practice rapid learning, and identify ways to calm the chaos and focus on getting to done, all using Spaceteam, a chaotic and collaborative card game.

    You'll work with your teammates to repair a failing spaceship before it falls into a black hole. in order to escape, you'll communicate problems, request help, assist colleagues and respond to constant change -- all in five minutes!

    You'll learn from your failures, improve as a team, and gain insights into what helps organizations and teams collaborate effectively and achieve flow.

  • Liked Beth Hatter
    keyboard_arrow_down

    Beth Hatter - Beyond Servant Leadership: The Evolution to Empathetic Leadership

    45 Mins
    Workshop
    Beginner

    The concept of servant leadership is nothing new in the agile community. Servant leadership shifts the focus of leaders from managing teams to empowering and supporting teams. But as the world continues to evolve, are we really forming the connections we need to have truly high performing teams? Empathy forms the foundation of connections between individuals, teams, and organizations, and is the key to successful in supporting the needs of our customers and society. To have truly high performing teams, we need to move beyond servant leadership to a more empathetic leadership mindset. So how do we recognize, nurture, and grow empathy and grow from Servant Leadership to Empathetic Leadership?

    This workshop will guide participants through several topics. We'll explore how empathy changes our thinking, how empathy and agile success relate, and how to build empathy within ourselves, our teams, and our organizations.

  • Liked David Bujard
    keyboard_arrow_down

    David Bujard / David Fogel - Nine levels of Agile Hell... and how to get out!

    45 Mins
    Talk
    Intermediate

    Our Agile transformations can feel like Sisyphean efforts – but do not abandon hope! In this talk we will discuss nine circles of Agile Hell. Each hell is an example of a common problem programs encounter.

    We'll ask the audience to prioritize their pain points, and focus on the six Agile hells closest to their experience. We will discuss real examples for “escaping” out of each Agile Hell - from Agile Coaches that the Dave(s) know.

    By attending this event, Agilists will expand their toolbox of techniques to help their organizations.

  • Liked David Fogel
    keyboard_arrow_down

    David Fogel / David Bujard - Dude, where’s my transformation?? (9 months into a 6 month adoption)

    45 Mins
    Case Study
    Beginner

    Specific organizational patterns are the villains of agile adoption, setting unreasonable expectations and sabotaging progress. We’ll explore these villains, and give real examples how federal organizations overcame them.

    Participants will see the power of metaphor first embraced by Extreme Programming: a system metaphor or (for transformations) a cultural metaphor to name and avoid common anti-patterns in Agile adoptions.

    Leaders in government programs or large organizations will recognize common challenges patterns: setting schedules by fiat, limiting the availability of product owners, balancing responding to emergencies with focusing on consistent prioritizes, just to name a few. Coaches and champions supporting Agile adoptions will be equipped with counter-examples to avoid these challenges.