What affects Test Automation Estimation when using Selenium estimation tools?
Evaluation and planning are the most important factors and the process of developing of any software. Personally, I believe that there are no unambiguous methods for determining this in the software industry, so each project is unique. Before you start to evaluate any project, it is important to understand how each phase of this project is performed and then you can give a reasonable and justified assessment.
Evaluation is executed not only for manual testing, but also for automated testing. Since Selenium gained high popularity in automated testing, we will describe some facts that you need to know when calculating the test automation estimation using Selenium. Following steps are included in an automation life cycle in selenium: define scope of automation, planning, design and development, test execution, maintenance.
Affected factors in test automation estimation template
Factors that influence and need to be taken into account for the evaluation of the Selenium project:
1) Scope of the project
Scope usually means finding the right test cases for automation. Break the application into small functionality or modules and analyze each of them to devise suitable tests for automation.
These steps include:
- Identification of various factors that will form the basis for creating a test case
- Splitting the application into smaller parts
- Analysis of each module to determine possible testing options
- Calculation of return on investment
2) The complexity of the application
- Determine the size of the application based on the number of test scenarios that you want to automate
- Sort the complexity using the Fibonacci series
- Identify the expected result of each test case
Here we must determine what is the large / medium and small size of the application. How you classify your application depends on the number of test cases.
3) Use of auxiliary tools / technologies
Defining the framework and the need for automation
- Analyze and identify the tools that will be used
- Determine the dependencies / implications of using the tool
Using only Selenium is not enough to build a framework or complete automation. Selenium (web driver) will only run a test script, but there are other tasks, such as reporting results, logging, taking screenshots, and so on.
To achieve these goals, you will need separate tools that will be integrated with the framework. Therefore, it is important to define these auxiliary tools, which will be better for performing the required tasks.
4) Implementing the Framework
Define the input pattern in which the data enters the script and the output (reports / test results) of your automation package.
- Create your input data. It can be both a simple text file and a complex excel file.
- Implement the reporting function (either in some excel-file, or using an additional tool, for example ReportNG)
- Identify / implement the logger in the work of your framework
- Implement a test framework (for example, Junit or TestNG)
There are many other requirements besides just writing Selenium testautomation scripts, such as reading data from a file, creating reports / tracking test results, logging, running scripts based on input conditions and environment, etc. So we need a structure that Take care of all these scripts. This structure is nothing more than your Framework.
5) Studying and training
Training Selenium is slightly different from learning any other automation tool. This involves learning the programming language, not just the scripting language (although the scripting language helps in building the framework, as you want to write a script that will implement your automated scripts after making changes to the environment settings).
It will be a good idea if we combine WebDriver with java. So if someone is good at java kernel, this is a great time to start with automation using selenium.
Along with the study of java, provisions should be studied other technologies, such as ANT / Maven (for building), TestNG / jUnit (module test structure), Log4J (for logging), ReportNG (for reporting), etc. This list can grow based on the level of the framework. The more this list grows, the more time it will take.
Test engineers are not very interested in learning a full-fledged programming language. But now they need to change this mentality and think about how learning a programming language can be as important as learning a new testing process. This will not only increase the QA engineer's knowledge of the language and automation, but will also provide an opportunity to understand how the application works inside and help them find new errors.
6) Setting up the environment
- Configure the code in a test environment
- Configure the code in the production environment
- Writing scripts to run automated tests.
- Development of logic for reporting
- Establish the frequency of running scripts and the development of logic for its implementation
- Creation of text / excel-files containing test data and test cases
7) Coding / scripting and review
Before writing your automated scripts, there are 2 necessary conditions:
- Availability of test cases
- The framework is ready
Determine the list of actions that your web application is running. These can be simple actions, such as navigation, tapping, typing; Or complex actions, such as connecting to a database, processing a flash or Ajax. Take one test case at a time and determine what actions will be performed in a particular test case, and evaluate the time for each test. The sum of all the hours for the whole test suite will give you the amount of time. It is also necessary to estimate time for reviewing the code.
Having said all these points, do not forget to include in your final assessment of automation Selenium overhead management and some buffer time. There are many automated estimation tools. Most popular of them is WBS (Work Breakdown Structure) mechanism. It serves to calculate the evaluation of automation.
The factors mentioned above are based on my experience, but there may be other objects that can influence the strategy.
The main points here are: "Define certain criteria, divide your modules or test cases into these criteria and scale it. " Based on your scaled figure - you can calculate an accurate estimate.