Software Testing and Quality Assurance Techniques

Course:  STQA
Duration:  3 Days
Level:  I
Course Summary

The proper testing of software and quality assurance can save an organization time, effort and money. In this course, software professionals, quality assurance specialists and managers gain thorough knowledge of testing and QA approaches that need to integrated into the software development life cycle. Through hands-on exercises, you learn how to build testing methods into your work process to correctly design products that are functional and maintainable.

This workshop promotes a cohesive approach to QA and testing: a "how-to" approach with exercises, examples, and templates that can be applied immediately to quality assurance and testing procedures. It addresses the roles and responsibilities of each participant in the software development process. It outlines responsibilities, expectations, and mechanisms to measure performance and progress.

The workshop emphasizes a practical approach to testing in order to create better products and addresses the ever-changing needs and resources of an organization. Toward that end, we'll Investigate and use the 'V' Model, a process model which describes the graphical arrangement of the individual phases. The 'V' is also a synonym for Verification and Validation.

« Hide The Details
Topics Covered In This Course

Quality Concepts & Principles

In this introduction, we will define what constitutes a systems' quality. We'll discuss the pros and cons of various approaches to systems quality and how they relate to your specifications. We'll delve beyond the broader topic of quality, into more depth of testing specifically we’ll set the ground work by defining common test terminology and describe advantages and limitations of testing. Students will also learn to identify processes that are designed to be measurable and repeatable in their own environment.

  • What is quality and how do we test for it
  • Can we demonstrate good testing techniques
  • Improving Process and repeatability
  • Functional Specification Defects
  • System Design Defects
  • Programming Defects
  • Maintaining the testing process
  • Root Cause Analysis
  • Critical Success Factors needed for Peer Reviews
  • Developing a Quality Review Checklist
  • Traceability, an important component
  • Testing and inspection methods and concepts
  • Reducing costs and minimizing risks
  • Applying black box vs. white box testing
  • The "V" Model

Developing Test Cases

In this section you will learn a variety of techniques needed to design and build a solid test case. You'll learn how to clearly identify and objectively understand what you need to test.

  • Process and methodology, the keystones of test designs
  • Making specifications easier to understand and easier to test
  • Using path analysis for testing
  • Designing Equivalence tests for ease of testing
  • Identifying and testing the critical success factors
  • Input-based testing techniques
  • Functional Analysis testing
  • Writing test cases and scenarios
  • Analyzing input and execution conditions
  • Monitoring expected results
  • Adopting best practices and lessons learned

Test Planning

In a step-by-step approach, you will learn how to plan a testing process that will work in your environment. You'll learn how to anticipate and overcome potential problems before they occur. In addition, you'll know how to make this planning process repeatable and reusable.

  • What is a test plan and a test specification
  • Scheduling and managing test process
  • Can templates be designed to be reusable
  • Why plan?
  • Estimating the impact of the testing effort, financial impact, time and staffing required
  • Developing a fool-proof test plan review checklist
  • Developing test plans, logs and reports
  • Estimating the inspection and testing effort
  • Prioritizing work with limited resources
  • Establishing format, content and structure
  • Managing the test environment
  • Documenting policies and procedures
  • Linking to configuration management
  • Coordinating new version releases

Test Execution and Management

Key to the success of any quality testing includes good management of resources, time and budget dollars. In this section you'll understand the key issues and learn to avoid stumbling blocks that may be inherent in your environment. You'll learn to evaluate results and develop solid follow-up processes.

  • Major issues of test execution (such as)
  • Managing the test environment
  • Effective test documentation
  • Test Results evaluation techniques
  • Test Failures
  • Criteria need for test completion
  • Testing, how much is enough? How much insurance do you need?
  • Conducting the Inspection Process
  • Implementing formal inspections
  • Distinguishing reviews, inspections, walkthroughs and audits
  • Tracing test cases to requirements
  • Simplifying the inspection process
  • Entry
  • Kickoff meeting
  • Individual checking
  • Logging meeting
  • Edit and follow up
  • Exit

Unit & Integration Testing

Students learn how to perform "white box" testing. Usually the first level of testing, understanding this initial stage is crucial to accurate follow-up testing procedures. You'll understand the issues encountered, unit test completion criteria and debugging techniques. Integration and interface testing techniques are examined in detail.

  • Unit and integration test issues
  • Criteria for completion of programming assignments
  • Sources of integration-level errors
  • The building process, what to incorporate, what to avoid
  • Systems interface testing
  • Integration test success factors
  • Performing Unit Testing
  • Essential testing skills
  • Preparing the test data and environment
  • Calculating cyclomatic complexity
  • Determining apposite code coverage
  • Testing loops and conditional statements
  • Advanced testing concepts
  • Applying unit "buddy" testing
  • Creating browser-test checklist
  • Assessing automated testing tools
  • Implementing Integration Testing
  • Identifying integration approach factors
  • Replacing scaffoldings with components
  • Maximizing test scripts reuse
  • Separating databases
  • Selecting the order of integration
    • "Big Bang"
    • Bottom-up
    • Top-down
    • Centralized
    • Layer
    • End-to-end
  • Specialized integration techniques
  • Generic scheme of an embedded system
  • Sequential and continuous integration
  • Object interaction and class inheritance

System & Acceptance Testing

In this section, students examine the elements of the "black box" system and acceptance testing. In detail, you'll understand user involvement, data sources, beta testing and success criteria of black box testing.

  • Types of system & acceptance tests
  • Users' roles in testing
  • Acceptance testing in a contractual situation
  • Beta, pilot and field testing techniques
  • Usability testing
  • Release Management
  • System & Acceptance testing (success factors?)
  • Executing System Testing
  • Developing a system test strategy
  • Defining organizational responsibilities
  • In-house vs. third-party software
  • Applying a risk-driven test strategy
  • Justifying the risks of testing too much
  • Capturing and managing software defects
  • Overcoming complex system challenges
  • Addressing data privacy and security issues
  • Desensitizing test data from production
  • Performing load, volume and stress testing
  • Managing Acceptance Testing
  • Expediting the sign-off process
  • Choosing and training testing participants
  • Classifying bugs and prioritizing fixes
  • Examining software usability
  • Incorporating assistive technologies
  • Creating test cases from use-case scenarios
  • Accepting third-party software
    • Customized
    • Off-the-shelf
    • GOTS

Testing Modifications

Learn how to test modifications in your existing systems, including regression testing as well as maintenance. You'll also examine related processes such as change control and version control.

  • Localized change testing
  • Regression testing
  • Change completion checklist
  • Version Control

Organization, Cooperation and Personnel Issues

In this segment, students learn what cooperation from other departments is necessary to ensure quality of the end product. Developing team work concepts and techniques will be thoroughly investigated.

  • Gaining commitment and support from your team and other departments
  • Techniques for speeding the delivery process
  • Testing as a primary responsibility and profession
  • Managing, minimizing and neutralizing conflicts among the groups
  • Integrated Vs Independent Testing, benefits and limitations

Environmental Testing

The selection of a test methodology will often depend on the environment where it will be used. They can be specific to a development, maintenance or test environment such as reliability testing, configuration testing and software package installation testing. Students will also learn how to test GUI and client/ server systems, object-oriented systems, real-time, embedded systems and Web-based systems.

  • Compatibility testing
  • Performance and stress testing
  • Security & controls testing
  • Error and disaster recovery testing
  • Database testing
  • Software package testing
  • GUI and client/server systems testing
  • Internet-based applications

Automated Testing

Automation changes the test process. In this section, students will understand the benefits, issues and drawbacks associated with automated testing and commercially available automated regression testing tools. You'll review other major types of test support and QA tools together with examples of available products.

  • Functions of automated test tools
  • Assessing your readiness and ability to use automated test tools
  • Load or stress testing tools
  • Version control and defect tracking tools
  • Tool product recommendations

An Introduction to Web-Based Testing

Web applications are increasing at a very rapid rate. Learn what to expect when Web applications are integrated into your system. See what tools are available now.

  • Web-based testing issues
  • Testing implications of Internet technology
  • Creating a framework for testing Web-based applications
  • Developing an Internet applications testing checklist
What You Can Expect

At the conclusion of this workshop participants will be able to:

  • Examine the differences between unit testing and system testing: where they overlap and how they can complement each other.
  • Translate requirements into tests, and demonstrate the value of early testing vs. late testing in a project.
  • Use structured techniques to compute test coverage and determine if it is adequate.
  • Examine the levels of testing required during each stage of system development and maintenance, based upon organization size and structure.
  • Effectively communicate the value of quality assurance to management.
  • Develop strategies to implement better approaches to quality assurance in your organization, and clarify the role of the tester in the organization.
  • Use diagramming techniques to identify testable conditions from specifications.
  • Identify the appropriate metrics to measure progress and performance in your organization.
  • Determine the appropriate quality initiatives that may be implemented during each phase of the system development life cycle.
  • Refine techniques for estimating the testing effort, and set test objectives.
  • Write test plans that assure the desired amount of test coverage.
  • Write test plans, cases, logs and reports
  • Determine the most effective testing and inspection strategy for projects of varying complexity and size
  • Implement advance unit- and integration-testing techniques
  • Assess readiness to acquire test tools and automate the testing process.
  • Create reports to communicate testing progress.
  • Create and review lists of specific field tests.
  • Identify testing success factors for your organization.
  • Establish criteria to start testing and determine when it is completed.
  • Suggest methods to motivate a testing group.
  • Apply general software testing principles and fundamental test processes
  • Investigate and use the 'V' Model, a process model which describes the graphical arrangement of the individual phases. The 'V' is also a synonym for Verification and Validation.
  • Implement test levels and types to various software development models
  • Conduct static techniques using proper roles, responsibilities and tools
  • Perform specification- and structure-based test design techniques
  • Manage tests including planning, estimating, monitoring and controlling
  • Write and assess an incident report
  • Prepare test plans and documentation
  • Simulate an actual exam experience
Who Should Take This Course

This workshop is extremely helpful for software developers, business analysts, systems analysts, project leaders, quality assurance specialists, quality control analysts, system testers, end-users (customers), support analysts, engineers, and acceptance testers. This course is valuable for those who would like to improve the quality and maintainability of their software.

Recommended Prerequisites

A familiarity with software development concepts is assumed.

Training Style

Instructor-led, group-paced, classroom-delivery learning model with structured hands-on activities, group discussions and small case studies.

« Hide The Details
Related Courses
Code Course Title Duration Level
Web Software Testing
3 Days
Software Test Management
3 Days
Test Driven Development (TDD) for C# and .NET
3 Days
Web Software and Security Testing
3 Days
Software Testing/User Acceptance Testing Fundamentals
3 Days
Web Software and Performance Testing
3 Days
Mastering Web Testing
3 Days
Test Driven Development (TDD) using Embedded C/C++
3 Days
Fundamentals of Data Warehouse Testing
3 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]