Agile Dev West 2016 - Testing & QA
Sunday, June 5
Software Tester Certification—Foundation Level (3–Day)
Integrating Test with a DevOps Approach (2–Day)
Monday, June 6
A/B Testing: Improvements through Continuous Experimentation
“The goal of a lean startup is to learn what is valuable to a customer” (Eric Ries, The Lean Startup). Do you know what is valuable to your customers? Can you measure which improvements result in more engagement, more sales, or more long-term use of your product? A/B testing―or experimentation―is one way for software teams to learn more about how customers use software, and which changes drive customer engagement and satisfaction. In this fun and interactive tutorial, Alan Page begins with the basics of experimentation, including everything you need to build a minimal...
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...
Writing Developer Tests for Untested Legacy Code: A Hands-On Workshop
Although we would like to reap the rewards of test-driven development (TDD) on all our projects, there is a lot of challenging legacy code to maintain as well. Given the conundrum of needing good test coverage to safely refactor while at the same time needing to refactor the code to make it more testable, how do we proceed? Although not a panacea, the solution to this dilemma lies in simple, pragmatic techniques for teasing apart the big code hairball into more manageable strands. Rob Myers shows how to start by getting critical areas protected with automated tests, which allows further...
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...
Measurement and Metrics for Test Managers
To be most effective, test managers must develop and use metrics to help direct the testing effort and make informed recommendations about the software’s release readiness and associated risks. Because one important testing activity is to “measure” the quality of the software, test managers must measure the results of both the development and testing processes. Collecting, analyzing, and using metrics are complicated because many developers and testers are concerned that the metrics will be used against them. Join Mike Sowers as he addresses common metrics—measures of product quality,...
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...
Agile Project Failures: Root Causes and Corrective Actions
Agile initiatives always begin with high expectations—accelerate delivery, meet customer needs, and improve software quality. The truth is that many agile projects do not deliver on some or all of these expectations. If you want help to ensure the success of your agile project or to get an agile project back on track, this tutorial is for you. Jeffery Payne discusses the most common causes of agile project failure and how you can avoid these issues—or mitigate their damaging effects. Poor project management, ineffective requirements development, failed communications, software development...
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
Mobile App Testing: Planning, Priorities, Execution, and Reporting
When testers transition from web to mobile testing, they often miss the most important issues. The biggest challenge in mobile testing is knowing the mobile-specific issues—knowing what to test, in which order, and how. Jason Arbon shares his learnings from manual and automated testing of thousands of apps, and tips from working with top app teams. How do you balance functional with performance testing? Which, if any, tests should you automate? Should tests be executed on real devices or emulators? How do you best leverage your on-site, vendors, beta testers, and app store feedback? What...
End-to-End Quality Approach: 14 Levels of Testing
In 2015, the Standard & Poor’s Ratings IT team set out an ambitious objective—to tighten the process and controls around the quality of code deployed to production. Based on internal cost of quality assessments, and supporting agile and waterfall internal engineering processes, distinct testing levels were identified to help push quality left and root out the underlying causes of defects as early as possible. The ‘14 Levels of Testing’ were defined to collaboratively span organizational functions, establish quality expectations, and help track towards the goal of eliminating defects....
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...
Mobile Untethered: Lessons Learned without the Wires
Are you looking for insight into real-life companies and how “going mobile” has changed the roles for developers and testers in their organizations? Jennifer Bonine and Rick Faulise share strategies that have worked—and not worked—for organizations. What do you, as a developer or tester, need to think about when you move into mobile web and mobile apps? It is important to understand the changes required in your skillset and to keep up to date on what organizations are looking for in their resources as they embark on their mobile strategies. Jennifer and Rick explore the state of mobile...
Predictive Test Planning to Improve System Quality
Penny McVay shares how her team approached improving the quality of a large policy-writing application for a global insurance carrier. The application has many pieces and parts, thousands of lines of code are changed monthly, and the business depends on a stable application. To mitigate risk, the team investigated the question of how to predict where testing needed to focus. The regression test suite the organization had built was difficult to maintain, identified few defects, and took hours of effort to run. QA needed not only to optimize the regression suite but also to determine how to...
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...
Borrowing Best-of-Breed Software Delivery Techniques for the Internet of Things
The Internet of Things (IoT) is changing the landscape of the traditional consumer electronics market. More and more electronic devices—from lightbulbs to thermostats to wrist watches—are now capable of being monitored and controlled from anywhere in the world. The increasing market demand for cloud-connected IoT devices is encouraging cohesion within traditionally disparate cloud- and hardware-oriented engineering organizations. While cloud-oriented organizations are well-suited to rapidly or even continuously delivering cloud-based software, hardware-oriented organizations historically...
What Hollywood Can Teach Us about Software Testing
If we observe the world through the lens of software testing, we discover that there are lessons all around us we can apply on the job, and one venue that’s packed with these tidbits is the movie theater. Bernie Berger gives examples of a few unlikely yet credible lessons from the language of some classic Hollywood movies—and how we can apply them as we test. Learn about the primary root cause of many software bugs from Office Space; see how the characters in Saving Private Ryan enacted ideas of exploratory testing; discover how to apply the skills of situational...
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...
The Challenges of Testing a Wearable Banking Application
In many ways, the rapidly evolving mobile banking application industry is challenging for testers. Adding a wearable device brings new challenges, new user behaviors, and untested devices. To ensure a well-tested product, what changes and adaptations do you need to make to your test approach? Carl Johnson shares his hands-on experiences going from testing a mobile banking application to testing a wearable “watch-bank,” an application that makes it possible for customers to see balances and transactions on their smartwatches. Carl presents examples of his learnings—tools that could help you...
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
Zorro Circles: Retrospectives for Excellence
Have you wondered how to progressively harness your agile team’s energy, focus on important goals, and improve outcomes? Woody Zuill said, “If you could adopt only one agile practice, then let it be retrospectives. Everything else will follow.” Retrospectives help individuals and teams adjust to today’s constant change and establish a sustainable pace to deliver complex products. Zorro Circles is a framework for designing retrospectives that employs proven techniques to gather and analyze information required to collectively solve problems. Aakash Srinivasan and Vivek Angiras introduce the...
The Tester's Role in Agile Planning
If testers sit passively through agile planning, important testing activities will be glossed over or missed altogether. Testing late in the sprint becomes a bottleneck, quickly diminishing the advantages of agile development. However, testers can actively advocate for customers’ concerns while helping the team implement robust solutions. Rob Sabourin shows how testers can—and should—contribute to the estimation, task definition, clarification, and scoping work required to implement user stories. Testers apply their elicitation skills to understand what users need, collecting great...
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...
What Everyone on the Team Needs to Know about Test Automation
Test automation should be an activity that involves the entire project team—not just the testing group. Test automation is a technical testing task, and the test team benefits from the assistance of others in the organization. Jim Trentadue outlines the various testing activities with the corresponding contributions and benefits of each team member. Project managers can coordinate the effort and schedule. Business analysts can manage technical test requirements. User acceptance testers can provide proper steps and screenshots for IT personnel. Developers can write code with testability in...
Developing a Rugged DevOps Approach to Cloud Security
Your operational tools deliver continuous monitoring and alerting for applications deployed in the cloud. So why doesn’t your security suite do the same? Although no single path to a secure DevOps approach works for every organization, Tim Prendergast offers a set of key principles and techniques that have distinct advantages for delivering safe and secure products in the cloud. Security can no longer be thought of as a separate step in a product’s launch and must be integrated into the overall processes of continuous development and deployment. Implementing continuous security monitoring...
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...