Fundamentals of Software Testing

Document Sample
Fundamentals of Software Testing Powered By Docstoc
					Fundamentals of Software Testing

                                                 GWE Course #3000-agile-fundamentals (release __/__)

                                                                                             2 Days

                                                                       Published by GetWebEdge, Inc.

                                                             Available at: http://www.getwebedge.net




Table of Contents


Introduction

Prerequisites

Course Description

Course Summary




Introduction


This 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 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.

You will practice, explore and challenge each topic establishing a base of ownership. In-
class exercises and activities will powerfully reinforce what you learn, giving you the
practice needed to successfully integrate your new skills immediately.
Back to top




Prerequisites


     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.




Back to top




Course Description


        1.Learn techniques for effective test modeling, leading to more effective test idea
            generation
        2.Common measures of testing coverage, with an understanding of when they might
            be effective tools
        3.Learn techniques for establishing testing scope and priorities
        4.Learn how to identify and use test oracles
        5.Anticipate and identify gaps in common test procedures
        6.Learn how to develop and use testing heuristics, and how and when to apply
            quick tests
        7.Learn about the evolving work products used by testers
        8.Understand the tradeoffs between different approaches to testing and different
            methods of interaction
        9.Learn techniques for communicating test status and progress
        10. Determine the appropriate format and level of documentation formality
        11. Understand (and combat) common biases and pathologies that affect testers
            while testing
        12. Learn the different phases of testing, where they fit within different lifecycles,
            and what you can expect during each phase
        13. Learn how to work effectively in the v-model of software testing
        14. Learn how to work effectively as part of an Agile team
        15. Learn how testing package implementations is different than custom software
            development
        16. Understand the different challenges between testing for web and mobile, data
            warehouses and business intelligence, and telephony and physical devices
        17. Introduction to non-functional testing, with a focus on steps you can take on
            your project tomorrow
        18. Understand how to manage the test planning process, and understand how to
            create common planning documents and strategies
        19. Take home a list of free and open source testing tools that you can use on your
            project today
        20. Find out where to learn more on each topic covered, with recommended books,
            articles, videos, and classes for more in-depth learning




Back to top




Course Summary


Learn by Doing Real-World Testing
This 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



Back to top

				
DOCUMENT INFO