SQL Order By, Where Clause, Like Operator and SQL Wildcards

 In this post we will discuss about:

  • SQL Order By
  • Where Clause
  • SQL Like
  • SQL Wildcards
  • Problems and write SQL queries

Order By 

Order By - The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts the records in ascending order by default.

Where Clause

The WHERE clause is used to filter records. It is used to extract only those records that fulfill a specified condition. SQL requires single quotes around text values. However, numeric fields should not be enclosed in quotes.
The following operators can be used in the WHERE clause: =, >, <, >=, <=, <>, BETWEEN, LIKE, IN 

SQL Wildcards

A wildcard character is used to substitute one or more characters in a string.
Wildcard characters are used with the LIKE operator. 

SQL Like 

The LIKE operator is used in a WHERE clause to search for a specified pattern in a column.
%  - Represents zero or more characters
Example: Hi% finds Hitendra, Hit, Hi
_   -Represents a single character

Example: V_rma find Verma, varma

[] - Represents any single character within the brackets

Example: h[oa]t finds hot and hat, but not hit
^  - Represents any character not in the brackets

h[^oa]t finds hit, but not hot and hat
- Represents a range of characters

Example: c[a-b]t finds cat and cbt

Queries to Solve
  1. List the employees in the asc order of their Salaries? 
  2. List the details of the emps in asc order of the FirstName and desc of Department? 
  3. Select employee detail whose name is "Jane" 
  4. Get all employee detail from Employee table whose "FirstName" start with letter 'r'. 
  5. Get all employee details from Employee table whose "FirstName" contains 'a' 
  6. Get all employee details from EmployeeDetail table whose "FirstName" end with 'm' 
  7. Get all employee detail from EmployeeDetail table whose "FirstName" start with any single character between 'a-p' 

SQL Part 3: Create new table, Alias, Merge columns

Query to Create EmployeeDetail table:

CREATE TABLE EmployeeDetail

(

EmpId integer PRIMARY KEY, 

FirstName varchar(255),

LastName varchar(255),

Salary integer,

JoiningDate date, 

Department varchar(255),

Gender varchar(255) 

);

INSERT INTO EmployeeDetail VALUES(1,'Tom','Garcia',60000.00,'2008-11-10 13:23:44','IT','Male');

INSERT INTO EmployeeDetail VALUES(2,'Lucy','Martin',70000.00,'2009-11-09 13:23:44','HR','FeMale');

INSERT INTO EmployeeDetail VALUES(3,'Frank','Clark',75000.00,'2012-01-24 13:23:44','Admin','Male');

INSERT INTO EmployeeDetail VALUES(4,'Jane','Joseph',78000.00,'2017-01-28 13:23:44','ICT','FeMale');

INSERT INTO EmployeeDetail VALUES(5,'Robert','Hansen',100000.00,'2012-01-29 13:23:44','HR','Male');

Query to Create ProjectDetail table:

CREATE TABLE ProjectDetail

(

ProjectDetailId integer PRIMARY KEY, 

EmpId integer REFERENCES EmployeeDetail(EmpId), 

ProjectName varchar(255) 

);

INSERT INTO ProjectDetail VALUES(1,1,'ABC');

INSERT INTO ProjectDetail VALUES(2,1,'DDC');

INSERT INTO ProjectDetail VALUES(3,1,'GHI');

INSERT INTO ProjectDetail VALUES(4,2,'HGT');

INSERT INTO ProjectDetail VALUES(5,3,'ABC');

INSERT INTO ProjectDetail VALUES(6,4,'GHI');

INSERT INTO ProjectDetail VALUES(7,3,'XYZ');

INSERT INTO ProjectDetail VALUES(8,5,'DDC');

Alias: Aliases are often used to make column names more readable

Basic SQL Queries for Practice:

1. Write query to get all employee detail from "EmployeeDetail" table:

ANS: SELECT * FROM EmployeeDetail

2. Write query to get only "FirstName" column from " EmployeeDetail " table

ANS: SELECT FirstName FROM EmployeeDetail

3. Write query to get FirstName in upper case as "First Name".
ANS: SELECT UPPER(FirstName) AS [First Name] FROM EmployeeDetail

4. Write query to get FirstName in lower case as "First Name".
ANS: SELECT LOWER(FirstName) AS [First Name] FROM EmployeeDetail

5. Write query for combine FirstName and LastName and display it as "Name" (also include white space between first name & last name).
ANS: 
1st Way - SELECT CONCAT(FirstName+' ',LastName) AS Name FROM EmployeeDetail
2nd Way - SELECT FirstName+' '+LastName AS Name FROM EmployeeDetail

Below are some very good websites to Practice SQL Queries online:

SQL Part 2: Data types, Operators and Constraints

 SQL Datatypes:

Exact Numeric SQL Data Types:

bigint = Range from -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)

int = Range from -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)

smallint = Range from -2^15 (-32,768) to 2^15-1 (32,767)

tinyint = Range from 0 to 255

bit = 0 and 1

decimal = Range from –10^38 +1 to 10^38 -1

numeric = Range from -10^38 +1 to 10^38 -1

money = Range from -922,337,203,685,477.5808 to +922,337,203,685,477.5807

small money = Range from -214,748.3648 to +214,748.3647

Approximate Numeric SQL Data Types:

float = Range from -1.79E + 308 to 1.79E + 308

real = Range from -3.40E + 38 to 3.40E + 38

Date and Time SQL Data Types:

datetime = From Jan 1, 1753 to Dec 31, 9999

smalldatetime = From Jan 1, 1900 to Jun 6, 2079

date = To store a date like March 27, 1986

time = To store a time of day like 12:00 A.M.

Character Strings SQL Data Types:

char = CHAR is fixed lengt. Maximum length of 8,000 characters

varchar = VARCHAR is variable length. Maximum of 8,000 characters

varchar(max) = Maximum length of 231 characters

char vs varchar

CHAR takes up 1 byte per character. So, a CHAR(100) field (or variable) takes up 100 bytes on disk, regardless of the string it holds. VARCHAR is a variable length string data type, so it holds only the characters you assign to it. VARCHAR takes up 1 byte per character, + 2 bytes to hold length information.

Unicode Character Strings SQL Data Types:

nchar = Maximum length of 4,000 characters

nvarchar = Maximum length of 4,000 characters

nvarchar(max) = Maximum length of 231 characters

ntext = Maximum length of 1,073,741,823 characters

Binary SQL Data Types:

binary = Maximum length of 8,000 bytes

varbinary  = Maximum length of 8,000 bytes

varbinary(max) = Maximum length of 231 bytes

image = Maximum length of 2,147,483,647 bytes

SQL Operators:

There are are three types of Operators.

  • Arithmetic Operators:
  • Comparison Operators
  • Logical Operators

Arithmetic operators

Operator Description

+ Add values of operands

Subtract values of operands

* Multiply operand’s values

/ Divide values of operands

% Modulus operation on operands

Comparison operators

In the table below, if condition gets satisfied then “True” Boolean value is returned.

Operator Description

= Determine if the values of operands are equal.

!= Check if the values of operands are not equal.

> Determine if the left operand is more than the right operand.

< Check if the right operand is more than the left operand.

>= Determine if the left operand is more than or equal to the right operand.

<= Check if the right operand is more than or equal to the left operand.

!> Determine if the right operand is not more than the left operand.

!< Check if the left operand is not more than the right operand.

Logical Operators

Operator Description

OR   - Returns true if either operand is true. Else it returns false if both the operands are false.

AND - Returns true if both operands are true. Else it returns false if either or both the operands are false 

NOT - Returns true if condition is false and returns false if the condition is true.

SQL Constraints:

  • Constraints are the rules enforced on data columns on table. 
  • These are used to limit the type of data that can go into a table. 
  • This ensures the accuracy and reliability of the data in the database. 
  • Constraints could be column level or table level. 
  • Column level constraints are applied only to one column, 
  • whereas table level constraints are applied to the whole table. 

Following are commonly used constraints available in SQL: 

1. NOT NULL Constraint: Ensures that a column cannot have NULL value. 

Example:

CREATE TABLE recipes (

  recipe_id INT NOT NULL,

  recipe_name VARCHAR(30) NOT NULL,

  PRIMARY KEY (recipe_id),

  UNIQUE (recipe_name)

);

2. DEFAULT Constraint: Provides a default value for a column when none is specified. 

3. UNIQUE Constraint: Ensures that all values in a column are different. 

4. PRIMARY Key: Uniquely identified each rows/records in a database table. 

UNIQUE KEY vs PRIMARY KEY

  • The UNIQUE constraint ensures that all values in a column are different.
  • Both the UNIQUE and PRIMARY KEY constraints provide a guarantee for uniqueness for a column or set of columns.
  • A PRIMARY KEY constraint automatically has a UNIQUE constraint.
  • However, you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table.
  • The primary key column cannot have null values while the Unique Key column can have one null value.

5. FOREIGN Key: Uniquely identified a rows/records in any another database table. 

  • A FOREIGN KEY is a field (or collection of fields) in one table, that refers to the PRIMARY KEY in another table. The table with the foreign key is called the child table, and the table with the primary key is called the referenced or parent table.
  • Foreign key is used to maintain relationship between two tables.
  • Foreign Key in a table doesn't have to be unique in said table. BUT, as it is the Primary Key of another table, it must be unique in this table.
  • Foreign Key can be NULL or duplicate
Example:

Table1 (Parent Table):

CREATE TABLE EmployeeDetail(EmpId integer PRIMARY KEY, FirstName varchar(255),LastName varchar(255),Salary integer,JoiningDate date, Department varchar(255), Gender varchar(255) );

Table 2 (Child Table):

CREATE TABLE ProjectDetail(ProjectDetailId integer PRIMARY KEY, EmpId integer REFERENCES EmployeeDetail(EmpId), ProjectName varchar(255) );

6. CHECK Constraint: The CHECK constraint ensures that all values in a column satisfy certain conditions. 

SQL constraints are used to specify rules for the data in a table. Constraints are used to limit the type of data that can go into a table. This ensures the accuracy and reliability of the data in the table. If there is any violation between the constraint and the data action, the action is aborted.

Syntax: ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (column_name condition);

7. INDEX: Use to create and retrieve data from the database very quickly.

A SQL index is used to retrieve data from a database very fast. Indexing a table or view is, without a doubt, one of the best ways to improve the performance of queries and applications. 

Syntax: CREATE INDEX <indexName>

ON <TableName>(LastName);

SQL Part 1: DataBase Concept

 In This section we are going to cover below topics:

  • SQL For Testers
  • What is Database?
  • What is DBMS?
  • What is RDBMS?
  • What is SQL?
  • SQL Command Types
  • Most Important SQL Commands

Why SQL needed for Testers
  • The ability to recognize the different types of databases, The ability to connect to the database using different SQL connection clients, Understanding of the relationship between database tables, keys, and indices. Ability to write a simple select or SQL statement along with more complex join queries.
  • As a software tester, you are required to perform database testing that requires the knowledge of different SQL and database concepts. In addition, you are required to write SQL queries to retrieve, update and insert data in the databases. 
  • We will start with the database fundamentals. At the same time, we will move to the SQL concepts. Finally, we’ll check some of the widely used SQL commands
What is a Database?
  • A database is an organized and systematic collection of data that is stored and accessed in/from a computer system. A database is usually controlled by a database management system (DBMS).
  • For example, a company database may include tables for products, employees, and financial records. Each of these tables would have different fields that are relevant to the information stored in the table.
What is DBMS?
  • DBMS (Database Management System) is a software system that is designed to maintain and access the database. It allows the user to access, create, delete, and update data in a database.
  • DBMS defines the rules for manipulation and validation of this data. We use a database when there is a huge amount of data, the security of the data is important, or when multiple users have to have access to the data concurrently.
  • Some DBMS examples include MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker, Oracle, RDBMS, dBASE, Clipper, and FoxPro
What is RDBMS?
RDBMS (Relational Database Management System) is an advanced version of the basic DBMS.
A relational database is a database that allows the user to store related data in the form of multiple tables, which are linked by establishing a relationship between the different tables, hence providing an efficient way to access the database.
  • Top Relational Databases Software
  • MS SQL
  • Oracle Database
  • MySQL
  • Db2
  • PostgreSQL
  • A RDBMS database uses tables for storing the data. A table is nothing but a collection of data that is related to one another.
  • Rows
  • A Row represents a collection of fields that end up making a record in the database.
  • Column
  • In a database, a column represents those values that are of the same type. A column is also called an attribute.
What is SQL?
  • SQL stands for Structured Query Language. It is a programming language that is used to request information from a database. SQL can be used to manage and share data in a relational database management system. Moreover, users can perform actions like insertion, deletion, selection, etc on the database.
  • SQL keywords are not case sensitive.
SQL commands are segregated into following types:
  • DDL – Data Definition Language – 
SQL commands come under DDL are as follows: CREATE, ALTER, DROP, TRUNCATE
  • DML – Data Manipulation Language
SQL Commands come under DML are as follows: INSERT, UPDATE, DELETE
  • DQL – Data Query Language
SQL Commands come under DQL are as follows: SELECT
  • DCL – Data Control Language
SQL Commands come under DCL are as follows: GRANT, REVOKE, DENY
  • TCL – Transaction Control Language
SQL Commands come under TCL are as follows: COMMIT, ROLEBACK, SAVE

Some frequently used keywords/commands:
  • SELECT – It extracts data from a DataBase
  • INSERT INTO – It inserts new data into a DataBase
  • CREATE – It creates a new DataBase/Table/Index
  • UPDATE – It updates data in a DataBase
  • ALTER – It modifies a DataBase/Table
The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.
The ALTER TABLE statement is also used to add and drop various constraints on an existing table.

Syntax: ALTER TABLE table_name
ADD column_name datatype;
  • TRUNCATE -  Truncate can be used to delete the entire data of the table. Table structure remain same.
Syntax: TRUNCATE TABLE table_name
  • DELETE – Delete statement can be used for deleting the specific data.
Syntax/Example:
Delete from  <table>;
Delete from  <table> where ID=3;
  • DROP – It deletes a table/Index.
Syntax: DROP TABLE table_name

Please refer below YouTube videos in detail:

Data Driven Testing in Cucumber

What is Cucumber data driven testing?

In very simple terms, cucumber data driven testing means that you can pass data from cucumber feature files to your test cases. For example, let us consider that you are automating the login flow of some application. In this case, you can pass user name and password as test data from your feature file to selenium code.

Data-Driven Testing in Cucumber

1. Parameterization without Example Keyword:
Parameterization without Example Keyword
Using Regular Expression: 
("^user enters \"(.*)\" and \"(.*)\"$")
("^user enters \"([^\"]*)\" and \"([^\"]*)\"$")

2. Data-Driven Testing in Cucumber using Scenario Outline
Parameterization with Example Keyword

Parameterization with Examples Keyword
       Using Regular Expression: 
(“user enters (.*) and (.*)$")

Scenario Outline – This is used to run the same scenario for 2 or more different sets of test data. E.g. In our scenario, if you want to register another user you can data drive the same scenario twice.

Examples – All scenario outlines have to be followed with the Examples section. This contains the data that has to be passed on to the scenario.

Using Scenario Outline
Cucumber inherently supports data driven testing using Scenario Outline. Consider the following feature file using Scenario to define the test steps-

 Feature: Check addition in Google calculator
   In order to verify that google calculator work correctly
   As a user of google
   I should be able to get correct addition result

   Scenario: Addition
   Given I open google
   When I enter "2+2" in search textbox
   Then I should get result as "4"
In order to make it data driven we just have to use Scenario Outline along with Examples. Write the following code in feature file-

   Feature: Check addition in Google calculator
   In order to verify that google calculator work correctly
   As a user of google
   I should be able to get correct addition result

   Scenario Outline: Addition
   Given I open google
   When I enter "<calculation>" in search textbox
   Then I should get result as "<result>"
   
   Examples:
| calculation |result|
| 3+3      | 6 |
| 2+5      | 9 |
Please refer below Youtube video for detail explanation:


What is Data table in Cucumber?

Data Tables are handy for passing a list of values to a step definition. Cucumber provides a rich API for manipulating tables from within step definitions.
Data Tables are also used to handle large amount of data. Tables in Cucumber feature files are represented by using the pipeline “|” sign.
Please refer below Youtube video for detail explanation:



Behaviour Driven Development (BDD) Framework Setup

 Steps to be followed to setup BDD Framework:

1. Create a Maven Project

2. Add dependencies - Selenium java, webdrivermanager, cucumber-java, junit, cucumber-junit 

3. Create Features folder in src/test/resources

4. Create a new feature file. extension is .feature

5. Install Cucumber Eclipse plug-in or natural plug-in and Restart the eclipse.

6. Create a new feature file to get all the options

7. Write Scenarios in feature file

8. Run the feature file

9. Create step definition class or glue code under src/test/java package

10. Create a runner package/class

@RunWith(Cucumber.class) 

@CucumberOptions(features="src/test/resources/Features",glue={"com.StepDefinition"}

Please refer below YouTube video:


What is Cucumber Options? 
@CucumberOptions are like property files or settings for your test. Basically @CucumberOptions enables us to do all the things that we could have done if we have used cucumber command line.

Different Cucumber Options:


Please refer below YouTube video:

Intoduction to Behaviour Driven Development BDD Framework

 In this post we will discuss about the following points:

  • Traditional Approach Vs TDD
  • What is BDD?
  • TDD Vs BDD
  • Agile and BDD
  • Cucumber, Gherkin and BDD Example
  • BDD Tools

Traditional Approach

A traditional development process would go as follows:

  1. Business needs - BRD.
  2. Product owners write requirements based on those business needs - SRS, FRS.
  3. Developers and testers (independently) translate those requirements into code and test cases.

So Traditional Approach (Driven by coding) would be:

Coding -> Test Case Creation -> Test Execution

BRD (Business requirement Document)- Initiation phase- Why the requirements are being undertaken.

SRS (Software Requirement Specification)- Planning Phase -What requirements must be fulfilled to satisfy business needs.

FRS (Functional Requirement Specification)- Planning phase - How exactly the system is expected to function.

TDD (Test Driven Development)

  1. Business needs.
  2. Create a collaborative space with developers and testers so that they can talk about what they’re going to develop together.
  3. During this phase they collaborate around requirements and define them as English format scenarios.
  4. Developers write code based on these scenarios and testers create automated test cases that report back against these scenarios.

So Test Driven Development would be:

Tests are created -> Run the tests (Will fail) -> Write the code to pass the tests

What is BDD?
  • Behavioral Driven Development (BDD) is a software development approach that has evolved from TDD (Test Driven Development).
  • Behavior Driven Development (BDD) is a branch of Test Driven Development (TDD).
  • It Improves communication between tech and non-tech teams and stakeholders.
  • In both development approaches, tests are written ahead of the code, but in BDD, tests are more user-focused and based on the system’s behavior.
  • BDD is a way for software teams to work that closes the gap between business people and technical people.
  • BDD is more user focused – for this BDD use user stories for every feature to be tested Ex – Login feature.
  • BDD uses human readable descriptions of user requirements – Writing the scripts using Gherkin Language.
TDD vs. BDD
  • BDD is in a more readable format by every stake holder since it is in English, unlike TDD test cases written in programming languages such as Ruby, Java etc.
  • BDD explains the behavior of an application for the end user while TDD focuses on how functionality is implemented. Changes on functionality can be accommodated with less impact in BDD as opposed to TDD.
Agile and BDD 
  • Agile Planning work in small increments of value like User Stories. 
  • BDD does not replace your existing agile process, it enhances it.
  • BDD as a set of plug-in for your existing process that will make your team more able to deliver on the promises of agile:
  • BDD encourages working in rapid iterations, continuously breaking down your user’s problems into small pieces that can flow through your development process as quickly as possible.
What is Cucumber:
It is a testing tool that supports Behavior Driven Development (BDD) framework. It defines application behavior using simple English text, defined by a language called Gherkin.

Gherkin Language:
It is a Business Readable, Domain Specific Language created especially for behavior descriptions.

The ‘Given-When-And-Then’ formula BDD example
This is the proposed template for writing BDD test cases for a user story, which can be defined as:

Feature: Description of the feature
Scenario:
Given a certain scenario which is prerequisite
When an action takes place - Action
And some more action 
Then this should be the outcome – Expected Result

A practical example would be:-

Feature:  Check Login Functionality 
Scenario: 
Given the login screen is opened
When user enters username and password
And clicks on Login Button
Then user should be navigated to Home Page.

Different BDD Tools:

Cucumber:
Cucumber is a test framework that supports BDD. In Cucumber, the BDD specifications are written in plain, simple English which is defined by the Gherkin language. In other words, Gherkin is a language that Cucumber understands.
Specflow:
Specflow evolved from the Cucumber framework using Ruby on Rails, and is used mainly for .Net projects. SpecFlow also uses the Gherkin language.
Jbehave
Test Left
JDave

Please refer below YouTube video to understand in detail:

How to explain Selenium Automation Framework (DataDriven+POM) in Interview?

When we give any answer in the interview the one and only important thing we need to keep in mind is It should be brief and to the point so that interviewer should not lose interest from our answer.
 
So whenever we need to give answer about framework we can divide framework in terms of different components which we are using to build a structure which we called a framework and which we use in our company:

We can start like mentioned below.

1. Design - We are using Page Object with Page Factory framework with functional/structural implementation.

Make sure you know what functional/structural implementation in this framework.

2. Build Tool - We are using standardized maven project for build, execution & dependency management.

Make sure you know about a build tool like ant/maven

3. Language and IDE-  We are using JAVA/Ruby as our binding language and eclipse as IDE. We use java because it is known to most people when we started automation.

4. Action Driver - We also have library package to maintain common functions related to All action method/Selenium/waits/directory creations etc

5. BaseClass - We also have a base page class for common functions use by all pages – to load config.properties file and Web Driver initialization.

Make sure you know why we have Base Page class in page object

5. Test Class -  We have maintained a page class for every page in our application and a page test class to maintain test for that pages. E.g. Product listing page, Add to cart page, Payment page, Invoice generation page.

Make sure you know we maintain different page and all different annotations in page factory

Page Objects Package- com.mystore.pageobjects

Page Class – AddToCart.java

6. We have maintained separate package for page test e.g.

Test Package - com.mystore.testcases

Test Class – AddToCartTest.java

Note:  Maintaining different packages is always a good practice to follow.

7. Utility component - Extent Class, Log4j class, Listeners, Data Providers

Package Name: com.mystore.utility

8. Test Data - For handling data driven cases we are passing data using xlsx file/xls file /csv file.

>> Make sure you know about libraries like openCSV,JXL/APACHE POI/Java Properties class

9. Test Framework - For ordering tests we are using testng framework.

Make sure you know how to use different annotations and run testng.xml using maven

10. Logs - We are using log4j library to maintain logging of our project. We are using all kinds of logging statements like INFO, DEBUG, and ERROR etc. We have maintained a separate class for it in com.mystore.utility package

>> Make sure you know this library usage in java, we can use log4j by mentioning properties of this framework in a xml file or a properties file and putting that file on build path.

11. Reports - We are using Extent Report for reporting purpose. It is a third party report and it is easily available at maven central repo.

We are using maven postman plugin / JAVA API to send generated extent reports as an attachment to client Distribution list.

>> Make sure you know about this plugin of maven or Java API

12. Version Control - We check in our code into client repository using a version controlling tool git bash on windows system.

13. CI tool - We have integrated our project with CI tool i.e. Jenkins to run the build automatically.

Summary: - We should talk about all major components in our project like Logging, Emailing, Page Objects, Page Factory Annotations, TestNG, Exception Handling, Build tool, Version controlling tool, DataDriven usage etc.

Please refer this post as well -  https://www.automationtestinginsider.com/2020/02/selenium-data-driven-framework-with-pom.html

SelectorsHub: The best xpath plugin for all the browsers

This article is shared by Mr. Sanjay Kumar. In this post we will cover the following points about SelectorsHub:

  • What is SelectorsHub?
  • How to install & use SelectorsHub? 
  • Why to use SelectorsHub
  • ShadowDOM Support
  • Proper error message
  • Iframe support
  • SVG element support

What is SelectorsHub?

SelectorsHub helps to write and verify the XPath and cssSelector. SelectorsHub is the complete new way to write and verify the XPath and cssSelectors.

SelectorsHub auto suggests all attributes, text and everything along with their occurrences to complete Selectors quickly. Now you need not to copy and paste attribute values from DOM anymore to build XPath and cssSelector. It also supports shadowDOM, iframe and SVG elements. It gives the proper error message like what is wrong in your xpath and cssSelector.

SelectorsHub is invented and created by Mr. Sanjay Kumar

How to install & use SelectorsHub?

Find the download link here. Try it now it's absolutely FREE.

https://www.selectorshub.com/

1. Click on the download link for whichever browser you want.


2) Click on Add to Chrome.


3) After adding the extension, it will show in the browser toolbar like this. You can pin to the toolbar by clicking on the pin icon.

4) After adding the extension, restart the browser.

5) Now open DevTools by right clicking on any element and clicking on inspect.


6) On the right side of the Elements tab, SelectorsHub will be the last tab as shown in below image. If not visible, expand the sidebar or click on the two arrow icons as shown in below gif.


7) Now here you start typing your xpath or cssSelector. You will get auto suggest for inspected element.

Why to use SelectorsHub while there are so many other good XPath tools & selectors tools?

Biggest reason is, SelectorsHub helps to improve XPath and cssSelector writing skills.

Not one reason, there are many reasons which makes SelectorsHub the unique and best xpath tool.

  1. SelectorsHub is the only tool which made it possible to write own selectors in less than 5sec with its auto suggest feature without compromising learning skills.
  2. SelectorsHub is the only tool which supports #shadowDOM, in fact even Chrome DevTools doesn’t support shadowDOM.
  3. SelectorsHub is the only tool which gives the proper error message for the missing elements in your selectors.
  4. It helps you to improve your xpath and cssSelectors writing skills.
  5. It has iframe support.
  6. It supports svg elements.
  7. It supports dark theme.

ShadowDOM Support

It was never possible to verify and write the cssSelectors for shadowDOM elements but this amazing innovation made it possible.



Proper error message for missing elements in selectors
Earlier there was nothing which can tell us what’s wrong in our selector. We were never able to understand what’s wrong in our selector until we are not expert in it. Devtools suggests 0 matching node for wrong selector pattern. But now we have the Selector’s guide which helps us with the correct error message and what is wrong or missing in our selector.

Iframe support
It supports iframes as well. It will let you know if the inspected element is inside an iframe or not. Now we can easily write and verify selectors for elements inside an iframe without wasting any time.

SVG element support
Many of us are not aware that svg elements don't support the standard xpath format. SVG elements support different xpath patterns. SelectorsHub has made it easy and let you know the correct format and helps you to learn how to write selectors for svg elements.

For more details and to make the best use of SelectorsHub please follow the video tutorials available here.

Agile Methodology

What is Agile model?
It is a process/model of continuous integration of development and testing throughout the software development life cycle of the project. It is one of the most widely used process in software development world as it helps teams to deliver the work faster in small increments with less issues.

Agile Process:

Here in Agile process, we can monitor the project progress every day. Every release is implemented in iterations or sprints. Every iteration or sprint consists of 2 or 3 weeks in general. However, this sprint duration varies from project to project and also to sprint to sprint as well sometimes. Many meetings were involved in this Agile process to know the progress of the release in each sprint. However below mentioned meetings are widely conducted. Let’s see about them one by one in detail,

Ø  Sprint Planning meeting is conducted before the start of the sprint to discuss the user stories that can be covered in that particular sprint.

Ø  Daily stand up/Scrum is conducted to know the work done by each in the team. Mainly the below things are discussed,

  • What work is done yesterday
  • What work is planned for today
  • What work is planned for tomorrow
  • Any impediments to complete the work

Ø  Sprint Review meeting is conducted at the end of the sprint to discuss the progress and where does the team stand for that sprint. However this is a optional meeting which is conducted based on the projects/companies as required

Ø  Sprint Retrospective meeting is conducted once a sprint is completed and next sprint got started. Following things will be discussed,

  • What went well in the last sprint
  • What didn’t went well in the last sprint
  • What can be done to improve or perform well in the ongoing sprint

Ø  Defect Triage meeting is conducted to review and have a proper action on the defects. Dev team, testing team and sometimes the Product owner also will be involved in this meeting. Defects identified in the particular sprint will be triaged and assigned to respective team or deferred sometimes depending on the defects.

Ø  Sprint Planning meeting is conducted before the start of the sprint where the user stories for that particular sprint and the timelines for the same would be planned.

General terminologies used in Agile process

Product Backlog – User stories(requirements are split into user stories) will be added here. For any sprint, user stories will be picked from product backlog and worked upon.

Epic – It is the complete feature or requirement which needs to be implemented.

User story – An Epic is split into user stories based on the complexity or work involved in order to develop it. User story is generally part of Epic. In case of small feature, it will be a single user story.

For easy understanding of difference between epic and user story, let’s look at a simple example. Consider if we need to implement a login page functionality, it can be treated as an Epic. “Username, password” fields functionality can be considered as one user story. Any other hyperlinks such as “Forgot password, Need help” can be considered as another user story.

Story points – It is a measurement to define the complexity of the user story from dev and QA perspective. This activity will be done in Sprint planning.

Burn down chart – This is a pictorial graph representation of time and work. This is drawn with the help of the time spent on tasks along with the work. Team need to burn the hours on daily basis for the work accomplished against the tasks.

Differences between Waterfall and Agile

Let’s see what are the basic differences between Waterfall and Agile models.

Waterfall is a traditional model which is also called as Linear Sequential model.

  • This is mainly suitable for small projects or where the requirements are planned prior/freeze.
  • In this model, each phase is done only after previous phase/step is successfully completed.
  • Difficult to initiate change in the requirement once the project is started.
  • Testing is performed only after the completion of development.
  • Each phase has specific deliverable and review process.
  • Documentation is maintained well in each phase and dependencies can be easily addressed.

Agile model is where continuous development and testing is done. Communication is more or we can say involvement of all teams happens in this model.

  • It is an incremental process.
  • This process is known for its flexibility.
  • Changes in the project can be done even if the initial plan is completed.
  • Testing is performed concurrently with software development.
  • Less dependency on the project manager and team member can work on multiple projects in the same moment.
  • Client is involved in every phase and easy to know the updates of the project.

What is Scaled Agile Framework

It is also known as SAFe. This methodology is an agile framework for development teams. The framework is divided into three segments: Team, Program and Portfolio.

Following are allowed in SAFe,

  • To implement Lean-Agile software and systems in enterprise level
  • Gives detailed guidance for work at enterprise
  • Designed based on Lean and Agile principles
  • Designed to meet the needs of organization

Benefits of Scaled Agile Framework

It is lighter in weight and simpler. Also it can be used to handle large size streams. Few of the key benefits are listed below,

  • Increases the productivity
  • Helps in increasing the employee engagement and job satisfaction
  • Decreases time taken for the time to market
  • Increases the quality

How is this different from other Agile practices

  • This is free to use
  • It is lightweight and publicly available to use
  • Maintains most commonly used agile practices
  • Have transparency on all the levels
  • Available on easy and highly approachable form

Best Agile and Scrum Certifications

Following are the best certifications which can help the individuals in their careers,

  • Certified Scrum Professional
  • Certified Scrum Master
  • Agile Certified Coach
  • Agile Certified Practitioner
  • SAFe 4 Agilest

Best Agile Project Management Tools

Following are the most commonly used project management tools,

  • Zephyr
  • Atalssian JIRA
  • SoapUI
  • Kanbanize
  • VSTS
  • Pivotal Tracker

These are some of the basic things about Agile methodology.

This Post is Shared by my friend 'Sneha Latha' who is working as a Team Lead. Thank You Sneha for your efforts...!!!