STAREAST 2019 - Test Techniques
Monday, April 29
Critical Thinking for Software Testers
PreviewCritical thinking is the kind of thinking that specifically looks for problems and mistakes. Regular people don't do a lot of it. However, if you want to be a great tester, you need to be a great critical thinker. Critically-thinking testers save projects from dangerous assumptions and ultimately from disasters. The good news is that critical thinking is not just innate intelligence or a talent—it's a learnable and improvable skill you can master. Michael Bolton shares the specific techniques and heuristics of critical thinking and presents realistic testing puzzles that help you...
Fundamentals of Testing Requirements
PreviewTesting and requirements are bound together: You use requirements to understand what to test and what your customer expects from the product under test. Requirements appear in many forms—verbal, diagrams, user stories, or formal specifications. But sometimes once we start testing, we find that requirements are missing, inadequate, wrong, or changing. This is normal, and as testers, part of our role is to help the team and the customer clarify what is required. (Sometimes we even build the requirements to clarify our tests!) Join Isabel Evans to understand how to identify, capture,...
System-Level Test Automation: Ensuring a Good Start
Many organizations invest a lot of effort in test automation at the system level but then have serious problems later on. As a leader, how can you ensure that your new automation efforts will get off to a good start? What can you do to ensure that your automation work provides continuing value? This tutorial covers both “theory” and “practice”. Chris Loder explains the critical issues for getting a good start and his experiences in getting good automation started at a number of companies. The tutorial covers the most important management issues you must address for test automation success...
Agile Testing: Team Tactics that Deliver the Goods
Sold Out!Let’s face it—agile testing is different. Challenges exist in successfully integrating within the teams themselves. Scrummerfall continues to run rampant. The dichotomy of testing vs. quality—and balancing both the team’s and your focus—still exists. Delivering value is both an imperative and a challenge. In this dynamic workshop, join agile coaches Mary Thorn and Bob Galen to explore the tools, techniques, and mindset you must bring to the table to successfully test in agile contexts. Mary and Bob examine risk-based testing, iterative test planning, exploratory testing, agile automation...
Pairwise Testing Explained
NewAs testers we are faced with many challenges especially when designing and executing tests. Most problems reside in the fact that we usually do not know which test case design technique to use and more importantly we usually do not have time to run all of our tests. This workshop will uncover what the challenges are with test design and explains the real problems associated with combinatorial testing. During this tutorial Lloyd Roden looks deeply into the two methods for designing tests using the pairwise design technique; Orthogonal Arrays and pairwise algorithms. Pairwise testing helps...
Getting a Grip on Cognitive Adaptive Testing
Cognitive Adaptive Testing means harnessing the power of analytics and autonomics in support of continuous delivery. The emergence of cognitive, adaptive testing is driven by trends towards omnichannel content delivery, utilization of big data and improved customer experience. Our software/systems need to be extremely responsive to customer sentiment, work across a variety of devices, be resilient in the face of unpredictable failure modes, and process vast amounts of unstructured data. Such scenarios put extreme pressure on IT systems and processes to be not only more responsive but...
Influence Diagrams: A New Way to Understand Testing
PreviewAs testers, we may want to find more bugs, but this may have an unintended consequence for developers: Developers now have more defects to debug, which affects their capacity to deliver new functionality. Isabel Evans has found that influence diagrams provide a simple way to understand and manage the complexities of key interactions among testers, developers, and business stakeholders. In this practical workshop with hands-on activities, Isabel will help you construct and interpret influence diagrams to illustrate typical team and project problems and solutions in testing. With...
From User Story to Test Case
New Sold Out!Agile Software Methods are becoming the preferred way of working in most organisations. However testers are often finding it difficult to know how to adapt to the new way of working. It is often difficult to know how to test user stories and more importantly, how to use the systematic testing techniques in an agile context. Join Lloyd Roden as he discusses a variety of test case design techniques for user stories. Bring your own user stories to this tutorial and Lloyd will explain how these testing techniques can be applied to your own user stories. Lloyd will demonstrate how exploratory...
Clean Coding Practices for Test Automation
NewWe are often reminded by those experienced in writing test automation that code is code. The sentiment being conveyed is that test code should be written with the same care and rigor that production code is written. However, many people who write test code may not have experience writing production code, so it’s not exactly clear what is meant by this statement. And even those who write production code find that there are unique design patterns and code smells that are specific to test code in which they are not aware. Join Angie Jones for this workshop, at which, you will be given a...
Tuesday, April 30
X-Ray Vision For Testers: How to Analyze Things
Preview NewHow do we go about understanding something complex? How do we move from confusion to clarity? What strategies and approaches can we use to identify and reason about things that matter? When we’re dropped into a testing situation, how do we make sense of it all? How can we rapidly achieve a deeper understanding of things that we know little or nothing about? How can we develop skills to make us more powerful testers? The answer to these questions is analysis - the study of things and ideas by examining their elements and structure. In this one-day tutorial, Michael Bolton will lead...
Introduction to Selenium
Knowledge of Selenium, the industry-standard tool for testing web applications, is a much sought after skill in today’s world of test automation. If you want to learn Selenium, then this full-day tutorial provides a great start. Max Saperstone shows you how to build test automation using Selenium. But he doesn’t stop there. He uses his years of experience to show you how to build automation that is clean, robust, and easy to maintain. Max introduces other tools that work with Selenium to help manage the data used to drive your tests, evaluate JavaScript-heavy applications, manage your test...
Web Security Testing: The Basics and More
Web applications are often security critical or serve as front-ends for security critical applications, making web testing for vulnerabilities an essential part of software testing. Unfortunately, most software testers have not been taught how to identify web security issues while testing applications. Join Jeffery Payne as he shares what you need to know to security test web-based applications as part of your overall testing process. Learn about the most common web security vulnerabilities and how they are introduced into web code and exploited by hackers. Explore test techniques for...
Technical Test Automation Challenges: Patterns and Solutions
Sold Out!Many organizations find that test automation does not work as well as they thought it would. In many cases, these failures are due to generic technical reasons, which can be fixed with relative ease. Other solutions that have worked well are patterns, common to automation efforts at any level with whatever tools you are using. Dot Graham and Seretta Gamba focus on often-neglected technical issues—i.e., non-management issues—and the patterns that help solve them. These are not development or code patterns—this is a code-free tutorial. Using a set of patterns developed together, Dot and...
Taking Test Design Techniques Beyond Planning
PreviewUnderstanding when and how to apply test design techniques is fundamental to your testing. Join Isabel Evans to learn some basic techniques that she uses in her own work, and add these vital test design techniques to your personal toolbox of methods. Isabel will demonstrate how to use test design techniques not just to decide what tests to conduct, but also to find potential defects and missing requirements before coding starts, to derive a test basis when requirements are unwritten, to drive the direction for nonscripted approaches, and to provide input to automation. Different...
Agile Test Team Leadership: From Concept to Product
Sold Out!Today, many agile organizations are making a terrible error. They are assuming there is no place for test management and leadership in agile, self-directed team contexts. Mary Thorn and Bob Galen beg to differ with this view and believe a strong need exists for testing leadership in agile organizations—just different from the way we’ve typically approached it. Join Mary and Bob as they explore what excellent test team leadership looks like in agile contexts. Explore the aspects of self-directed teams and the implications to your previous leadership styles. Look under the covers of Scrum...
Test Estimation in the Face of Uncertainty
PreviewAnyone who has ever attempted to estimate software testing effort realizes just how difficult the task can be. The number of factors that can affect the estimate is virtually unlimited. The keys to good estimates are understanding the primary variables, comparing them to known standards, and normalizing the estimates based on their differences. This is easy to say but difficult to accomplish because estimates are frequently required even when we know very little about the project—and what we do know is constantly changing. Throw in a healthy dose of politics and a bit of wishful...
Bash Scripting with Git and GitHub for Open Source Contribution
PreviewSkill with Git is a prerequisite for most software jobs today. This is because the vast majority of software developed is stored in Git-based repositories such as GitHub, GitLab, and BitBucket. GitHub's domination of social coding makes it the new business card to demonstrate your creativity, popularity, capability, and tenacity. “Configuration as code” is a standard DevOps practice so testers must know how to set up and use Git to obtain and update versions of their infrastructures. In this hands-on tutorial, create your own website and learn the GitHub markdown used to format...
Visual Validation for Test Automation
NewFunctional test automation is a wonderful way to frequently and expeditiously execute regression testing. However, the test scripts that we write are limited to the few assertions we’ve considered. Many times, these assertions only cover the tip of the iceberg and account for a small fraction of what a human being would have subconsciously verified. For example, a test automation script can verify that when adding 2 and 2 via a calculator app, the sum that is returned on screen is 4. But does the 4 appear correctly? Is it upside down? Or sideways? Is it the right color? Are there errors...
Continuous Testing Using Containers
NewContainers. Every manager thinks they want them, but few teams have experience in knowing what to DO with them. Used thoughtfully, containerization of your services can transform the way your organization thinks about testing. Gone can be the days of maintaining X different compute environments with Y different configurations. Imagine instead spinning up just the code you need, on the machine type it needs, and only for as long as you need it. In this technical training, Melissa will walk through what containerization means for a legacy code base attempting to practice continuous...
How to Break Software: Robustness Edition
Have you ever worked on a project where you felt testing was thorough and complete—all features were covered and all tests passed—yet in the first week in production the software had serious issues and problems? Join Dawn Haynes to learn how to inject robustness testing into your projects to uncover those issues before release. Robustness—an important and often overlooked area of testing—is the degree to which a system operates correctly in the presence of exceptional inputs or stressful environmental conditions. Dawn shows you how—by expanding basic tests and incorporating specific...
Shift Left to Test User Experience
PreviewIn today’s environment, the user experience (UX) is overwhelmingly important—and is not just about the product. UX describes all facets of a person’s interactions with and reactions to the product, the organization that supplies it, and the environment in which it is experienced. Isabel Evans says that in order to focus our tests appropriately, it is vital that we testers understand our users’ experiences. We need to explore and measure human, business, and societal impacts of products we develop, and how those are underpinned by technical qualities. Unless we “shift left” as...
Wednesday, May 1
Automated Security Scanning for Your Delivery Pipeline
Agile development and DevOps depend on an automated pipeline to build, test, and deploy code quickly. Security is all too often viewed as a manual task that is too difficult to automate and is left for later—not a good decision! Matt Grasberger says that by leveraging automated security scans with open source scanners, you can reduce the risk of security vulnerabilities, get the most out of your pipeline, and increase software quality. Matt will thoroughly explain and demonstrate several ways to implement automated security scans. Discover how to quickly test endpoints against SQL...
Thursday, May 2
Well, That’s Random: Automated Fuzzy Browser Clicking
PreviewRoughly speaking, "fuzzing" is testing without an oracle—essentially, testing without knowing what the outcome should be. We don’t know what should happen, but we have a good idea of things that shouldn’t happen, such as 404 errors and server or application crashes. We generally apply fuzzing to produce these kinds of errors when we’re testing text boxes, but why should text boxes have all the fun? Websites today are interconnected, multiserver applications that include connections to out-of-network servers, making it difficult to enumerate and control all the possible combinations...
Leveraging Kubernetes as a Tester
Kubernetes is one of the fastest growing open source projects in history, and it's taking the DevOps world by storm. With so many resources being poured into this technology, it would be nice if there were some benefits for testing. It may seem that the Kubernetes framework revolves around operations and microservices, but with a little know-how, we can leverage the internet excitement around the project to enhance our own automated testing frameworks. Glenn Buckholz will demonstrate how, with just a little bit of knowledge about Docker and Git, an automated testing team can leverage...
Example Mapping: The New Three Amigos
Example mapping is a collaboration technique used by teams to help refine requirements. Every team should have a set of “ready” criteria that includes some kind of workshop for development team members to establish a shared understanding. In a time-boxed example mapping session, rules will summarize examples or constraints about a user story, and the team will document questions about outcomes or dependencies for future refinement. The end result is requirements written as user behavior, with a shared understanding among all roles on the agile team. Join Thomas Haver to participate in a...
What's That Smell? Tidying Up Our Test Code
We are often reminded by those experienced in writing test automation that code is code. The sentiment being conveyed is that test code should be written with the same care and rigor that production code is written with. However, many people who write test code may not have experience writing production code, so it’s not exactly clear what is meant. And even those who write production code find that there are unique design patterns and code smells that are specific to test code. Join Angie Jones as she presents a smelly test automation code base littered with several bad coding practices...
Visual Regression Testing: A Critical Part of a Mobile Testing Strategy
There are many types of testing that companies need to perform in order to have confidence in their product: security testing, integration testing, system testing, performance testing, and more. Often, mobile developers focus on ensuring that main end-to-end flows of their applications work by relying on frameworks like Appium or Robotium. However, in the mobile domain, visual testing is essential because mobile devices differ drastically in capabilities, display dimensions, and even operating systems. Visual regression testing targets specific areas of visual concepts like layouts,...
API Testing: Going from Manual to Automated
API testing can be challenging—especially for the uninitiated. Ever wonder what makes an API test great? Patrick Poulin will arm you with an understanding of the benefits of automating API testing over doing it manually. Patrick will review the tools landscape and show common errors people make while creating API tests. He'll discuss the steps required to completely automate the entire testing framework for APIs, and show how it is simpler than most people assume. Leave this session with an understanding of how to automate API testing and overcome the fear of the unknown.
Using and Implementing BDD a Day in the Life
PreviewLearn how to discover, prioritize and plan the features that really matter: those that will deliver real business value and that will make a difference to your organization. You will discuss effective user stories that are pitched at the appropriate level, and writing actionable acceptance criteria that will guide developers and provide valuable feedback and documentation on application features and project progress. And you will experience how building a better synergy between BAs, developers and...