Applied Testing for Test Engineers

This two-day hands-on course is designed to give test engineers useful techniques and applications of technologies that enable them to test earlier, with better focus, and more astutely. The techniques and knowledge presented in this class will help test teams get more testing done, and most importantly, get the right testing done at the right time. These techniques also provide the tools for testing on Agile or RUP development projects.

The goal of this class is to develop strategies and skills for analyzing and running unit and integration tests, from the perspective of learning what tests to take on, what tests a developer ought to be running, and some tools for testers to accomplish these tests. Many of the same techniques can be applied to API and interoperability testing. They are particularly useful for testing on newer, faster development projects using eXtreme, Agile, Test-First, Test Driven or UML/Use Case SDLCs. The goal is to demystify early testing and look for ways to maximize your testing effort. Test teams can also use alternative test design methodologies other than the requirements-based testing approach. We will introduce test case design using gray-box and action-based/keyword-driven testing, and other approaches. You will be equipped with new skills that enable you to select and perform the most effective testing practices to expose software errors, improve coverage and reduce execution time.

Topics include:

  • Review of software development life cycle and development phases
  • Differences between developer and QA/tester testing
  • Unit testing solutions for black-box testers
  • Interoperability/integration testing techniques

Course Materials (included):

We provide an extensive handbook that includes copies of the course slides, recent articles, and lists of print and online resources.

You Will Learn:

  • At the conclusion of the course, participants should be able to:

    • How to bridge the gap of testing from a developer’s perspective vs. from a tester’s perspective
    • An introduction to unit testing methods—What your developers do
    • Unit, system, integration, and user acceptance development and testing paradigm—Tasks, tools and methods used during each phases
    • Bugs that unit tests can expose and ones that they will miss
    • How to leverage (as a tester, not a developer) unit tests to find more bugs earlier
    • Effective use of developer tools (including harnesses, stubs, drivers, development platform-specific tools) in black-box testing
    • How to plan testing on Agile Development projects
    • API Testing: What is it? How it is used and how to perform API testing effectively
    • New and sometimes forgotten strategies and test design methods including attack-based testing, model-based testing, and keyword-driven testing
    • More effective test-case design with a gray-box testing approach
    • How to use of log files in testing
    • How to create useful logs to find and analyze application and system failures
    • How to select the most effective practices to find bugs, optimize test planning and execution time

Course Outline:

Software Development Lifecycles

  • Waterfall
  • Spiral
  • Rapid Application Development (RAD)
  • Spiral/Iterative/Incremental
  • Agile, eXtreme, RUP, Test-first, Test Driven

Development Phases: Unit, Integration, System and User

  • Attributes of each type of testing
  • When to execute each type of test

Smarter Testing

  • Tips and techniques for improving your testing
  • White-box vs. Gray-box vs. Black-box testing
  • Developer testing vs. Tester testing

Test Methodology

  • James Whittaker’s ‘How To Break Software’
  • Model-based/State-transition testing
  • Testing use cases
  • Action-based/keyword-based testing

Unit Testing

  • Test harnesses, stubs, mock objects
  • Common strategies for unit testing
  • Common unit testing frameworks

Interoperability/Integration Testing

  • Case study of a web-based application

API Testing

  • Differences between API testing and Unit Testing
  • Reasons and methods for API testing
  • API test case design techniques

Logs

  • Types of information that can be found in logs
  • Benefits of logs to testing
  • Different types of logs
  • Techniques for finding useful information in logs

Prerequisites:

Experience with software testing (completion of "Testing Computer Software" and six months of experience testing applications or one year of software testing experience), either as a tester or a manager. Some familiarity with programming is helpful for understanding the more technical examples. However, non-technical people are also encouraged to enroll.

Download software testing white papers