What is a Test Plan?

TEST PLAN is a detailed document that describes the test strategy, objectives, schedule, estimation and deliverables and resources required for testing. Test Plan helps us determine the effort needed to validate the quality of the application under test. The test plan serves as a blueprint to conduct software testing activities as a defined process which is minutely monitored and controlled by the test manager.

Let’s start with following scenario

In a meeting, you want to discuss the Test Plan with the team members, but they are not interested - .

In such case, what will you do? Select your answer as following figure

 A) I am Manager do everything as I said

B) OK, let's me explain why we need a Test Plan

Importance of Test Plan

Making Test Plan has multiple benefits

  • Help people outside the test team such as developers, business managers, customers understand the details of testing.
  • Test Plan guides our thinking. It is like a rule book, which needs to be followed.
  • Important aspects like test estimation, test scope,Test Strategyare documented in Test Plan, so it can be reviewed by Management Team and re-used for other projects.

How to write a Test Plan

You already know that making a Test Plan is the most important task of Test Management Process. Follow the seven steps below to create a test plan as per IEEE 829

  1. Analyze the product
  2. Design the Test Strategy
  3. Define the Test Objectives
  4. Define Test Criteria
  5. Resource Planning
  6. Plan Test Environment
  7. Schedule & Estimation
  8. Determine Test Deliverables

Step 1) Analyze the product

How can you test a product without any information about it? The answer is Impossible. You must learn a product thoroughly before testing it.

The product under test is Guru99 banking website. You should research clients and the end users to know their needs and expectations from the application

  • Who will use the website?
  • What is it used for?
  • How will it work?
  • What are software/ hardware the product uses?

You can use the following approach to analyze the site

Now let’s apply above knowledge to a real product: Analyze the banking website http://demo.guru99.com/V4.

You should take a look around this website and also review product documentation. Review of product documentation helps you to understand all the features of the website as well as how to use it. If you are unclear on any items, you might interview customer, developer, designer to get more information.

Step 2) Develop Test Strategy

Test Strategy is a critical step in making a Test Plan. A Test Strategy document, is a high-level document, which is usually developed by Test Manager. This document defines:

  • The project’s testing objectives and the means to achieve them
  • Determines testing effort and costs

Back to your project, you need to develop Test Strategy for testing that banking website. You should follow steps below

Step 2.1) Define Scope of Testing

Before the start of any test activity, scope of the testing should be known. You must think hard about it.

  • The components of the system to be tested (hardware, software, middleware, etc.) are defined as "in scope"
  • The components of the system that will not be tested also need to be clearly defined as being "out of scope."

Defining the scope of your testing project is very important for all stakeholders. A precise scope helps you

  • Give everyone a confidence & accurate information of the testing you  are doing
  • All project members will have a clear understanding about what is tested and what is not

How do you determine scope your project?

To determine scope, you must –

  • Precise customer requirement
  • Project Budget
  • Product Specification
  • Skills & talent of your test team

Now should clearly define the "in scope" and "out of scope" of the testing.

  • As the software requirement specs, the project Guru99 Bank only focus on testing all the functions and external interface of website Guru99 Bank (in scope testing)
  • Nonfunctional testing such as stressperformance or logical database currently will not be tested. (out of scope)

Problem Scenario

The customer wants you to test his API. But the project budget does not permit to do so. In such a case what will you do?

Well, in such case you need to convince the customer that Api Testing is extra work and will consume significant resources. Give him data supporting your facts. Tell him if Api Testing is included in-scope the budget will increase by XYZ amount.

The customer agrees and accordingly the new scopes, out of scope items are

Step 2.2) Identify Testing Type

Testing Type is a standard test procedure that gives an expected test outcome.

Each testing type is formulated to identify a specific type of product bugs. But, all Testing Types are aimed at achieving one common goal “Early detection of all the defects before releasing the product to the customer”

The commonly used testing types are described as following figure

Commonly Used Testing Types

There are tons of Testing Types for testing software product. Your team cannot have enough efforts to handle all kind of testing. As Test Manager, you must set priority of the Testing Types

  • Which Testing Types should be focused for web application testing?
  • Which Testing Types should be ignored for saving cost?
Now let's practice with your project. The product you want to test is a banking website.

Which Testing Types should you focus in this case?

Select All that Apply

 A) Unit Testing

B) API Testing

C) Integration Testing

D) System Testing

E) Install/Uninstall Testing

F) Agile testing

Step 2.3) Document Risk & Issues

Risk is future’s uncertain event with a probability of occurrence and a potential for loss. When the risk actually happens, it becomes the ‘issue’.

In the article Risk Analysis and Solution, you have already learned about the ‘Risk’ analysis in detail and identified potential risks in the project.

In the QA Test Plan, you will document those risks

Risk Mitigation
Team member lack the required skills for website testing. Plan training course to skill up your members
The project schedule is too tight; it's hard to complete this project on time Set Test Priority for each of the test activity.  
Test Manager has poor management skill Plan leadership training for manager
A lack of cooperation negatively affects your employees' productivity Encourage each team member in his task, and inspirethem to greater efforts.  
Wrong budget estimate and cost overruns Establish the scope before beginning work, pay a lot of attention to project planning and constantly track and measure the progress

Step 2.4) Create Test Logistics

In Test Logistics, the Test Manager should answer the following questions:

  • Who will test?
  • When will the test occur?

Who will test?

You may not know exact names of the tester who will test, but the type of tester can be defined.

To select the right member for specified task, you have to consider if his skill is qualified for the task or not, also estimate the project budget. Selecting wrong member for the task may cause the project to fail or delay.

Person having the following skills is most ideal for performing software testing:

  • Ability to understand customers point of view
  • Strong desire for quality
  • Attention to detail
  • Good cooperation

In your project, the member who will take in charge for the test execution is the tester. Base on the project budget, you can choose in-source or outsource member as the tester.

When will the test occur?

Test activities must be matched with associated development activities.

You will start to test when you have all required items shown in following figure

Step 3) Define Test Objective

Test Objective is the overall goal and achievement of the test execution. The objective of the testing is finding as many software defects as possible; ensure that the software under test is bug free before release.

To define the test objectives, you should do 2 following steps

  1. List all the software features (functionality, performance, GUI…) which may need to test.
  2. Define the target or the goal of  the test based on  above features

Let’s apply these steps to find the test objective of your Guru99 Bank testing project

You can choose the ‘TOP-DOWN’ method to find the website’s features which may need to test. In this method, you break down the application under test to component and sub-component.

In the previous topic, you have already analyzed the requirement specs and walk through the website, so you can create a Mind-Map to find the website features as following

This figure shows all the features which the Guru99 website may have.

Based on above features, you can define the Test Objective of the project Guru99 as following

  • Check that whether website Guru99 functionality(Account, Deposit…) is working as expected without any error or bugs in real business environment
  • Check that the external interface of the website such as UI is working as expected and & meet the customer need
  • Verify the usability of the website. Are those functionalities convenient for user or not?

Step 4) Define Test Criteria

Test Criteria is a standard or rule on which a test procedure or test judgment can be based. There’re 2 types of test criteria as following

Suspension Criteria

Specify the critical suspension criteria for a test. If the suspension criteria are met during testing, the active test cycle will be suspended until the criteria are resolved.

Example: If your team members report that there are 40% of test cases failed, you should suspend testing until the development team fixes all the failed cases.

Exit Criteria

It specifies the criteria that denote a successful completion of a test phase. The exit criteria are the targeted results of the test and are necessary before proceeding to the next phase of development. Example: 95% of all critical test cases must pass.

Some methods of defining exit criteria are by specifying a targeted run rate and pass rate.

  • Run rate is ratio between number test cases executed/total test cases of test specification. For example, the test specification has total 120 TCs, but the tester only executed 100 TCs, So the run rate is 100/120 = 0.83 (83%)
  • Pass rate is ratio between numbers test cases passed / test cases executed. For example, in above 100 TCs executed, there’re 80 TCs that passed, so the pass rate is 80/100 = 0.8 (80%)

This data can be retrieved in Test Metric documents.

  • Run rate is mandatory to be 100% unless a clear reason is given.
  • Pass rate is dependent on project scope, but achieving high pass rate is a goal.

Example:Your Team has already done the test executions. They report the test result to you, and they want you to confirm the Exit Criteria.

In above case, the Run rate is mandatory is 100%, but the test team only completed 90% of test cases. It means the Run rate is not satisfied, so do NOT confirm the Exit Criteria

Step 5) Resource Planning

Resource plan is a detailed summary of all types of resources required to complete project task. Resource could be human, equipment and materials needed to complete a project

The resource planning is important factor of the test planning because helps in determiningthe number of resources (employee, equipment…) to be used for the project. Therefore, the Test Manager can make the correct schedule & estimation for the project.

This section represents the recommended resources for your project.

Human Resource

The following table represents various members in your project team

No.

Member

Tasks

1.     

Test Manager

Manage the whole project

Define project directions

Acquire appropriate resources

2.     

Tester

Identifying and describing appropriate test techniques/tools/automation architecture

Verify and assess the Test Approach

Execute the tests, Log results, Report the defects.

Tester could be in-sourced or out-sourced members, base on the project budget

For the task which required low skill, I recommend you choose outsourced members to save project cost.

3.     

Developer in Test

Implement the test cases, test program, test suite etc.

4.     

Test Administrator

Builds up and ensuresTest Environmentand assets are managedand maintained

SupportTester to use the test environment for test execution

5.     

SQA members

Take in charge of quality assurance

Check  to confirm whether the testing process is meeting specified requirements

System Resource

For testing, a web application, you should plan the resources as following tables:

No.

Resources

Descriptions

1.     

Server

Install the web application under test

This includes a separate web server, database server, and application server if applicable

2.     

Test tool

The testing tool is to automate the testing, simulate the user operation, generate the test results

There are tons of test tools you can use for this project such as Selenium, QTP…etc.

3.     

Network

You need a Network include LAN and Internet to simulate the real business and user environment

4.     

Computer

The PC which users often use to connect the web server

Step 6) Plan Test Environment

What is the Test Environment

A testing environment is a setup of software and hardware on which the testing team is going to execute test cases. The test environment consists of real business and userenvironment, as well as physical environments, such as server, front end running environment.

How to setup the Test Environment

Back to your project, how do you set up test environment for this banking website?

To finish this task, you need a strong cooperation between Test Team and Development Team

You should ask the developer some questions to understand the web application under test clearly. Here’re some recommended questions. Of course, you can ask the other questions if you need.

  • What is the maximum user connection which this website can handle at the same time?
  • What are hardware/software requirements to install this website?
  • Does the user's computer need any particular setting to browse the website?

Following figure describes the test environment of the banking website www.demo.guru99.com/V4

Step 7) Schedule & Estimation

In the article Test estimation, you already used some techniques to estimate the effort to complete the project. Now you should include that estimation as well as the schedule to the Test Planning

In the Test Estimation phase, suppose you break out the whole project into small tasks and add the estimation for each task as below

Task

Members

Estimate effort

Create the test specification

Test Designer

170 man-hour

Perform Test Execution

Tester, Test Administrator

80 man-hour

Test Report

Tester

10 man-hour

Test Delivery

20 man-hour

Total

280 man-hour

Then you create the schedule to complete these tasks.

Making schedule is a common term in project management. By creating a solid schedule in the Test Planning, the Test Manager can use it as tool for monitoring the project progress, control the cost overruns.

To create the project schedule, the Test Manager needs several types of input as below:

  • Employee and project deadline: The working days, the project deadline, resource availability are the factors which affected to the schedule
  • Project estimation:  Base on the estimation, the Test Manager knows how long it takes to complete the project. So he can make the appropriate project schedule
  • Project Risk : Understanding the risk helps Test Manager add enough extra time to the project schedule to deal with the risks

Let’s practice with an example:

Suppose the boss wants to complete the project Guru99 in one month, you already estimated the effort for each tasks in Test Estimation. You can create the schedule as below

Step 8) Test Deliverables

Test Deliverables is a list of all the documents, tools and other components that has to be developed and maintained in support of the testing effort.

There are different test deliverables at every phase of the software development lifecycle.

Test deliverables are provided before testing phase.

  • Test plans document.
  • Test cases documents
  • Test Design specifications.

Test deliverables are provided during the testing

  • Test Scripts
  • Simulators.
  • Test Data
  • Test Traceability Matrix
  • Error logs and execution logs.

Test deliverables are provided after the testing cycles is over.

    • Test Results/reports
    • Defect Report
    • Installation/ Test procedures guidelines
    • Release notes

【转】How to create a test plan的更多相关文章

  1. Create maintenance backup plan in SQL Server 2008 R2 using the wizard

    You will need to identify how you want your maintenance plan to be setup. In this example the mainte ...

  2. Azure - Create your first function using Visual Studio

    Azure Functions lets you execute your code in a serverless environment without having to first creat ...

  3. 3. Elements of a Test Plan

    https://jmeter.apache.org/usermanual/test_plan.html This section describes the different parts of a ...

  4. 【转】The most comprehensive Data Science learning plan for 2017

    I joined Analytics Vidhya as an intern last summer. I had no clue what was in store for me. I had be ...

  5. 1Z0-050

    QUESTION 13 View the Exhibit.Examine the following command that is executed for the TRANSPORT table ...

  6. TFS Express backup and restore

    When we setup source control server, we should always make a backup and restore plan for it. This ar ...

  7. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)

    Question  131 You are designing multiple SharePoint 2010 features. You have the following requiremen ...

  8. Project Management Process

    Project Management ProcessDescription .............................................................. ...

  9. Introduction to Project Management(II)

    Introduction The purpose of this paper is to gain an understanding of project management and to give ...

随机推荐

  1. Codeforces Round #622 (Div. 2)

    A: 题意: 有ABC的三种菜,现在有a个A,b个B,c个C,问能组成多少种不同菜单 思路: abc都大于等于4,肯定是7种,给abc排个序,从大到小举例删减 #include<bits/std ...

  2. Python 多任务(进程) day1(2)

    进程和线程的简单区别: 功能:进程:能够完成多任务,比如 在一台电脑上能够运行多个QQ一份资源有一个执行的剪头,有多份资源就可以执行多个语句线程:能够完成多任务,比如 在一个QQ中的多个聊天窗口一份资 ...

  3. FileOutputStream,BufferedOutputStream,FileWriter 效率比较

    测试代码: /** * 写文件 * FileOutputStream, BufferedOutputStream, FileWriter * 三个流 效率比较 */ @Test public void ...

  4. 最大m段子段和 Day9 - E - Max Sum Plus Plus HDU - 1024

    Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we ...

  5. uniGUI之文件下载(29)

    1]SendFile 2]SendStream 3]自定义类型文件下载 1]SendFile UniSession.SendFile('新建文本文档.txt' //服务器端 文件名 ,'anew.tx ...

  6. acm数论之旅(转载) -- 逆元

    ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))   数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元) 数论中的倒数是有特别的意义滴 你以为a的倒数在数论中还是1/a吗 ( ...

  7. opencv:图像的算术操作

    前提:输入图像的大小和类型必须一致 越界处理: 大于255,则会减去255 小于0,则等于0 基本计算,加减乘除 #include <opencv2/opencv.hpp> #includ ...

  8. C:函数 注意点

    形参 在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,简称形参,表示它们并不是实际存在的数据,所以,形参里的变量不能赋值. C不像C++里一样可 ...

  9. layui数据表格固定头部和第一列、colspan合并列

    刚看到原型图的时候,纳尼?不是跟我开玩笑吧,小女子资历尚浅,还真没做过像这样的功能,然后就是各种找度娘,可是都没有找到合适的,很多都是行合并,真的是头疼呀!再纠结是用VUE实现还是用layui实现好, ...

  10. linux 自带php切换xampp

    查看系统中有哪些用户: cut -d : -f 1 /etc/passwd 查看当前php: which php 删除系统自带php软链 rm -rf /usr/bin/php 切换到PHP新路径 l ...