DevOps West 2016 - Agile Testing
Sunday, June 5
Software Tester Certification—Foundation Level (3–Day)
Fundamentals of Agile Certification—ICAgile (2–Day)
Integrating Test with a DevOps Approach (2–Day)
Monday, June 6
Essential Test-Driven Development: A Hands-On Workshop
Test-driven development (TDD) is a powerful technique for combining software design, unit testing, and coding in a continuous process to increase reliability and produce better code design. Using the TDD approach, developers write programs in very short development cycles. The developer first writes a failing automated test case that defines a new function or improvement, then produces code until the test passes, and finally refactors the new code to acceptable standards. The developer repeats this process many times until the behavior is complete—and fully tested. Rob Myers demonstrates...
Acceptance Test-Driven Development
Defining, understanding, and agreeing on the scope of work to be done is often an area of discomfort for product managers, developers, and quality assurance experts alike. The origin of many items living in our defect tracking systems can be traced to the difficulty of performing these initial activities. Ken Pugh introduces acceptance test-driven development (ATDD), explains why it works, and outlines the different roles team members play in the process. ATDD improves communication among customers, developers, and testers. ATDD has proven to dramatically increase productivity and reduce...
Tuesday, June 7
Continuous Testing to Drive Continuous Integration and Deployment
Continuous integration and continuous testing are two vital agile feedback loops that lead to a continuous deployment environment. Continuous integration processes monitor source code―recompiling after every change, running smaller tests, and notifying the developer if anything goes wrong. Continuous testing (and potentially continuous deployment) monitors integration builds, installs the product in a staging environment, and runs integration tests, again looking for problems. Jared Richardson explains the ideas and the tools needed to implement both continuous integration and continuous...
What DevOps Means for Testers: Tips for Getting Testers Involved
DevOps is more than a buzzword or passing fad. It's a radically new approach to rapidly delivering high-quality software applications. However, many organizations don’t fully grasp the magnitude of this change or what it means for everyone involved in the software development lifecycle. Jeffery Payne says that DevOps—when done right—drives higher quality and efficiency into software development, software testing, and application management activities. It empowers teams to remove impediments to quality and productivity throughout the entire software lifecycle. However, when DevOps is done...
Getting Things Done: What Testers Do in Agile
Avoiding siloed development is a tricky business. It’s easy for agile teams to fall into the rut in which testers only do traditional testing activities and programmers strictly do their time-worn coding activities. Rob Sabourin shares a number of examples of how testing skills can be applied to a wide variety of activities in an agile project. Testers are among the most skilled team members in story grooming, elicitation, and exploration. Risk analysis in self-organized agile teams empowers testers to drive design decisions. A tester’s affinity analysis skills help clear the way for teams...
Plan, Architect, and Implement Test Automation within the Lifecycle
In test automation, we must often use several tools that have been developed or acquired over time with little consideration of an overall plan or architecture, and without considering the need for integration. As a result, productivity suffers and frustrations increase. Join Mike Sowers as he shares experiences from multiple organizations in creating an integrated test automation plan and developing a test automation architecture. Mike discusses both the good (engaging the technical architecture team) and the bad (too much isolation between test automators and test designers) on his test...
Advanced Test Automation in Agile Development
Agile teams are charged with delivering potentially shippable software at the end of each iteration. In fact, some high-performing agile teams with advanced automation can ship working software every day. They achieve regression confidence with extensive automated test suites and other advanced practices. Rob Sabourin shares automation techniques to improve story and feature testing, exploratory testing, and regression testing. Explore ways that test-driven development (TDD) techniques, precise test and tool selection, appropriate automation design, and team collaboration can be combined...
Mob Programming Workshop
All the brilliant people working on the same thing, at the same time, in the same place, and on the same computer. Mob Programming is a cost-effective, collaborative, and fun way to get work done—together. It's a whole-team approach to development, where coding, designing, testing, and working with the “customer”—partner, product owner, user—are all done as a team. In this workshop, led by Mob Programming pioneer Woody Zuill, experience Mob Programming hands-on while learning the mechanics of how...
Wednesday, June 8
DevOps Is More than Just Dev and Ops: Don’t Forget Testing
What exactly is DevOps? It’s not just Dev, and it’s not just Ops. In fact, successful DevOps implementations meld development and operations activities with agile practices and a strong dose of automated testing. Organizations cannot afford to wait for a manual testing process to do the job. Developers need fast feedback loops, and managers need agile organizations. Join Jonah Stiennon as he discusses the importance of agile and testing in DevOps. Jonah introduces practical ways engineering departments can shorten the iteration cycle between Dev and Test. Automating the repetitive parts of...
Continuous Integration as a Development Team’s Way of Life
Continuous integration (CI) is a buzzword in software development today. We know it means “run lots of builds,” but having a continuous integration pipeline opens up opportunities well beyond making sure your team's code compiles. What if this pipeline could improve everything from the quality of code reviews to how often and safely you deploy to production and how you monitor your product in the wild? What if CI could provide insights into how automated tests are performing and how to improve them? Melissa Benua describes how to set up a basic CI infrastructure and then transform it into...
Five Critical Elements for Successful Agile Data Management
In the past few years we’ve used cloud technologies to improve pre-production flexibility and solve many problems that previously prevented us from delivering high quality apps to production. However, one problem consistently prevents full test coverage prior to deployment—the lack of comprehensive test data. As we try to get faster and leaner in our agile development processes, the problem with data becomes even more difficult to solve. Robert Kelman describes the evolution of DIRECTV’s (now AT&T) Agile Test Data Management program. He explains the five critical elements—centralized...
Identify and Exploit Behavioral Boundaries for Unit Testing
Whether writing unit tests after coding or using test-driven development (TDD), developers often ask themselves—How much testing is enough? Or too much? Or not enough? Rob Myers helps answer these questions using the techniques from his experience doing and teaching TDD. Look for those tests that cause us to write code, look for unique behaviors and code-paths, and strive to narrow in the boundary conditions. This gives us pinpoint accuracy when something breaks. Rob demonstrates what this approach looks like using graphs, tests, and code. To answer “What needs to be tested?” Rob...
Thursday, June 9
White Box Testing: It’s Not Just for Developers Any More
Software development has improved dramatically over the past several years due in part to techniques, approaches, and development environments that take advantage of the power of modern computing machines. Software testing techniques have, by comparison, lagged. As projects and teams become more agile, the lines between the roles blur. Testers cannot remain uninformed about the underlying code and technologies that power the products they test. Join Robert Vanderwall as he shows how to take a deeper look at the code, using test-driven development (TDD) tests as a roadmap. Robert outlines...
How Far Can You Go with Agile for Embedded Software?
With the proliferation of IoT and consumer demand for smarter homes, appliances, automobiles, and wearables, many traditional product-based manufacturing companies are now becoming embedded software companies. This means that the design and manufacturing of physical products is becoming more complex since it now requires the integration of the physical components of the product, the firmware, and the myriad software components these products contain. Historically, embedded software developers have lagged behind IT in the adoption of agile development practices, largely due to the...
Testing in a Super-Agile Software Development Environment
Channel 4 broadcasting company in Finland provides live streams of sporting events on the Internet (Ruutu.fi). The software development is done by agile principles but even more straightforward and quicker than normal agile projects. Tomi Kaleva says they have changed the entire production environment and renewed all the mobile apps in the past year. As a result, the normal agile development speed wasn’t enough. The fast software development cycle makes software testing challenging as there isn’t sufficient time for test...
Move Your Selenium Testing to the Cloud
What is the most challenging aspect of running automation tests? Anshul Sharma believes it is covering multiple browsers and cross-device testing combined with faster execution of tests. One way to do this is parallel execution of tests concurrently over a Selenium Grid, but that comes with a substantial burden of managing and maintaining the platforms and browsers. Now that cloud-computing resources are available and affordable, an alternative is leveraging the cloud. Moving to the cloud makes tests easier and faster to run for several reasons. First, no installing/upgrading the browser...
Where Is Test in DevOps?
As organizations try to meet faster delivery schedules and improve collaboration between development and operations, DevOps has become a hot topic. So, where does testing fit into a DevOps strategy? By narrowly focusing on just Dev and Ops, the term DevOps itself ends up missing testing. Nikhil Kaul gives an overview of recent trends in DevOps, specifically changes that have taken place in the testing industry in the past year. Nikhil explores why testing is becoming more important than ever before. With Apple, Google, and Microsoft making it easier for Dev and Ops to build and deploy...