SI Secure
SI Secure
IndustriesServicesProductsCompanyLibrary
SI Services


How to Break Software

COURSE OVERVIEW

This two-day workshop introduces you to "How To Break Software," a 17-step methodology to effectively and efficiently test software. You will learn a very applied and non-rigid approach to test software for common bugs. It's a departure from conventional testing in which testers prepare a written test plan and then use it as a script when testing the software. The course teaches you how to plan tests "on the fly" by providing you with insight, experience, and a nose for where bugs are hiding. This workshop is presented in an "interwoven" format where each topic has a hands-on component so that you can explore the testing techniques and software tools using real software. "How to Break Software" has been taught to industry professionals from leading corporations around the globe and at major conferences for software testers. It continues to receive high ratings and numerous "Best Presentation" awards.  

In this course, you will learn:

  • A 17-step methodology and models for effective software testing
  • A plan for on-the-fly testing
  • How to develop an insight to find those hard-to-find bugs
  • How to test Inputs and Outputs from the User Interface
  • How to test Data and Computation from the User Interface
  • How to test the File System Interface
  • How to test the Software/OS Interface
  • How to use Holodeck Lite to inject faults for File System and OS testing


COURSE OUTLINE

I.  Introduction

  • Are you a Hacker or a Tester? Learn the difference
  • Learn about the three characteristics of good testing
  • Where are the bugs? Learn methods to seek the "hidden" ones
  • Overview of Fault models

II.  Understanding the Environment

  • Learn the difference between the four interfaces to your application
  • Why does each environmental interface need to be tested?
  • Gain the knowledge regarding the environment so you can find more bugs

III.  Software Capabilities

  • Understand the four capabilities and how they affect you as a tester
  • Learn how to seek the bugs that destroy the software's capabilities

IV.  Software Testing

  • Learn the two most important factors to ensure great testing

V.  An Overview of the Methodology of How To Break Software

  • What are the four basic capabilities of software?
  • Learn how to determine which attacks apply to your application.
  • Understand the secret to structuring your attacks into related scenarios.
  • Learn how to conduct an attack and recognize success

a.) The User Interface (UI)

  • What are the four areas within the UI that need to be tested?
  • Learn how these areas interact and why they can be difficult to test

      UI Areas 1 & 2 - The Input and Output Domains

  • Understand the two domains and why they are so important to test
  • Learn the six input domain attacks and how to apply them
  • Learn how to test inputs tested individually and in combination
  • Learn the four output domain attacks and how to apply them
  • Learn the secret to concentrating on what incorrect results could occur and then find the inputs to force them

     UI Area 3 -Stored Data

  • Explore how stored data can become corrupted
  • Learn how to successfully apply four stored data attacks

      UI Area 4- Computation

  • Understand what computation is happening inside the program
  • Learn  four testing techniques that "get in the way" of the desired computation

b.) The Kernel Interface

  • Learn how memory can cause applications to fail
  • Learn how to effectively test the kernel through "controlled" testing

c.) The File System Interface

  • Understand how the file system can cause applications to fail
  • Learn and use two important attacks to evaluate the vulnerabilities in the file system interface

d.) The Software Interface

  • Understand how reused software can cause applications to fail
  • Learn and use two important methods to test the software interface
     

back to the top of the page