When does class start/end?
Classes begin promptly at 9:00 am, and typically end at 5:00 pm.
Testing is a critical role in software development that requires special skills and knowledge that are not commonly taught to software developers, business analysts and project managers. This often...Read More
Testing is a critical role in software development that requires special skills and knowledge that are not commonly taught to software developers, business analysts and project managers. This often results in insufficient time and resources being allocated for this important function, and quality suffers—as do the users of the software. Equally important is the need to measure quality quickly and efficiently because limitations in resources and schedules are realities that aren’t going away. We need to do the best we can with what we have and still deliver high, proven-quality software. Fundamentals of Software Testing provides an eye-opening view into this challenging task. It provides a complete picture of the testing process, how it fits into the development life cycle, how to properly scope and prioritize testing activities, and what techniques to use for optimal results. This software testing training begins with a deep-dive into the Universal Testing Method, follows with a close look at testing phases, testing approaches, non-functional testing, and testing for different platforms. As time permits, the course finishes up with some bonus material covering an introduction to automation testing and behavior-driven development.
As the Universal Testing Method (UTM) unfolds during class, real-life case studies and examples are presented to drive home the pertinent concepts. Each one is discussed as it pertains to a step in the UTM and encourages students to think “outside the box” for each step. Students also work together in groups through key steps in the UTM using a real application accessible via the Internet. The same application is used for each exercise with each step building on the previous one. This gives students hands-on experience and new skills that they can begin working with on the job right away. For example, students will:
This software testining training course is an immediate benefit to:
In addition to hands-on experience, students gain insight into a wide variety of testing aspects that go beyond the usual requirements-based functional testing. Both positive and negative testing concepts are discussed, and effective methods for exploratory testing are provided. Testing aspects that are often overlooked are identified and best practices for addressing them are explained. Students are also given excellent references guiding them further in best practices and in selecting effective tools. Students come away from this software testing training course with many ideas that they can apply in their own projects to improve the effectiveness and efficiency of testing efforts. They even learn the best ways to report on the testing activity; no more reporting for reporting’s sake. Practical, fast and effective testing is the focus of this course.
Cases studies, examples, in-class exercises and reviews are used to reinforce the concepts and practices. Students gain experience in modeling the test space, establishing scope and application coverage, identifying “testing oracles”, writing test procedures and more. Students come out of the course with a wealth of new knowledge that they can begin to apply immediately.
Establishes a foundation for the course, provides a workable definition of software quality and shows how testing fits in to the overall quality process.
Testers follow the same basic process that scientists use; we follow the principles of experimentation and measurement. In this course, we map your testing method back to those principles and show how, at each step in your testing, you’re making complex decisions about what to test and how to test it. Utilizing a combination of skills, tactics, practices and tools - this section helps build a base that testers in any context (of any skill level) can apply to solve testing problems.
Different testing activities take place as the software development life cycle progresses and as earlier testing phases complete. This section explains six common phases of software testing. For each phase, the following characteristics are described:
Additionally, the different phases are considered in light of the development methodology used, and an introduction to Agile is given in this section to illustrate how the different test phases correspond with such an iterative, interactive approach. Test phases and contexts discussed:
Different approaches to testing are used to address different testing objectives and different project conditions. Some approaches are more formal, lengthy, traceable, and reproducible. Others are more free-form, quicker, less traceable, and less reproducible. The range of such approaches forms a continuum from which testers select the optimal combination for a given project. The best selection of approaches addresses the needs for both positive and negative testing.
Without question, functional testing is a must-have for software quality. However, there’s more to the picture than that. This section describes nine types of non-functional testing and identifies who typically performs them, what their scope is, what tools are commonly used, and what best practices apply. Additionally, challenges related to each are discussed so the tester is well prepared to design practical, workable, effective non-functional tests.
Software is not just for the desktop—it runs on numerous platforms, and it all needs to be tested. This section takes multiple platforms into consideration and identifies each platform’s unique characteristics, important aspects to understand when preparing related tests, and how to best spend your time with the best types of tests for each given platform.
There have been many organizations that have set out to implement automation testing in their projects, and many of them have failed. This section identifies the different types of tools and practices that fall into the “automation” category, and helps set realistic expectations and goals for automated testing. Learn how to optimize your automation testing investment and plan properly for long-term success. This is a bonus section that is discussed as time permits.
BDD and TDD are related approaches to software development that demonstrate a significant positive impact on software quality. This section provides an introduction to the concepts so testers can be prepared to adopt them together with developers and other project members using iterative development methods. This is a bonus section that is discussed as time permits.