Automation Standards for Selenium Coding I wish I knew Earlier

photo of man sitting in front of people

Selenium Automation Coding Standards document Download PDF Version at the end of this article

1. Introduction – selenium coding automation standards document

This document describes a collection of standards, conventions and guidelines for designing and developing framework/scripts for java code in selenium automation. This document will help to ensure consistency across the code, resulting in increased usability and maintainability of the developed code.

1.     Why selenium coding standards are so important?

Coding standards for Java are important because they lead to greater consistency within the code of all developers. Consistency leads to the code that is easier to understand, which in turn results in a code, which is easier to develop and maintain. Code that is difficult to understand and maintain runs the risk of being scrapped and rewritten.

2.     Overview – selenium coding standards document

This document provides guidelines for:

  • Naming standards
  • Comment standards
  • Functions/Methods standards
  • Indentations
  • Automation scripts
  • General guidelines
    • 2. Standards for Variables

3.     Naming Variables

  1. Variable names should be defined with data type abbreviation followed by actual variable name (English descriptors that accurately describe the variable/field/class/interface)

Example:

  • int intCount
  • String strMethodName
  • float ftvariableName
  • decimal decVariableName
  • object objObjectName
  • Domain specific terminologies should be used.
  • If the users of the system refer to their clients as Customer, then the term Customer for the class should be used, not client.
  • Mixed case should be used to make names readable.
  • Abbreviations should be used sparingly, but if it is used then it should be used intelligently and should be documented

For example, to use a short form for the word “number”, choose one of nbr, no or num.

  • Long names (<15 characters is a good tradeoff) should be avoided.
  • Names that are similar or differ only in case should be avoided.

Also, Read Selenium Interview Questions & Answers

4.     Naming Exception Objects

The letter ‘e’ should be used for a generic exception object name.

5.     Declaring and Documenting Local variables

  1. One local variable per line of code should be used.
  2. Local variable should be declared with an end line comment.
  3. Declare all local variables before the functional block or in the beginning of the script.
  4. Whenever a local variable is used for more than one reason, it effectively decreases its cohesion, making it difficult to understand. It also increases the chances of introducing bugs into the code from unexpected side effects of previous values of a local variable from earlier in the code.

Note: Reusing local variables is more efficient because less memory needs to be allocated, but reusing local variables decreases the maintainability of code and makes it more fragile.

6.     Standards for Parameters (Arguments) to Member Functions

Function parameters should be named following the exact same conventions as for local variable. Example:

If Account has an attribute called balance and you needed to pass a parameter representing a new value for it, the parameter would be called accountBalance.

7.     Naming Classes

Class names should be nouns, in mixed case with the first letter of each internal word

capitalized. Try to keep your class names simple and descriptive. Use whole words -avoid acronyms and abbreviations.

Example: class ReadExcelFile { ..}

8.     Naming Interfaces

Interface names should be capitalized like class names. Example: interface RegesterDelegate;

interface Storing;

9.     Naming Methods

Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.

Example:

ResultSet getData(String query)

void initiateExcelConnection(String fileName)

10. Naming Constants

The names of the variables constants should be all uppercase with words separated by underscores (“_”).

Example:

int MIN_WIDTH = 4; int MAX_WIDTH = 5;

3.Comment Standards

  1. Comments should be added to increase the clarity of code.
  2. Document something why it is done not just what it is done.
  3. Every change to the framework/scripts should be documented in modification history. A modification history should contain the following:
  • Name of the person who changed the code:
    • Date of change:
    • Version:
    • Changed function/event:
    • Change description:

Note: Successful build should be ensured after checking in the scripts/changes into repository.

Also, Read Best Ways to Find Jobs Online

11.  Implementation of Comment Formats

Programs can have four styles of implementation of comments: block, single-line, trailing and end-of-line.

  • 3.1.  Block Comments
  • Block comments are used to provide descriptions of files, methods, data structures and algorithms.
  • Block comments should be used at the beginning of each file and before each method. They can also be used in other places, such as within methods.
  • Block comments inside a function or method should be indented to the same level as the code they describe.
  • A block comment should be preceded by a blank line to set it apart from the rest of the code.
  • Block comments have an asterisk “*” at the beginning of each line except the first. Example:

/*

* Here is the block comment.

selenium automation coding*/

  • 3.2.  Single-Line Comments
  • Short comments can appear on a single line indented to the level of the code that follows. If a comment can’t be

written in a single line, it should follow the block comment format.

  • A single-line comment should be preceded by a blank line. Here’s an example

of a single-line comment in Java:

if (condition)

{

/* Handle the condition. */

}

  • 3.3.  Trailing Comments
  • Very short comments can appear on the same line as the code they describe, but should be shifted far enough to separate them from the statements. If more than one short comment appears in a chunk of code, they should all be indented to the same tab setting.
  • Avoid the assembly language style of commenting every line of executable code with a trailing comment.

Here’s an example of a trailing comment in Java code (also see “Documentation Comments”

if (a == 2)

{

return TRUE; /* special case */

}

else

{

return isprime(a); /* works only for odd a */

}

  • 3.4.  End-Of-Line Comments

The // comment delimiter begins a comment that continues to the newline. It can comment out a complete line or only a partial line.

Example:

// Page Factory Initialization

ProductsLib productsTestDataObject = new ProductsLib())

12.  Framework Code Header Comments

The framework code header should contain the following:

  • The copyright and proprietary information
  • Name of the framework code
  • Author of the code
  • Name of the reviewer
  • Date of creation
  • Version number

Example:

/**

  • Project Name : Your Company Automation Framework
  • Author : Your Company QA
  • Version : V1.0
  • Reviewed By : Manager 1
  • Date of Creation : April 13, 2013
  • Modification History :
  • Date of change : 13-Sep-09
  • Version : V1.1
  • changed function : def func1
  • change description :
  • Modified By : Tester 1

*/

  • 4. Functions/Methods

Also, Check Latest Permanent Work From Home Jobs for Software testing

13.  Function Name

Member functions should be named using a full English description, using mixed case with the first letter of any non- initial word capitalized. The first word of the member function should be a verb.

Examples:

openAccount() printMailingList() save()

delete()

14.  Naming Accessor Member Functions

  • 4.1.  Getters:

Getters refer to member functions that return the value of a field/attribute/property of an object.

  • Use prefix “get” to the name of the field/attribute/property if the field in not Boolean.
  • Use prefix “is” to the name of the field / attribute / property if the field is Boolean.
  • A viable alternative is to use the prefix ‘has’ or ‘can’ instead of ‘is’ for boolean getters.

Examples:

getFirstName() isPersistent()

  • 4.2.  Setters:

Setters refer to member functions that modify the values of a field. Use prefix ‘set’ to the name of the field.

Examples:

setFirstName()

  • 4.3.  Constructors:

In Java, constructor is a member function that performs any necessary initialization when an object is created. Constructors are always given the same name as their class name.

Examples:

Customer() SavingsAccount()

15.  Function Header

Function header should contain following detail as mentioned in the below example:

/**

**********************************************************************

  • @Project Name : TACOE – Selenium Framework.
  • @Function Name : getValuesFromExcel()
  • @Description : This function is used to fetch data from excel sheet.
  • @param : fileName – Name of the workbook from which the test data
  • needs to be fetched.
  • @param : sheetName – Name of the workbook from which the test data
  • needs to be fetched.
  • @Return : Resultset
  • @Date : June 2018
  • @Author : Tester Name

***********************************************************************

*/

Note: It’s not necessary to document all the factors described above for each and every member function because not all factors are applicable to every member function.

16.  Internal Documentation:

Comments within the member functions:

  • Use C style comments to document out lines of unneeded code.
  • Use single-line comments for business logic.
  • Following should be documented inside the definition:
  • Control Structures:
  • comparison statements and loops
  • Why, as well as what, the code does
  • Local variables
  • Difficult or complex code
  • The processing order If there are statements in the code that must be executed in a defined order.
  • Document the closing braces If there are many control structures one inside another.

17.  Function Complexity

Framework code should be designed and developed with minimal possible loops and conditions for reduced complexity and enhanced maintainability.

Each function should contain max 30 lines of code. If it crosses more than 30 lines, function should be broken in sub modules.

18.  Function Structure

The following tips provide guidance for creating easy-to-read and easy-to-maintain code:

  • Modularize the code for increased reusability and reduced redundancy.
  • Code should be well-indented with tabs. (Tab width should be 4).
  • Values passed and returned to the functions should use simple variables.
  • The use of global variables within the function should be reduced. The scope of the variable should be decided based on the standards.
  • 5. Indentation

Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces (not 4).

Lines longer than 80 characters should be avoided, since they’re not handled well by many terminals and tools.

Note: Examples for use in documentation should have a shorter line length generally no more than 70 characters. When an expression will not fit on a single line, it should be broken according to the below general principles:

  • Break after a comma.
  • Break before an operator.
  • Prefer higher-level breaks to lower-level breaks.
  • Align the new line with the beginning of the expression at the same level on the previous line.
  • If the above rules lead to confusing code or to code that’s squished up against the right margin, just indent 8 spaces

instead.

  • Here are some examples of breaking method calls:

function(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5);

var = function1(longExpression1, function2 (longExpression2, longExpression3));

  • Following are two examples of breaking an arithmetic expression. The first is preferred, since the break occurs outside the parenthesized expression, which is at a higher level.

longName1 = longName2 * (longName3 + longName4 – longName5)

+ 4 * longname6; // PREFER

longName1 = longName2 * (longName3 + longName4

– longName5) + 4 * longname6; // AVOID

  • Following is the example of indenting method declarations. The first is the conventional case. The second would shift the second and third lines to the far right if it used conventional indentation, so instead it indents only 8 spaces.

//CONVENTIONAL INDENTATION

someMethod(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) {

}

  • Line wrapping for if statements should generally use the 8-space rule, since conventional (4 space) indentation makes seeing the body difficult. For example:

if ((condition1 && condition2) || (condition3 && condition4)

||!(condition5 && condition6)) { doSomethingAboutIt();

}

  • Here are three acceptable ways to format ternary expressions:

alpha = (aLongBooleanExpression) ? beta: gamma; alpha = (aLongBooleanExpression) ? beta

: gamma;

alpha = (aLongBooleanExpression)

? beta

: gamma;

  • 6. Automation Scripts

Folder/package structure should be created based on the functionality/purpose of the scripts/files present in the respective folder.

Example:

  • Generic.fetchdata: This package should contain all the java files related to fetching test data from the excel sheet for data driven test automation framework.
  • Generic.global: This package should contain all java files related to global functionalities like Constants.java, DateTime.java, CreateLog.java, UtilFunctions (Re-usable functions), TestBaseClass.java, etc.

Example:

  • Constants.java->This java file is used to maintain constant value for the overall projects.
  • DateTime.java -> This java file should contain all the methods to get/create current time stamps.
  • CreateLog.java -> This java file should contain all methods to generate the log files and capture test results.
  • ReadExcelFile.java ->This java file should contain all methods to read and fetch test data from excel sheet.
  • UtilFunctions.java ->This java file should contain all methods which are common across the application.
  • ConnectDB.java -> This java file should contain functions definitions required to connect database.

·        PageFactory : This package should consists of all java files specific to the web element’s Ids present in the web page and domain specific functions.

·        Example:
  • LoginPage.java
  • AccountPage.java
  • TestData : This package should consists of all the excel sheet containing the test data and environment specific data. The test data for each module should be placed in separate excel document.

Example:

  • TestData.xls
  • Environmnet.xls

Header names in the excelsheet should start uppercase.

Also, check Permanent Work From Home Software testing Jobs

Example:

TestId, Description, Enabled, UserId, Password, etc.

  • TestResult: This folder should contain all the log files which is resultant of test case execution. The log files should be named as per the time of execution which makes the tracking of results easier. The Test results should be maintained in the form of log files which are generated runtime during every execution. These log files should be saved as text documents for easy understanding. The messages provided within the scripts should be saved in the log files.

The naming convention followed for the log folders is mm-dd-yyyy_hh_mm_ss. Each log folder should contain various log files based on the <testcasename>.log

Example: RC_T1_AdminTools_001_PASS.log.

·        TestScripts: This package consists of the test scripts for all module and setup script for the test execution. Testscripts names should be decided based on the functionality and the testscript should contain group of test cases related to that functionality.

Example:

UsageTypes.java -> This java file should contain group of methods(testcases) as mentioned below:

public void RC_T1_UsageTypes_001_CreateUsageTypes() public void RC_T1_UsageTypes_004_EditUsageTypes() public void RC_T1_UsageTypes_006_SearchUsageTypeGrid()

  • 7. General Guidelines
  • An ampersand (&) for concatenating strings should be used instead of ‘+’ symbol.
  • Objects should be set to nothing for cleaning the memory.
  • Only one variable should be declared in a line and all variable should be initialized as null/0/’ ’ while declaring them.
  • There should not be more than 80 characters per line.
  • The code should be properly indented.
  • Variables should be declared using appropriate data types.
  • Success/ failure can be logged inside sub-methods, instead of re-writing in all called places.
  • Finite number of loops should be defined when we use “While” loops.
  • If the first line of the method is failed, then control should move to catch block. It should not try executing second line of the method.
  • Try-Catch-Finally blocks should be used for all methods.
  • If similar kind of logic is used in more than one place, then reusable components should be used. Redundancy should be avoided.
  • Numerical constants (literals) should not be coded directly, except for -1, 0, and 1, which can appear in a for loop as counter values.

Selenium Automation Coding Standards document Download PDF Version Here

selenium ide, cross browser testing, operating systems, ci cd, test suite, browser driver, running tests

Frequently Asked Questions on Selenium Webdriver

Q. What is Latest version of Selenium Webdriver?

Ans: Selenium 4

Q. What is the difference between Selenium and Selenium WebDriver?

Ans: WebDriver is faster than Selenium RC because of its simpler architecture. WebDriver directly talks to the browser while Selenium RC needs the help of the RC Server in order to do so. WebDriver’s API is more concise than Selenium RC’s. WebDriver can support HtmlUnit while Selenium RC cannot

Q. Is Selenium WebDriver a framework?

Ans: Selenium is a framework used to test web applications. A framework defines rules that are followed to achieve particular results. In selenium, there are many types of frameworks including linear scripting, modular testing, and data-driven.

Q. What is WebDriver interface or class?

Ans: WebDriver is a public interface, we just define a reference variable(driver) whose type is interface. Now any object we assign to it must be a instance of a class (fireFoxDriver)that implement the interface.

Q. Is Selenium a tool or API?

Ans: Selenium is an open-source tool that automates web browsers. It provides a single interface that lets you write test scripts in programming languages like Ruby, Java, NodeJS, PHP, Perl, Python, and C#, among others.

Q. What is WebElement?

Ans: A WebElement, in this case, a Selenium WebElement is essentially an HTML element on a website. HTML documents consist of HTML elements. Each HTML element consists of a start tag and an end tag. The content lies between the tags.

What is the WebDriver?

WebDriver is a remote control interface that enables introspection and control of user agents. It provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behavior of web browsers.

Top 35 QA Manager/Test Lead Interview Questions and Answers

selenium automation coding

Are you preparing for a Test Lead or QA Manager interview? Preparing for a job interview

requires you to be ready to answer the basic as well as the tricky interview questions that a

hiring manager could ask. If you are wondering about the type of QA Manager/Test Lead

interview questions that could be asked in your next interview, then this post is going to help

you.

As a Test Lead, you are expected to show good leadership qualities along with proficiency in the

technical areas of work. As a Quality Manager, you need to ensure that the quality of products,

or services, or processes of an organization are properly maintained and to meet the

customer’s requirements. If you are planning to get ready for the big job interview, then here

are some of the commonly-asked QA Manager/Test Lead interview questions covering both

basic and advanced concepts:

Q1. What do you expect out of this role?

Ans. This question measures your compatibility with the role. As you have applied for the role,

you should have a good understanding of the major responsibilities associated with it and what

you expect from it in the future.

Q2. Did you handle a team of test engineers or QA professionals in your earlier role?

Ans. As you are interviewing for a test lead position it is evident that you have some amount of

experience in handling a team or have similar experiences. You need to give a detail on how

you coordinated with your team members and clients to deliver successful projects.

Q3. What do you think of test leads writing test cases?

Ans. The right answer is to say that you feel that the test lead should write test cases like any

other member of the team.

Q4. How do you set your team’s objectives?

Ans. If you prefer to set individual objectives for each member of the team, mention that you

set it according to the knowledge and experience levels. This is how we can handle the project

more efficiently as a team.

Q5. How familiar are you with the industry-standard testing practices?

Ans. Explain all the proper practices that you follow in your existing organization and how will

you handle it similarly for the organization that you are interviewing for.

Check Out Software Testing Courses Here

Q6. What are the ways you ensure that the team members receive proper training?

Ans. Get feedback from all the team members on their strengths and weaknesses to make a

note of what type of training is necessary for the team. Also, new members who join the team

should be trained on time so as to be inducted as quickly as possible.

Q7. What will be your criteria for hiring team members?

Ans. The criteria for hiring team members are

1) his/her technical strength is as per project

requirements,

2) his/her attitude towards the profile he will be hiring for, and 3) will he/she be

a good fit with the rest of the team members?

Q8. Which testing tools are you familiar with?

Ans. As a test lead, you should be familiar with some of the most popular testing tools. You

need to explain how you use and what are its advantages as per the project requirements, cost

of using the tool, and ease of use.

Q9. Are you familiar with automation and what do you think of it?

Ans. Automation is becoming an important part of software testing nowadays and you can get

away without having any knowledge of it. You should be well-prepared for this question and

make it a positive answer as automation is going to be the future.

Q10. Do you know what Requirement Traceability Matrix is? What are its uses?

Ans. The Requirement Traceability Matrix (RTM) is a document that links requirements to test

cases. Its uses are

1) to ensure that all the application requirements are tested in the

verification process and

2) to check test coverage.

Q11. What is a Test Plan?

Ans. A Test Plan is a document detailing the objectives, resources, and processes for a specific

test and contains a detailed understanding of the eventual workflow.

Q12. Name the different types of Test Plans?

Ans. There are three types of Test Plans:

1) Master Test Plan,

2) Testing Level Specific Test Plan

3) Testing Type Specific Test Plan.

Q13. What are the risks that should be avoided for a testing project?

Ans. One should avoid the following risks during a testing project: 1) human resource risk

(resource crunch), 2) project schedule risk (missed deadlines), 3) strategy risk (exceeding

allocated budgets) and 4) project definition risk.

Q14. What are the good practices that you follow?

Ans. Some of the good practices for a successful project are proper documentation process,

high standards of reviewing, recognition to outstanding performers, focusing on team building,

and making sure there is a continuous scope of learning.

Q15. Have you been involved in test estimation? What are the techniques that you use?

Ans. If yes, explain how you come with the test estimation scenarios and the techniques that

you follow to improve the processes over time.

Q16. What are your key achievements in your current organization?

Ans. Have you completed a project well before the deadline or have you managed a difficult

project with great efficiency? Mention all your achievements no matter how insignificant you

think it is.

Q17. What is the difference between Agile and Scrum? Which one do you prefer?

Ans. Scrum is actually a type of Agile framework but does not provide detailed instructions on

what needs to be done; rather most of it is dependent on the team. The Agile methodology

supports incremental and iterative work cadences known as Sprints.

If you prefer that there is a leader who maintains the direction by assigning tasks then Agile is

perfect otherwise Scrum provides the advantage of adjusting the project’s direction based on

completed work.

Q18. What is Configuration Management?

Ans. Configuration Management covers the processes used to coordinate, control, and track

test artifacts.

Q19. What are the informal reviews? Do you document informal reviews?

Ans. An informal review is a process of checking defects without running the code. No, informal

reviews do not require documentation.

Q20. What is a three-point estimation?

Ans. In a three-point estimation, three different values are calculated based on previous

experience. These are 1) the best-case estimate, 2) the most likely estimate and 3) the worst-

case estimate.

Q21. What are the key challenges of software testing?

Ans. Some of the key challenges of software testing are:

– Testing the entire application: It is difficult to test the entire application as there are

many test combinations. It will lead to a delay in shipping the product if you test all the

combinations.

– Communication with developers: Developers or testers may not always agree with each

other for some points.

– Regression testing: Managing the changes in current functionality and previous working

functionality checks could be difficult.

– Time constraint: You may have multiple tasks related to quality that need to be

completed within a specified time.

– Priority: With time constraints, it sometimes becomes difficult for the testers to decide

which test to execute first.

Some other challenges include deciding on the right process and identifying the non-testable

requirements.

Q22. What steps are followed to create a test script?

Ans. Below are the steps to create a test script:

1. Understand the Application under test by reading the requirements related documents

other references, such as the previous version of the application.

2. Make a list of the areas to test for the AUT. In this step, you will identify ‘What’ to test.

3. Determine ‘How’ to test them. Write various steps on how to test a particular feature,

determine the data that will be entered, and the expected outcome.

Q23. Why testing is necessary?

Ans. Testing is an important step in the software cycle as it helps to identify defects, mistakes,

and bugs before the delivery to the client. Testing ensures the quality of the software and

produces a more cost-efficient end-product.

Q24. What do you mean by PDCA Cycle?

Ans. PDCA stands for Plan Do Check Act. The PDCA Cycle is a 4-stage problem-solving technique

for conducting a quality check. It focuses on the continuous improvement of processes and

products. In simple terms, it is a continuous loop of planning, doing, checking, and acting that is

useful for testing improvement measures.

Q25. What are the key elements in a Bug Report?

Ans. A good bug report must be concise and specific and should have:

– Title

– Unique and clearly specified bug number/name

– Steps to reproduce the bug

– A summary describing the defect and the observed failure

– A description that explaining the steps to follow to reproduce the defect and the

expected outcome.

– Date and time when the defect occurred or reported

– Bug Priority / Severity

– Platform & Version

– Attachment/evidence of the failure to help the reviewer to understand the defect better

Q26. What is the difference between Retesting And Regression Testing?

Ans. The differences between Retesting And Regression Testing are:

Retesting Regression Testing

It is planned testing. It is generic testing.

Retesting focuses on testing a specific feature

of the software.

Regression Testing focuses on testing a

general area of the software.

Retesting is done to confirm the test cases that

failed in the final execution. It is carried out to

check that the defects are fixed.

Regression Testing is done for testing

software which was working, but might

not be working now due to updates.

It is done based on the Defect fixes.

It ensures that new code changes should

not adversely impact the existing

functionalities.

Test cases cannot be automated for Retesting.

Automation can be done for regression

testing.

It is carried out only for failed test cases. It is carried out for passed test cases.

The Priority of re-testing is higher than

regression testing, thus it is done before

regression testing.

It can be done parallel with Re-testing.

Q27. What Is Exploratory Testing?

Ans. Often described as simultaneous learning, test design, and test execution, Exploratory

Testing is an approach that involves testing of software without any specific plans or schedules.

It is carried out when there an early iteration is needed. It requires minimum planning and

maximum test execution. During software testing, the tester discovers and learns novel things

that when combined with experience and creativity produce new good tests to run.

Q28. What are the severity and priority of a defect?

Ans. Defect Severity means how adversely the defect has impacted the functionality of an

application.

Defect Priority refers to the order in which the defects will be fixed. It is the urgency of the

defect from the business point of view. If the impact of the bug will be higher on the business,

then a higher priority will be assigned to it. Bugs could be under different priority and severity

combinations

– High Priority and High Severity

– High Priority and Low Severity

– Low Priority and Low Severity

– Low Priority and High Severity

Q29. How would you choose a Testing tool for your project?

Ans. The steps to select the right testing tool for a project are:

1. Identify and understand the requirement for the project

2. Evaluate the tools and vendors that meet the requirements

3. Consider budget and estimate cost and benefit

4. Make the final decision

Q30. Explain the difference between Smoke testing and Sanity Testing.

Ans. The differences between Smoke testing and Sanity Testing are:

Smoke Testing Sanity Testing

The objective of Smoke Testing is to confirm that

the critical functionalities of the program are

working properly.

It verifies and validates the conformity of

the new functionalities in the existing

code.

It ascertains the stability of the system. Sanity Testing ascertains the rationality

of the system.

This testing is performed on initial builds.

This testing is performed on stable

builds.

Smoke testing is carried out by the developers or

testers.

Testers carry out Sanity Testing.

It is documented or scripted. Usually, it is not documented or scripted.

Smoke testing is a part of basic testing.

Sanity Testing is a part of regression

testing.

It is usually carried out whenever there is a new

build.

It is a planned activity that is carried out

when there is not enough time for in-

depth testing.

Q31. What do you think is the best approach to start QA in a project?

Ans. The best approach to start QA is from the beginning of the project. This will help the team

to do proper planning of the processes that need to be followed. It will ensure that the end-

product meets the customer’s quality expectations. QA also helps in starting communication

between different teams.

Q32. What soft/people skills should a Test Lead/QA Manager have?

Ans. Besides technical expertise, Test Leads and QA managers must work on their ability to

create and work with a creative test team where each member is equally valuable for the

organization. This would require them to have the following soft skills:

– Effective communication skills

– Ability to solve problems effectively

– Adaptable and influential

– Strong negotiation and conflict resolution skills

– Ability to motivate team members

– Team Player

Q33. What are the different ways to manage or mitigate risks in a Test Project?

Ans. The following are the four ways to manage or mitigate the risk:

– Avoidance: avoid the risk factor that is involved

– Acceptance & Sharing: Accept the risk and develop a planned budget for the risks

involved and collaborate with others to share responsibility

– Reduction: Develop a mitigation plan to decrease the impact of risks

– Risk transfer: Transfer the risk to another resource or party

Q34. How can you determine the quality of the test execution?

Ans. You can determine the quality of test execution by:

– Defect rejection ratio: (No. of defects rejected/ total no. of defects raised) X 100

– Defect leakage ratio: (No. of defect missed/total defects of software) X 100

A smaller value of DRR and DLR indicates a better quality of test execution.

Q35. What are the best practices for test estimation?

Ans. The following are some of the best practices for test estimation:

– Add reasonable buffer time: It can help you to deal with a delay caused due to

unexpected reasons.

– Account resource planning in estimation: Make realistic estimation after considering the

important factors, like the absence of a human resource.

– Use the past experience reference: It will help you to prepare good estimates and avoid

all the possible obstacles that are most likely to happen.

– Stick to your estimate: Your estimation may go wrong also. Therefore, you should re-

check and make modifications when needed.