Test Planning and Control

Test Planning is the most important phase of Software testing life cycle.
Once the project and product requirements have been done, test planning starts and all the objectives, effort and cost estimates for the entire project would be determined in this phase.

Major tasks in test planning should include:

--Designing test strategy, including:
test scope--Which components or features would be tested(in scope) and which would be not(out of scope).
test type--Set priority of test types for the project based on the context, such as integration test, system test, user acceptance test, etc.
risks & issues--List all potential risks&issues and the corresponding mitigations.
test logistic--Who will test? When will the test occur?

--Defining test objectives
The overall objective of the testing is to find as many software defects as possible and ensure the software is bug free before release.
To define the test objectives, do the following 2 steps:
1. List all features(functionality, performance, GUI, etc.)that may need to be tested.
2. Define the target or goal of the test based on the above features.

--Defining test criteria
Entry criteria set to which test should begin or suspend(e.g. suspend at 40% fail rate of test cases);
Exit criteria set to which test should be a successful completion(e.g. exit at 90% run rate of test cases and 95% pass rate).

--Planning resources
Human resources: test manager/leader/analyst
System resources: server/test tools/network/computers

--Planning test environment
Real business and user environment, physical environment.

--Schedule & estimation
Tasks, Members, Estimate efforts, Start time, End time, etc.

--Determining test deliverables
Before testing: test plan, cases, specification;
During testing: test data, traceability matrix, logs
After testing: test report, defect report, release note.

Test Control:
--ongoing activity of comparing actual progress against the plan
--track, report the status, take actions necessary to meet the mission of the project
--the testing activities should be monitored throughout the project
--test plan takes into account the feedback from monitoring and control activities




Day21: Try and speed up your automation checks execution time and share what you tried


Automation execution doesn't matter if you only run one or two cases, but when it comes to lots of cases and frequent runs, execution time is a key point to consider!

I've tried two ways to speed up my automation checks.

1, Reduce the wait time as possible as it can. So I usually use custom wait rather than implicit or explicit wait.

2, Thinking of the logic in a test procedure, when automating manual test cases, try to optimize test cases related to one test condition by combining them logically in one automated case.

Day20: Find a visual way of representing your automated checks


I've been using ExtentReports to represent my automated checks when I do automation testing with selenium c# & Java. Test status and detail information can be displayed on the report with a chart.

Samples can be found on ExtentReports website. Here is it:  http://extentreports.com

Day18: Useful videos about automation


There're many videos about automation in Pluralsight website: https://www.pluralsight.com/
some course like:
Automated Web Testing with Selenium
https://www.pluralsight.com/courses/selenium

Automated Web Testing with Selenium and WebDriver Using Java
https://www.pluralsight.com/courses/automated-web-testing-selenium-webdriver-java

Automated Testing: End to End
https://www.pluralsight.com/courses/automated-testing-end-to-end

Day17: Advice for people getting started


For those who want to get started with automation testing, some experience and opinion that I could share are:

1, Once you decide to start automation testing, find some resources to support yourself, such as online videos, training course, other automation testers who can help you.

2, Put effort but take your time. Understand the fundamental knowledge about automation testing by asking the WH questions: What is automation testing? who does it? Why do people do automation testing? When and how is it done? and trying get the answers to those questions.

3, Choose one programming language and related IDE and framework to learn and master it.

4, The more you do, the more you will be interested in it, then you will get known about it more and faster.  Once you're confident about a few aspects of automation, you'll want to know a wider range of it.

Day16: Share the most valuable piece of automation being used by your team


There's a selenium C# automation framework written by our ex-QA lead in the team. It followed the hybrid approach, using data-driven, POM. The structure of this framework is simple but very clear, so it's easy for everyone to use it to develop his/her automation. And is a good example for beginners to understand automation framework and learn how to create their own framework from it.