Test automation

Test automation
AUtomation

Friday, July 13, 2007

Software Testing Techniques

Overview

Companies rely on software more than ever to provide and manage information with strategic and operational importance and to provide key decision support. Rising customer expectations for fault-free, requirements-exact software have increased awareness of the importance of software testing as a critical activity.

This seminar provides proven, practical solutions to real-world software testing issues and problems. You will review a complete life cycle approach for systematically performing the testing process. The seminar also gives you the opportunity to apply the testing techniques discussed in practical in-class exercises. You will take home numerous phase-by-phase checklists to ensure your ability to apply methods back on the job. You will also use a sample software test plan exercise to prepare an action plan for implementing key elements of the seminar approach in your own organization.

What You Will Learn

  • Understand the importance of adopting a life cycle approach to software testing
  • Define specific testing tasks in a phase-by-phase examination of the development life cycle, building testing efforts into every phase at critical points
  • Learn to avoid the three common, and costly, misconceptions about software testing efforts
  • Review and discuss "The Ten Proven Principles of Software Testing" and see how each will impact your testing efforts
  • Examine the six factors that affect software testability and define testability metrics for each important factor
  • Learn to define responsibilities in testing - Who is responsible for what at what levels? Review sample ways to organize test teams
  • Define "Black-Box" and "White-Box" test case design
  • Define these testing techniques and know when and how to use each: equivalence class testing, cause-effect graphing, basis path/flowgraph, state and event testing, notation/cyclomating complexity, boundary testing and syntax testing
  • Define the seven key components of effective test documentation
  • Walk through the eight steps of test plan preparation and receive valuable worksheets for each step

Who Should Attend

This seminar is intended for any software professional with an interest in learning how to improve the quality and effectiveness of their organization's existing software testing efforts. It is also valuable for those who are in initial start-up stages of formal testing efforts. The seminar material is not technology-specific or confined to any one operating environment. The testing methodology presented is appropriate for software professionals in all computing situations -- from PC-based to network-based to mainframe-based systems. Appropriate audiences include I/S managers, software testing and quality assurance staff, systems analysts, programmer analysts, business analysts, I/S project managers, I/S audit professionals and other software development project team members.

Agenda

INTRODUCTION TO SOFTWARE TESTING
  • Why testing is important
  • Life cycle approach to testing
  • Testing economics
  • Factors that influence error correction costs
  • Testing and quality assurance
THE LIFE CYCLE APPROACH TO SOFTWARE TESTING
  • Traditional approach to software testing versus a life cycle approach
  • Definition of the life cycle approach
  • Critical elements of life cycle testing and quality assurance
  • Benefits of the life cycle approach: quality, cost, error reduction
  • Typical requirements phase errors and how to avoid them
  • Typical design phase errors and how to avoid them
  • Tester tasks conducted during the requirements phase and during the design phase
  • Typical coding phase errors and how to avoid them
  • Coding through implementation issues and tester tasks
  • Maintenance phase issues, tools and techniques and tester tasks
PRINCIPLES OF SOFTWARE TESTING
  • Software testing misconceptions
  • Testing definitions and a model for software testing
  • White box testing
  • Black box testing
  • Testing levels, objectives, responsibilities and techniques
  • Sample ways to organize independent test teams
  • 10 Principles of software testing
  • Goals for a systematic testing process
  • Limitations of software testing
TEST CASE DESIGN TECHNIQUES -- PART ONE
  • Black box test case design techniques
  • Equivalence class testing
  • Guidelines for identifying equivalence classes
  • Guidelines for writing equivalence class tests
  • Boundary testing
  • Guidelines for writing boundary tests
  • Decision tables as a testing tool
  • General decision table format
  • Sample decision tables
  • Steps in developing decision tables
  • Simplifying and verifying decision tables
  • Decision trees as a testing tool
  • Decision tree structure
  • Steps in building and testing decision trees
  • Sample decision tree
  • Cause-effect graphing and cause-effect graphing symbols
  • Steps in building a cause-effect graph
  • State and Event Testing
  • Guidelines for state and event testing
TEST CASE DESIGN TECHNIQUES -- PART TWO
  • Things developers can do to make software testing easier
  • Things that make software testing easier
  • Software testability indicators
  • Guidelines for designers
  • Design and code metrics
  • Coupling
  • Module coupling concepts
  • Types of module coupling: Content coupling, Common coupling, External coupling, Control coupling, Stamp coupling, Data coupling
  • Comparison of coupling attributes
  • Cohesion
  • Module cohesion concepts
  • Types of module cohesion: Coincidental cohesion, Logical cohesion, Temporal cohesion, Procedural cohesion, Communication cohesion, Informational cohesion, Functional cohesion
  • Comparison of cohesion attributes
  • Control Flow Complexity
  • Module Structure
  • White Box Testing Coverage Criteria
  • Basis Path Testing
  • Representing programs as flowgraphs
  • Flowgraph notation and terminology
  • Calculating cyclomatic complexity
  • Steps in basis path testing method
SOFTWARE TEST PLANNING AND DOCUMENTATION
  • Components of test documentation
  • Sample test plan formats
  • Steps in test plan preparation
  • Determine test plan requirements
  • Determine requirements to test
  • Define test sets
  • Evaluate test traceability
  • Define resource requirements
  • Define testing schedules
  • Prepare and refine test plan
  • Publish and maintain test plan




No comments: