
COURSE 3000 | 2-DAY PUBLIC SESSION | 3-DAY VIRTUAL SESSION
Fundamentals of Software Testing
Learn the fundamental techniques and approaches to software testing, better understand what to test, how to test it, and in what contexts certain practices make sense.
Good software testing is a challenging intellectual process. Testers work under constant time pressures to provide quality related information to the project team. Most testers today will work within multiple contexts, from small Agile teams to large regulated projects. Testers need to be able to adapt, find issues and problems quickly, and effectively manage their own work. On top of the cognitive, technical, and social challenges that software testers face they are also under constant pressure to cut costs and collapse timelines.
Many people don't choose testing, they fall into it. Having a varied background is often what gives most testers their biggest strengths, but it can also leave them with knowledge gaps. To be effective, testers need strong analytical skills and abilities, they need to be good at prioritizing and uncovering information, they need to be diligent at managing information, and often - to be effective - they need good social skills. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
Software testing isn't just planning and documentation, it's also about execution, investigation, and influence. Most testers I know balance their time doing activities like: learning about the product, modeling and design, planning and documenting their work, generating data, coding, and collaborating with others. They are worried about outsourcing and where they fit in Agile teams. They are curious about how to get more exposure to automation, performance testing, security testing, and usability testing.
This software testing training class provides an example-driven introduction to the fundamentals of software testing. It's designed to look at both the low-level mechanics of software testing - what testers do when they are at the keyboard as well as the high-level aspects of testing process and context. After taking this course, students will be able to more easily identify and apply various test oracles, will have a number of tools for generating and structuring test ideas, should be comfortable interacting with a variety of applications and recording those interactions, and will have a better understanding of where their testing fits within the overall project context.
What You Get in Two Days – Immediate Value
This intense, two- day interactive software testing training program takes participants from test foundations, understanding and promoting present practices, to addressing the wide variety of testing situations that are common in today’s business climate. These include:
- Testing in Non-Traditional Development Environments (e.g. Iterative, Agile, Prototyping)
- Addressing Advanced Testing Areas (e.g. Performance, Capacity, Security…)
- Managed testing for Maintenance, Purchased Software Solutions, and Outsourced Test Engagements.
20 immediate benefits of attending this software testing training class
- Learn techniques for effective test modeling, leading to more effective test idea generation
- Common measures of testing coverage, with an understanding of when they might be effective tools
- Learn techniques for establishing testing scope and priorities
- Learn how to identify and use test oracles
- Anticipate and identify gaps in common test procedures
- Learn how to develop and use testing heuristics, and how and when to apply quick tests
- Learn about the evolving work products used by testers
- Understand the tradeoffs between different approaches to testing and different methods of interaction
- Learn techniques for communicating test status and progress
- Determine the appropriate format and level of documentation formality
- Understand (and combat) common biases and pathologies that affect testers while testing
- Learn the different phases of testing, where they fit within different lifecycles, and what you can expect during each phase
- Learn how to work effectively in the v-model of software testing
- Learn how to work effectively as part of an Agile team
- Learn how testing package implementations is different than custom software development
- Understand the different challenges between testing for web and mobile, data warehouses and business intelligence, and telephony and physical devices
- Introduction to non-functional testing, with a focus on steps you can take on your project tomorrow
- Understand how to manage the test planning process, and understand how to create common planning documents and strategies
- Take home a list of free and open source testing tools that you can use on your project today
- Find out where to learn more on each topic covered, with recommended books, articles, videos, and classes for more in-depth learning
Learn by Doing Real-World Testing
This software testing training class includes a stimulating set of exercises including in-depth discussions, case studies, group exercises and personal self-assessments. Practical real-life exercises are presented to emphasize and support key concepts while establishing the foundation for individual ownership.
- Use application tours to develop and understanding of different aspects of an application
- Practice techniques for identifying complex variable interactions at boundaries
- Practice different methods of test modeling
- Identifying different areas of coverage for an online data mining tool
- Practice using test oracles to identify possible issues while testing
- Developing and using your own test heuristics
- Review common oversights in team test procedure documentation
- Practice using the "six thinking hats" technique to test software
- Creating test scenarios to facilitate test idea generation
- Build your own strategy and plan, including a detailed WBS and estimates












