From the course: Software Testing Foundations: Test Preparation

What is test preparation?

- [Instructor] When we talk about testing, it's often enveloped into a single concept. You have a product and it's going to be tested. Sure, this is true but underlying this concept is a complicated and complex process that involves a lot of time and effort to complete. Testing is a multi staged, multifaceted activity that requires a lot of work and more important, a lot of forethought. When people think of preparing for a test project, things like writing your test plan, putting it on your schedule and even making your team aware of the upcoming testing, come to mind. However, those are rudimentary parts of any process. Preparation goes much deeper than this. It involves all the elements of working up to each of those steps and more. Preparation involves all the preliminary steps to getting ready for the test. It's the little bits and pieces that you need to nail down so that you can ready yourself for your project. It's often a lot of different tasks that aren't performed in any kind of logical fashion or serial order. It can be unpredictable, even undefined. These tasks are necessary, but can be unruly. The nature of proper test preparation begins with understanding these challenges, your testing, and the parameters surrounding doing your job effectively. If you are a seasoned test manager, you'll quickly whip through what needs to be ready for your next project. However, if you are new to this, it's going to take some time, some thought and likely some mistakes to be prepared for your next test. When a project is announced, it's likely your mind will race with all the things you need to accomplish to be ready to test. However, that is premature, because you need to start with the product. Your understanding of what it is, how it works and how it's different from prior things you've tested, will give you a good starting place. Understanding your product is at the core of any successful quality test. From here, all paths move forward. Every decision you'll make, every item you might purchase and even every document you create touches on the product in some way. It's important that you understand what it is, how it works and what distinguishes it from other products in the market. This will start your direction for prepping for the project. Your initial thoughts might move to the tools you have. You may think about the hardware you have in your lab, will effectively support this product. Do you need new components, parts swaps, or do some things just need to be tossed out and replaced? Will you have the budget to make these changes? These questions become apparent the more familiar you are with the product. Software will also come to mind, when was your last update? What versions are you using for your test automation software? You may think about small apps, to the enterprise applications you may need to execute the test. Do you have the appropriate number of licenses to accommodate the tests? And again, you will get a good understanding of these things once you understand the product. The message here is to be properly prepared, you need a deep understanding of the product you'll be testing. From that starting point, all directions lead. It will help you define the resources, hardware, and software. It will drive operational mechanisms needed to begin the process of preparing for the test. From this will come your test plan, your cases and suites and your schedule. Your test plan is the critical document where you will begin to note and design your upcoming project. Starting with a template, you'll begin to check boxes of things you know you'll do, and then start to consider other options for testing. The plan provides you a bucket to dump ideas into and formulate strategy. It's the central document for success. From the test plan, you'll begin to find things that you need to accomplish, the goals you define. It's these things that are part of your test preparation, the numerous task jobs and general work necessary to make the plan real and executable. You'll begin to examine every part of your program and see where you sit. You'll work through prior versions of the software you may have tested and see what may be leveraged to accomplish this project. You'll consider what's presently being tested and whether some or all of these tools will accommodate this test. You also consider what's on your schedule and how that might impact this upcoming test. Evaluating the skills of your team is also central to your success. Each phase of testing will require specific expertise to ensure it goes off properly. If you are a one person team or the large test lab with dozens of staff, you still need the skillsets in place to execute the project. You don't want to find yourself testing a product and not understand the data coming from your results. In our example project, the Explore California app connects to a lot of different application programming interfaces or APIs. These different databases of information, host hotel data, flight data, and other important travel related information. Our team understands the fundamental of how to test the software, but we need a little extra help on these APIs. Each has its own specific terminology, and we want our team on this to understand the results we will see during our testing. Our management team in preparation for this project is setting a few of our quality team members to travel industry training. They will spend time learning things like airport codes, hotel brands, terminology, and learning how the tourism industry operates. This information is central for our team to be able to understand the data produced during tests and help them identify when something is a failure or not. Preparation isn't always logical or even straight forward. Some things you'll start working on may need to be accomplished weeks before the end of your test. Other things happen just prior to each phase. Some activities require operating in parallel, and there are even the odd dependencies that prevent one task from being completed before another can happen. The point is, it can't easily create a template for preparing for projects. Just as every new revision of your software changes, so do the steps to prepare for it's test. Understanding this early, frees you from setting expectations and being frustrated when it doesn't work. Just take a fresh yet experienced approach to each new test, and you'll start off on the right note.

Contents