From his decade of teaching thousands of professional software developers how to be effective with test-driven development, David Bernstein has learned that there are three key ingredients for mastering TDD: understanding what it really is, making code reliably testable, and getting hands-on experience. Let’s look at each of these factors to see what it takes to use TDD effectively on your projects.
The DevOps movement is front and center across enterprises. Companies with mature systems are breaking down siloed IT departments and federating them into product development teams and departments. Testing and its practices are at the heart of these changes. Traditionally, development organizations have been filled with mostly manual testers and a limited number of automation and performance engineers. Adam Auerbach says this has to change. To keep pace with development in the new “you build it, you own it” environment, testing teams and individuals must develop new technical skills and even embrace coding in order to stay relevant and add more value to the business. Based on his experiences at Lincoln Financial and Capital One, Adam explores what the DevOps movement is all about, its core values, and proven patterns for how testing must evolve.
API-based applications have become ubiquitous in the past few years. Yet many of us still really don't know what an API is from the inside out. Moreover, many of us don't know much about how to comprehensively test them! Join Paul Merrill to learn what everyone is doing and talking about, related to APIs: microservices, REST, endpoints, requests, request methods, and responses. Paul demonstrates four free tools you can use to directly interact with a simple API: curl, the browser, Postman, and Java (with Rest Assured). Learn techniques for testing APIs at the service level and how to test APIs faster with greater coverage and quicker test automation. Walk away with an understanding of what JSON is, how APIs use JSON, and how to go about verifying that it is correct. With new knowledge and skills, you’ll do a better testing job and give more valuable feedback to the API designers and developers.
Successful agile testers collaborate with programmers as code is written, isolating problems, troubleshooting defects, and debugging code all along the way to getting the product to done. But modern systems are scaling beyond what traditional teams are able to understand using familiar tools. New appreciation for systems and complexity theory, as well as disciplines and tools around emerging areas such as observability and resilience engineering, are offering solutions that allow teams to actively debug their systems and explore properties and patterns they have not defined in advance. Chris will share the basics of the theory of these new ideas, as well as some tools that support this type of work. He'll show how dynamic analysis can be used to isolate and understand puzzling system behavior.
Teams are sometimes asked to turn a mess of undocumented, poorly structured legacy code into a robust product under impossible deadlines. Test strategies blending automation, exploration, and refactoring can help focus development efforts and converge even the most chaotic projects. But, where do you start? Join Jonathan Solórzano-Hamilton as he shows how automation can help drive products into a state of release readiness. Learn how refactoring, test-driven development, SOLID principles, dependency injection, and mocking frameworks help break down complex development problems into actionable chunks to delivering reliable, self-documented, and high-performing products. Jonathan walks you through the concepts of “Single responsibility”, “Open/closed”, “Liskov substitution”, “Interface Segregation”, and “Dependency Inversion”.
When it comes to achieving sustainable test automation, having an appropriate test automation team structure in place is the most important first step to take. This article has some proven practices for a few different test automation adoption scenarios—led by an automation team or a regression team, and with agile adaptations—that have helped organizations enjoy long-term test automation success.
Migrating an organization to continuous integration requires adoption new processes, tools, and automation. DevOps relies on dramatic culture change to encourage total transparency and collaboration among all project stakeholders.
You may feel you don't have time to write unit tests, but you really don't have time not to. Steve Poling makes the case that writing tests first not only will yield better code, but will help you get that code working right sooner. Here's how using a test-first approach changes your thinking about coding, lets you see mistakes immediately, and helps you create more testable code.
It’s usually easy and inexpensive to set up a continuous integration environment for either an agile or a waterfall project. Perhaps the most obvious benefit of CI is the elimination of the integration phase that existed in traditional waterfall projects, where we typically slip the worst on deadlines. But there are many other benefits to continuous integration that you may not have considered.