EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

Effective Methods of Software Testing

Course outline

3 days

Duration

3 days

Overview

Testing is our main means of reducing software risk and typically takes half of software projects, yet still fails to catch many important defects. Traditional testing books and training emphasize using well-known test design techniques, including boundary tests and decision trees/tables, which indeed can help detect more defects; but their value is limited by testing too late and largely reacting to what’s specified in the system design. This interactive course shows how to use these techniques, along with additional little-known but more powerful Proactive Testing™ low-busywork methods that spot and can prevent many of the highest yet ordinarily-overlooked showstopper and other risks earlier when they are easier and cheaper to fix. You’ll be able to deliver better software in less time by more effectively making sure the most important unit/component, integration/assembly, system, and UAT testing is done in limited available time, while also providing the value that overcomes traditional user, manager, and developer resistance. To enhance learning, participants practice each key technique in a series of exercises with various aspects of a real case fact situation.

Participants will learn

  • A structured Proactive Testing model of testing that should be performed throughout the life cycle.
  • Ways testing actually can cut time, effort, and aggravation for users, developers, and managers.
  • Writing industry-accepted test plans, designs, and cases that make testing easier and more reliable.
  • Multiple techniques/checklists to design more thorough tests and discover overlooked conditions.
  • Managing test execution, including estimating/allocating resources and reporting defects and status.
  • Applying risk analysis and reusable test ware to perform more of the important testing in less time.

Audience

This course has been designed for testing professionals and others who manage and perform testing of software products, and also for analysts, designers, and system/project managers who need to know how Proactive Testing™ can cut software development time and effort.

Course Outline

HOW TESTING CAN CUT EFFORT & TIME

Testing for correctness vs. testing for errors

Developer views of testing

Exercise: Your defined testing process

What is a process, why it matters

REAL vs. presumed processes

Why most IT process improvement efforts fail

Exercise: Your REAL testing process

Meaningful process measures, results, causes

Defect injection, detection, ejection metrics

Economics of quality problems in life cycle

Keys to effective testing

CAT-Scan Approach to find more errors

Dynamic, passive and active static testing

Developer vs. independent test group testing

V-model and objectives of each test level

Reactive testing—out of time, but not tests

Proactive Testing Life Cycle model

Proactive user acceptance criteria

Strategy—create fewer errors, catch more

Test activities that save the developer’s time

Applying improvements

TEST PLANNING VALUE NOT BUSYWORK

Why test planning often is resisted

Buzzword boilerplate platitudes paperwork

Test plans as the set of test cases

Six reasons to plan testing

Risk elements, relation to testing

Traditional reactive risk analysis, issues

IEEE Standard for Test Documentation

Overcoming controversial interpretations

Testing structure’s advantages

Enabling manageability, reuse, selectivity

Test plans, designs, cases, procedures

PROACTIVE MASTER TEST PLANNING (BIG RISKS)

Exercise: Anticipating showstoppers

Spotting overlooked large risks

Involving key stakeholders, reviewing plans

Formal and informal risk prioritization

Dynamic identification of design defects

Risk-based way to define test units

Letting testing drive development

Preventing major cause of overruns

Stomach ache metric

Testing highest risks more and earlier, builds

Master Test Plan counterpart to project plan

Strategy approach, use of automated tools

Sequence of tests, sources of data

Entry/exit criteria, anticipating change

Test environment, supporting materials

Estimating testing, avoiding traps

Roles, responsibilities, staffing, training

Schedule, risks and contingencies, sign-offs

Management document, agreements

Maintaining the living document

DETAILED TEST PLANNING

(MEDIUM-SIZED RISKS)

IEEE Standard on Unit Testing

Requirements-based functional testing

Non-functional requirements challenges

Black Box testing strategy

3-level top-down test planning and design

Detailed Test Plans for large risks

Exercise: Functionality matrix

Test designs for medium-sized risks

Use cases, revealing overlooked conditions

Detailed Test Plan technical document

WHITE BOX (STRUCTURAL) TESTING

Structural (white box) degrees of coverage

Flowgraphing logic paths

Applying structural paths to business logic

Exercise: Defining use case test coverage

Flaws of conventional use-case testing

Exercise: Additional use case conditions

INTEGRATION/SYSTEM/SPECIAL TEST PLANNING

Risks, issues integration testing addresses

Graphical technique to simplify integrations

Integration test plans prevent schedule slips

Smoke tests, increasing their value

Special tests

Load, performance, stress testing

Ongoing remote monitoring, reliability

Security, configurations, compatibility

Distribution and installation, localization

Maintainability, support, documentation

Usability, laboratories raising the bar

TEST DESIGN: BOTH VERB AND NOUN (SMALL RISKS)

Why tests need to be designed

Appropriate use of exploratory testing

Exercise: Disciplined brainstorming

Checklists, ad hoc exploratory pros and cons

Data formats, data and process models

Exercise: Applying checklists

Business rules, decision tables and trees

Exercise: Create a decision table

Equivalence classes and boundary values

Exercise: Identify logical equivalence classes

Formal, informal Test Design Specifications

Exercise: Defining reusable test designs

Complex conditions, defect isolation

Test Cases for small risks

Test Case Specifications vs. test data values

Exercise: Writing test cases, script/matrix

MAINTENANCE AND REGRESSION TESTING

Maintenance vs. development, why so harder

Improve attention and knowledge

Regression testing, minefield effect

Exercise: Testing maintenance changes

AUTOMATED TESTING TOOLS

Key test automation issues

Tools for a managed environment

Coverage analysis, execution aids

Test planning, design, administering

Automated test execution tools, issues

Scripting approaches, action words

MEASURING AND MANAGING TESTING

What is a test case survey

Relevance for estimating test-based tasks

Traceability concepts and issues

Estimating non-test-based test project tasks

Defect reports that prompt suitable action

Determining defect age

Status reporting people pay attention to

Projecting when software is good enough

Defect density, reductions

Defect detection/removal percentages

Exercise: Measuring testing effectiveness

Programme scope, delivery arrangements and suitability are confirmed during enquiry.