Tuesday, 13 February 2018

How to Create a Software Test Plan

What is a Test Plan?
An Software Test Plan or simply a Test Plan is a formal document containing details of the testing activities to be carried out during the software development process. The test plan details the following:
  • Testing Strategy
  • Testing Objectives
  • Testing Criteria
  • Required resources
  • Test estimates
A Test plan is used as a guide in conducting software testing activities as defined in the process.

Having understood what a test plan is, let's now discuss the process of developing a test plan.

A test plan is different from a test suite which is a collection of related test cases.

Step of Creating a Test Plan
First know that the creation of a test plan takes considerable effort and time. Let's now look at the steps involve developing a test plan.
  1. Analyse the Product Being Developed
  2. Design a Test Strategy
  3. Establish the Test Objectives
  4. Define the Test Criteria
  5. Plan the Resource Needs
  6. Plan the Test Environment
  7. Make a Schedule and Estimate Time and Resource Needs
  8. Determine Test Deliverables
This steps take place in a loosely sequencial manner as illustrated in the figure.

1. Analyze the Product
To be able to carry out a complete test, you need to understand the application being developed. You need to find out who the users of the application will be. What will be the purpose of the system? Under what environment will the system work.
You can analyze the product in the following ways:
  • Interveiw the customer and developers
  • Review the product documents
  • Peform walkthrough

2. Design a Test Strategy
 Development of a Test Strategy is normally done by a Test Manager. A test strategy documents the following:
The project testing objectives as well as the means to achieve them
The testing efforts and related costs
To develop an effective strategy, the following steps can be taken:
  • Specify the scope of the testing (and out of scope as well)
  • Identify the Testing Types
  • Document Risks and mitigation plans
  • Define test logisitcs

3. Define the Test Objectives
The test objective is the overall goal of the testing process. The test objectives included making sure that "all" the defects are detected and corrected. All may not be possible but as many defects as possible.
To define the objective, the following steps are taken:
  • List all the features of the system
  • Define goals of each test based on the features

4. Define the Test Criteria
Test criteria is the factors upon which the performance of the software testing process is evaluated.
The two criteria that need to be defined includes Success Criteria and Exit Criteria.
Suspension Criteria: This is the criteria to be met for the testing process to be suspended until the criteria is handle. An example of suspension criteria is failure of 50% of the test cases. This means that if 50% of the test cases fail, the the testing process is suspended until the developers fixes the defects.
Exit Criteria: This is criteria that specifies that the testing exits a particular phase to the next phase.

5. Plan the Resources
Resource plan is a details summary of all the types of resources need to complete the testing tasks. Resources include both human and material resources needed to do the testing activities.

6. Plan the Test Environment
A test environment is a setup of both the software and hardware system required to execute the test suites. Note that test environment also included users(whether real or simulated) that would be used to carry out the tests.
Example of test environment could be:
  • One database server
  • Two web servers
  • An application server
  • Six Client Systems(Desktops)
  • Two Mobile (tablet or mobile phone)
  • Network connection of all the systems
  • Internet Connection
  • Wireless connection to the network

7. Schedule and Estimation
Schedule and Estimation has to do with the breakdown of the whole testing project into chunks of activities.
The schedule details the estimate of the activities and the amout of time each activity would take to complete. Then a total estimate of the overall time is obtained.
This could be acccomplished by creating a Work Breakdown structure using an application such as Primevera or Excel Spreadsheet.

8. Test Deliverables
A deliverable is the finished product to be presented after a process. In the case of Software Testing, the test deliverables is a list of all the documents, tools and other artifacts developed and maitained in the support of the testing process.
The three categories of test deliverable includes:

Deliverables before testing
Test plan documents
Test suites of test cases

Deliverables during testing
Test Scripts
Test Data
Traceability matrix
Execution logs and error logs

Deliverables after testing
Test results and reports
Defect reports
Installation procedures
Release notes

What Next?
Putting it all together, we would now develop a simple test plan for a hypothetical web application for a banking system.

Monday, 12 February 2018

Top 10 Sure Automation Testing Interview Questions and Answers

It is important to note that if you will be sitting for an interview for an Automation Test Engineer, you can expect to be asked questions from the following areas:
  • Sofware Developement Process
  • Manual Testing
  • Some Language Specific questions (sometimes)
  • Communication Skills

Question 1: What is Software Automation Testing?
Hint: Give a very simple and clear explanation in your own words
Answer: Software Automation Testing is the processes involve in automated verification and validation of  software being developed.

Question 2: Mention the types of Testing you know
Hint: Don't give details, just mention them. The more you mention, the better.
Answer: The types of testing includes
  • Unit Test
  • Sanity Test
  • Regression Test
  • Build Deployment Test
  • API test
  • Integration Test
  • System test

Question 3: What is a Test Plan and what are contained in it?
Answer: A Test plan is a formal document that outlines all the neccessary details relating to the testing activities and strategies to be adopted for the Software Development process. The test plans outlines the following:
  • Test Strategy
  • Testing Objectives
  • Resources
  • Test Schedule
  • Estimates
  • Test deliverables

Question 4: Why do you think is a Test Plan neccessary?
Answer: The benefits of a test plan includes the following
  1. It helps in determining the effort required for the testing process
  2. It serves as a guide to streamline the testing activities
  3. It helps people outside the team  to understand what is involved in the testing
  4. It helps to improve the effectiveness of the test process

Quesiton 5: What is a Test Case and what does it contain?
Answer: A test case is a single unit of test that is carried out. A test case contains the following:
  • Title (Test Scenario)
  • Description (Test Case)
  • Test Steps
  • Test Data
  • Expected Results
  • Actual Results 
  • Precondition and Postcondition (optional)

Question 6: What is a Traceability Matrix?
Answer: A traceability matrix is a way to link a business requirement to a corresponding functional requirement ut to the corresponding test cases.

 Question 7: What is a Framework and what are some types of Autmation framework?
 Answer: A test framework is a set of guidlines and rules that are followed in the creation of test cases. It is a combination of tools and practices and standards to be adopted for the test process. Some of the types of automation framework include:
  • Keyword-driven framework
  • Data-driven framework
  • Hybrid test framework
  • Linear automation framework

Question 8: When is it Neccessary to apply Automation Testing?
  • When there are a  large number build verification test cases
  • When there a many repetitive tests to be carried out
  • Whn there are frequesnt reguression testings
  • When there is need to simulate a large number of users who are using the application resources
  • When manual testing is not reliable for critical functionalities

Question 9: What is Build Verification Test (BVT)
Build Verification tests are set of tests carried out on every new build to ensure that the build meets certain testing criteria befor it is released to the test team for further testing.

Question 10:What are the Steps in Creating a Test Plan
  1. Analyze the product being developed
  2. Design a test strategy
  3. Define the Test Objectives
  4. Defing the Test Criteria
  5. Plan Test resources
  6. Plan the test environment
  7. Prepare a Schedule
  8. Prepare an Estimate(Cost)
  9. Determine the Test Deliverables

Bonus Question: What are some Automation Test Tools you know?
Hint: This is very important. This is a test to see if you spend some time learning about automation.
Answer: You must mention Selenim! Than others are:
  • Selenium
  • JMeter
  • QTP
What we presented in this article is just basics. You need to read a little wider, if you are to really get involved in testing activities.
Thank you for reading and remember to check from time to time for updates.