Selenium is a suite of tools for automated web testing.  It is composed of

  • Selenium IDE (Integrated Development Environment) :  It is a tool for recording and playing back.  It is a firefox plugin
  • WebDriver and RC:  It provide the APIs for a variety of languages like Java, .NET, PHP, etc. With most of the browsers Webdriver and RC works.
  • Grid: With the help of Grid you can distribute tests on multiple machines so that test can be run parallel which helps in cutting down the time required for running in browser test suites

 

Web Testing tools Selenium RC and WebDriver are consolidated in single tool in Selenium 2.0

Selenium 3.0 is the latest version of Selenium. It has released 2 beta versions of selenium 3.0 with few of the below changes:

Here are few new features added to Selenium 3.0

Beta 1 updates Beta 2 updates (Only for Java)
  • Minimum Java version is now 8+
  • System property webdriver.firefox.marionette now forces the server in marionette or legacy firefox driver mode, ignoring any related Desired Capability
  • It will support for Firefox Via Mozilla’s geckodriver
  • Grid fixes NPE’s on registration when -browser not specified
  • Support for Edge is provided by MS
  • It now supports Safari on MacOS via Apple’s own Safari driver
  • Update GeckoDriver –port argument in all bindings

 

In Selenium every object or control in a web page is referred as an elements, there are different ways to find an element in a web page they are

  • ID
  • Name
  • Tag
  • Attribute
  • CSS
  • Linktext
  • PartialLink Text
  • Xpath etc

 

For web based application testing selenium can be used

The test types can be supported are

a) Functional, Learn More about Functional Testing.

b) Regression

For post release validation with continuous integration automation tool could be used

a) Jenkins

b) Hudson

c) Quick Build

d) CruiseCont

 

Assertion is used as a  verification point. It verifies that the state of the application conforms to what is expected.  The types of assertion are “assert” , “verify” and “waifFor”.

X-Path is used to find the WebElement in web pages. It is also useful in identifying the dynamic elements.

Refer Complete Guide on XPath

 

  • Single slash ( / ) start selection from the document node
  • It allows you to create ‘absolute’ path expressions

Double Slash ‘// ’

  • Double slash ( // ) start selection matching anywhere in the document
  • It enables to create ‘relative’ path expressions

 

  • Selenium supports only web based applications
  • It does not support the Bitmap comparison
  • For any reporting related capabilities have to depend on third party tools
  • No vendor support for tool compared to commercial tools like HP UFT
  • As there is no object repository concept in Selenium, maintainability of objects becomes difficult

 

TypeKeys() will trigger JavaScript event in most of the cases whereas .type() won’t. Type key populates the value attribute using JavaScript whereas .typekeys() emulates like actual user typing

 

Assert:  Assert allows to check whether an element is on the page or not. The test will stop on the step failed, if the asserted element is not available. In other words, the test will terminated at the point where check fails.

Verify: Verify command will check whether the element is on the page, if it is not then the test will carry on executing.  In verification, all the commands are going to run guaranteed even if any of test fails.

 

In JAVA a special form of syntactic meta-data can be added to Java source code, this is know as Annotations.  Variables, parameters, packages, methods and classes are annotated some of the Junit annotations which can be useful are

  • Test
  • Before
  • After
  • Ignore
  • BeforeClass
  • AfterClass
  • RunWith

 

To click on specific part of element, you would need to use clickAT command.  ClickAt command accepts element locator and x, y co-ordinates as arguments- clickAt (locator, cordString)

  • It supports C#, PHP, Java, Perl, Phython
  • It supports different OS like Windows, Linux and Mac OS
  • It has got powerful methods to locate elements (Xpath, DOM , CSS)
  • It has highly developer community supported by Google

 

  • Selenium is an open source whereas QTP is a commercial tool
  • Selenium is used specially for testing web based applications while QTP can be used for testing client server application also
  • Selenium supports Firefox, IE, Opera, Safari  on operating systems like Windows, Mac, Linux etc. however QTP is limited to Internet Explorer on Windows.
  • Selenium supports many programming languages like Ruby, Perl, Python whereas QTP supports only VB script

 

Four parameters that you have to pass in Selenium are

  • Host
  • Port Number
  • Browser
  • URL

 

Both will delay the speed of execution.

Thread.sleep () :  It will stop the current (java) thread for the specified period of time.  Its done only once

  • It takes a single argument in integer format

Ex: thread.sleep(2000)- It will wait for 2 seconds

  • It waits only once at the command given at sleep

SetSpeed () :  For specific amount of time it will stop the execution for every selenium command.

  • It takes a single argument in integer format

Ex: selenium.setSpeed(“2000”)- It will wait for 2 seconds

  • Runs each command  after setSpeed delay by the number of milliseconds mentioned in set Speed

This command is useful for  demonstration purpose or if you are using a slow web application

 

The “Same Origin Policy” is introduced for security reason, and it ensures that content of your site will never be accessible by a script from another site.  As per the policy, any code loaded within the browser can only operate within that website’s domain.

To avoid “Same Origin Policy” proxy injection method is used, in proxy injection mode the Selenium Server acts as a client configured HTTP proxy , which sits between the browser and application under test and then masks the AUT under a fictional URL

 

The purpose of heightened privileges is similar to Proxy Injection, allows websites to do something that are not commonly permitted.  The key difference is that the browsers are launced in a special mode called heightened privileges.  By using these browser mode, Selenium core can open the AUT directly and also read/write its content without passing the whole AUT through the Selenium RC server.

You can use “submit” method on element to submit form-

element.submit () ;

Alternatively you can use click method on the element which does form submission

 

TestNG is a testing framework based on JUnit and NUnit to simplify a broad range of testing needs, from Unit Testing to Integration Testing. And the functionality which makes it efficient testing framework are

  • Support for annotations
  • Support for data-driven testing
  • Flexible test configuration
  • Ability to re-execute failed test cases

 

Implicit Wait: Sets a timeout for all successive Web Element searches. For the specified amount of time it will try looking for element again and again before throwing a NoSuchElementException.  It waits for elements to show up.

Explicit Wait :  It is a one-timer, used for a particular search.

 

You can use…..driver.findElements(By.xpath(“//iframe”))….

This will return list of frames.

You will ned to  switch to each and every frame and search for locator which we want.

Then break the loop

 

find element ():

It finds the first element within the current page using the given “locating mechanism”.  It returns a single WebElement

findElements () : Using the given “locating mechanism” find all the elements within the current page.  It returns a list of web elements.

 

 

The JUnits annotation linked with Selenium are

  • @Before public void method() – It will perform the method () before each test, this method can prepare the test
  • @Test public void method() – Annotations @Test identifies that this method is a test method environment
  • @After public void method()- To execute a method before this annotation is used, test method must start with test@Before

 

As a Scrum Master, one of the responsibilities is to help the team pulling up the backlog for a sprint which is already prioritized and pulling items which are placed on the top (sorted as per the priority). Once, the team is able to identify items that can add value from the pile of requirements, the Scrum Master can help them (Product Owner + Development Team) to convert them into good user stories (if it is not already).

A good user story is one which includes a description and has acceptance criteria defined. It should be a piece which can be delivered in a sprint and entails minimum dependencies. The team should be able to develop and test within the boundaries of the sprint along with providing the estimates. In short, good user stories follow the INVEST principle.

  • Independent – Reduced dependencies
  • Negotiable – Describes the functionality, can be negotiated between the Team and PO
  • Valuable – Provides value to the customer
  • Estimable – Too big or too vague = not estimable
  • Small – Can be done in a Sprint by the team
  • Testable – Good acceptance criteria

The scrum master can help the team in creating good user stories during the backlog refinement or sprint planning so that the team can pick them up for the commitment.

For a Scrum Master, it is important to understand the pulse of the team. If there’s a member in your team who takes the meetings as useless, it’s time to know why he/she is adopting such a behavior. The focus should be on the behavior rather than the individual, the Scrum Master should try to talk to the team member individually by asking open-ended questions to find out the reason for not attending the meeting. Certainly, there is a need to understand the cause of this behavior and try to explain the importance of the planning meeting (Scrum ceremonies).

In Scrum, each individual is important, it is like wheels of a truck, any wheel gets dealigned or malfunctioned, the complete vehicle suffers. Hence, the need to explain the impact of not having his presence in the planning meeting and its impact on the entire team arises. Even the team can start to feel this imbalance. If it is still not resolved, the Scrum Master can set up a meeting with his reporting manager to talk about the concern and look out for ways to help the team member and the team.

Agile talks about continuous interaction and collaboration between the scrum team. The team members should NOT wait until the next daily scrum to ask for help, in this way, they are introducing delays in the process which will impact the overall sprint goal. If there is an obstacle, it should be raised then and there. In a sprint planning, the team commits the sprint items as per their capacity.

For example, I have 50 hours of committed work but due to some blocker, I got stuck. Now, if I wait to talk about it the next day or next daily scrum, I am wasting my workable hours which could have been resolved by raising it then and there. The question also specifically calls out for the ‘experienced team members’ which means if the experienced members are resorting to waiting, then it sends the wrong message to other team members. Such behavior within the team also portrays hidden conflicts or team members hesitating to talk. The Scrum Master should help the team in understanding the importance of real-time discussions, and promote healthy dialogue between the scrum team. Even the Scrum Master can come up with some team-building activities to make the team collaborate more efficiently.

During the early phases of the product development lifecycle, it really helps if the scrum team is made part of the discovery process. You should understand that agile talks about the early involvement of the teams with the stakeholders so that both parties are on the same page in regard to the development. Let’s look at some of the advantages of early involvement:

  • The development teams identify the technical challenges in implementation early in the process, hence, can help in reforming the requirements along with the customer.
  • The team along with the product owner also start sharing a common understanding of what is to be built. Sometimes, the teams can help the product owner in identifying the requirements which might have been missed.
  • They share a mutual understanding of what is to be built. It also helps the teams to stay committed and confident, they tend to build an ownership of their work and most importantly it boosts up the morale of the team.

To facilitate this, the scrum master can start involving the teams in early discussion of the product where the requirements are still at a high level. The team together with the product owner can build up the product backlog.

The teams working on a product need to know the integrity of the project and the customer. The product owner should help the team understand ‘Why are we building it?’, ‘What purpose is it going to serve?’.

Such questions help the team to understand their customer. The product owner has to convey the value that will be added if the product is delivered on time. Conversing the market situation helps teams to understand how the product management works and the criticality for time to market. It also helps to steer the team in a different direction at the end of every Sprint, the product owner can help the team in understanding how the customer is going to consume the product.

Sprint planning is a collective effort including a Scrum Master, who facilitates the meeting, a Product Owner, who makes clear the specifics of the product backlog items and their corresponding acceptance criteria, and the complete development team, who outline the work and effort necessary to meet their sprint goal. The scrum master can help the team by:

  • Time-boxing the activity
  • Making the team stay focused on the intention of the meeting
  • Facilitating and Resolving(if required) any deadlocks in the discussion
  • Can help them to commit the right amount of work, as per their available capacity.
  • To make sure that the team is invested and asking the right questions.

To accomplish this, the scrum master can help the team understand the definition of being ready and the process to create meaningful stories. Also, as discussed earlier in the questionnaire, it is important to get the team to participate in the early discovery process to make them understand the product. The stories should be created as a collaborative effort between the development team and the product owner, this creates a shared understanding of the common goal.

Estimating in man-hours is one of the most prevalent methods for assessing teamwork. While man-hours are easy to understand, there are a few big disadvantages to this method:

  • Few tasks are hard to estimate precisely, e.g. the legacy work
  • If one team member provides the estimate but another completes the task, the estimate becomes worthless.
  • The time needed to complete a task will vary based on a developer’s level of experience.
  • Teams usually misjudge impediments they might face and contemplate only the best-case state.

The advantages of estimating user stories in points can be – There is no correlation with the skills and experience of the estimator, story points do not depend on who is doing the story. As the story points are a measurement of relative sizes, and the size of the story cannot be changed by external pressure, the team members can estimate more accurately. Story Points invites collaboration as team behavior becomes prominent over individuals. Using planning poker to estimate story points brings the team together.  It acts as a team building activity as teams share, constructively criticize each other, debate and have fun playing poker cards to come to a consensus on estimates.

Anyone can write user stories. It’s the product owner’s responsibility to make sure a product backlog of agile user stories exists, but that doesn’t mean that the product owner is the one who writes them. – Mike Cohn

During the early product discussions, the team talks about the requirements and capture those in the form of user stories. As product backlog always live, never stays frozen. Hence, if someone feels there’s a missing requirement or something that can add value to the client, they can add it up as a user story in the backlog. There is no rule or guideline stating that only the product owner has to write the stories. People writing the story should understand what exactly it means and how to write it, as there is a set format.

Writing user stories also gives a sense of ownership to the team members and they can connect easily if they are involved in the writing process. User stories are written all through Agile development. Typically a story-writing workshop is held near the start of the agile project. Each person on the team contributes with the objective of crafting a product backlog that completely calls out the functionality to be added over the course of the project.

When the sprint is being planned, the team commits the sprint items as per the available capacity. To target the optimum execution, the team should ideally commit between 80% – 90% of the team’s total capacity, anything beyond that percentage will hinder the team’s performance. Bugs, refactoring, and research requires consistent attention in order to escape building-up technical debt.

Though the teams already have items to work on from the product owner, some of the teams set aside 25% of the capacity for this job. We also have a good practice which the teams can follow, 15-10-5 allocation of the scrum team’s capacity, which means, 15% of a team’s capacity to technical debt, 10% of a team’s capacity to defects, and 5% of a team’s capacity to exploratory work.If the team is able to follow these allocations, it will fulfill both the code quality and upkeep necessities of most software applications.

It is a good practice if followed sprint by sprint, but if for some reason the team is not able to do it in a particular sprint due to high priority delivery, it’s fine.

As part of a Scrum Master role, one of the responsibilities entail around helping and coaching the Product Owner. It is really critical for the Scrum roles to understand their role and function accordingly. If the product owner is assigning the user stories/tasks, it is the job of a scrum master to make the product owner realize the meaning of self-organization.

In the Scrum Guide, a partial definition of self-organizing is given as Scrum Teams are self-organizing. Self-organizing teams choose how to accomplish their work, rather than being directed by others outside the team.” Self-governance is one of the utmost motivators there is for people doing creative and problem-solving types of work. Assigning tasks to people is an implicit claim that the product owner knows better than the team, this not only passes on the wrong notion but it also lowers the morale of the team and at the same time defies the scrum values and Agile principle – “Point 5. Give them the environment and support they need, and trust them to get the job done.” And “Point 11. The best architectures, requirements, and designs emerge from self-organizing teams.”

Hence, the product owner is assigning work, the Scrum Master should intervene and help the Product Owner in understanding the true sense of working in a Scrum framework and refrain him/her to continue this practice.

One of the Agile Principles states “Business people and developers must work together daily throughout the project”. The stakeholders can join the daily scrum meeting but they can be mute spectators till the time scrum is not complete. The Scrum Master should encourage the stakeholders to join the meeting by making them understand that it will be worth their time.

The goal of the Daily Scrum is to know whether or not they will reach the Sprint Goal. If the stakeholders are joining the daily scrum, then they will get to know the updated picture of product development and can accordingly adjust their expectations. They get to know about the real issues that the team is facing, which helps both the parties. This event gives the opportunity to the development team to directly ask questions with the stakeholders. It not only promotes a platform for discussion but also provides early detection of risk for the stakeholders. But the Scrum Master should make sure that the inclusion of the stakeholders in the daily scrum is not converting the meeting into a status update. Although stakeholder presence is not mandatory, it doesn’t matter if they are there as a listener because it can facilitate the resolution of any impediments.

The sprint retrospective is an opportunity to inspect and adapt the process as it is a time to reflect on the process. It is needed that the full Scrum team attends. This includes all members of the development team (includes everyone who is designing, building, and testing the product), the Scrum Master, and the product owner. Since the Scrum Guide also states that the Scrum team = product owner + Scrum Master + development team, we can deduce that (officially at least) the product owner is allowed to attend the retrospective. This is the ideal scenario.

However, sometimes, the teams might not wish to include the product owner as it might hinder their discussion. If there is a lack of trust between the product owner and the development team, or there is a low level of safety so that speaking candidly isn’t comfortable, perhaps the product owner should not attend until the Scrum Master can help coach those involved towards creating a safer, more trusting environment. Anyone else outside of the immediate scrum team, and particularly managers of team members, should not be invited to participate.

Automation testing is the process of testing a software or application using an automation testing tool to find the defects. In this process, executing the test scripts and generating the results are performed automatically by automation tools. It is required when we have huge amount of regression test cases. Some most popular tools to do automation testing are HP QTP/UFT, Selenium WebDriver, etc.,

This is one of the common interview questions in any Automation testing job.

  1. Saves time and money. Automation testing is faster in execution.
  2. Reusability of code. Create one time and execute multiple times with less or no maintenance.
  3. Easy reporting. It generates automatic reports after test execution.
  4. Easy for compatibility testing. It enables parallel execution in the combination of different OS and browser environments.
  5. Low-cost maintenance. It is cheaper compared to manual testing in a long run.
  6. Automated testing is more reliable.
  7. Automated testing is more powerful and versatile. Automation tools allow us to integrate with Cross Browser Testing Tools, Jenkins, Github etc.,
  8. It is mostly used for regression testing. Supports execution of repeated test cases.
  9. Minimal manual intervention. Test scripts can be run unattended.
  10. Maximum coverage. It helps to increase the test coverage.

As we all know Selenium WebDriver is a tool which automates the browser to mimic real user actions on the web. Selenium is a free open source testing tool. Some of the challenges with selenium webdriver are as follows

  1. We cannot test windows application
  2. We cannot test mobile apps
  3. Limited reporting
  4. Handling dynamic Elements
  5. Handling page load
  6. Handling pop up windows
  7. Handling captcha

Our main focus is to automate test cases to do Regression testing, Smoke testing, and Sanity testing. Sometimes based on the project and the test time estimation, we do focus on End to End testing.

It is one of the Selenium Tricky Interview Questions.

Actually it depends on Test case scenario complexity and length. I did automate 2-5 test scenarios per day when the complexity is limited. Sometimes just 1 or fewer test scenarios in a day when the complexity is high.

Datadriven framework:  In this framework, the test data is separated and kept outside the Test Scripts, while Test Case logic resides in Test Scripts.  Test data is read from the external files ( Excel Files) and are loaded into the variables inside the Test Script.  Variables are used for both for input values and for verification values.

Keyworddriven framework: The keyword driven frameworks requires the development of data tables and keywords, independent of the test automation.  In a keyword driven test, the functionality of the application under test is documented in a table as well as step by step instructions for each test.

 

Pass the username and password with url

  • Syntax-http://username:password@url
  • ex- http://creyate:tom@www.gmail.com

 

WebElement el = driver.findElement(By.id(“ElementID”))

//get test from element and stored in text variable

String text = el.getText();

//assert text from expected

Assert.assertEquals(“Element Text”, text);

 

                          Silk Test Tool                         Selenium Test Tool
  • Borland Silk test is not a free testing tool
  • Selenium is completely free test automation tool
  • Silk test supports only Internet Explorer and Firefox
  • Selenium supports many browsers like Internet Explorer, Firefox, Safari, Opera and so on
  • Silk test uses test scripting language
  • Selenium suite has the flexibility to use many languages like Java, Ruby,Perl and so on
  • Silk test can be used for client server applications
  • Selenium can be used for only web application

 

An object repository is an essential entity in any UI automations which allows a tester to store all object that will be used in the scripts in one or more centralized locations rather than scattered all over the test scripts.

Selenium Grid sent the tests to the hub. These tests are redirected to Selenium Webdriver, which launch the browser and run the test.  With entire test suite, it allows for running tests in parallel.

Yes. But not as effectively as a dedicated Performance Testing tool like Loadrunner.

  • If you are using Selenium-WebDriver, you don’t need the Selenium Server as it is using totally different technology
  • Selenium Server provides Selenium RC functionality which is used for Selenium 1.0 backwards compatibility
  • Selenium Web driver makes direct calls to browser using each browsers native support for automation, while Selenium RC requires selenium server to inject Javascript into the browser

 

WebDriver should be used when requiring improvement support for

  • Handling multiple frames, pop ups , multiple browser windows and alerts
  • Page navigation and drag & drop
  • Ajax based UI elements
  • Multi browser testing including improved functionality for browser not well supported by Selenium 1.0

 

Major limitation of injecting capabilities is that “findElement” command may not work as expected.

 

To find the broken images in a page using Selenium web driver is

  • Get XPath and get all the links in the page using tag name
  • In the page click on each and every link
  • Look for 404/500 in the target page title

 

To handle colors in web driver you can use

Use getCssValue(arg0) function to get the colors by sending ‘color’ string as an argument

You can use following command to store a value which is text box using web driver

driver.findElement(By.id(“your Textbox”)).sendKeys(“your keyword”);

 

To switch between frames webdrivers [ driver.switchTo().frame() ] method takes one of the three possible arguments

  • A number:  It selects the number by its (zero-based) index
  • A number or ID: Select a frame by its name or ID
  • Previously found WebElement: Using its previously located WebElement select a frame

 

The 5 different exceptions you had in Selenium web drivers are

  • WebDriverException
  • NoAlertPresentException
  • NoSuchWindowException
  • NoSuchElementException
  • TimeoutException

 

You can perform double click by using

  • Syntax- Actions act = new Actions (driver);
  • act.doubleClick(webelement);

 

You can use “type”command to type in a file input box of upload file. Then, you have to use “Robot” class in JAVA to make file upload work.

 

HTMLUnit Driver implementation is fastest, HTMLUnitDriver does not execute tests on browser but plain http request, which is far quick than launching a browser and executing tests

 

To bring control on HTML frame you can use “SwitchTo” frame method-

driver.switchTo().frame(“frameName”);

To specify a frame you can use index number

driver.switchTo().frame(“parentFrame.4.frameName”);

This would bring control on frame named- “frameName” of the 4th sub frame names “parentFrame”

 

getwindowhandles(): It is used to get the address of all the open browser and its return type is Set

getwindowhandle(): It is used to get the address of the current browser where the control is and return type is string

 

To switch back from a frame use method defaultContent()

Syntax-driver.switchTo().defaultContent();

 

Different types of locators are

  • By.id()
  • By.name()
  • By.tagName()
  • By.className()
  • By.linkText()
  • By.partialLinkText()
  • By.xpath
  • By.cssSelector()

 

  • In order to display a constant string, command can be used is echo
  • If order to display the value of a variable you can use command like echo ${variable name>>

Above is using PHP. If you are using Java, replace echo with System.out.println

 

Recovery scenarios depends upon the programming language you use.  If you are using Java then you can use exception handling to overcome same.  By using “Try Catch Block” within your Selenium WebDriver Java tests

 

To iterate through options in test script you can loop features of the programming language, for example to type different test data in a text box you can use “for” loop in Java

// test data collection in an array

String[ ] testData = { “test1” , “test2” , “test3” } ;

// iterate through each test data

For  (string s: test data) { selenium.type ( “elementLocator”, testData) ; }

 

The retrospective format provided by Scrum Guide contains three items:

  • What went well?
  • What didn’t?
  • Action Items to improve

This is the usual format that is being used by the Scrum teams. But after a while, it gets monotonous to use the same. And as each team is different, the same formula might not go well with all. There are many different retrospective ideas out in the Agile world, including distinctions and trimmings on the rudimentary questions and creative facilitation techniques.  Scrum Masters should develop a toolkit of retrospective techniques that they can use and adapt to their teams. Let’s look at a few:

  • Sail Boat – The idea is to draw a speedboat on a flip chart and ask the team, “If our team is this speedboat, what anchors are holding us back and keeping us from getting faster/better?” Then the team collects all their ideas on Post-Its, puts them below the boat and draws a line from the boat to the anchor.
  • Speed Car – This is a simple activity for helping the team to identify things that make them move faster, and things that slow them down.

There are several other ideas as well, like:

  • Liked, learned, lacked, longed for (4 L’s)
  • Starfish (small, large)
  • Stop, start, continue
  • Mad, sad, glad

Retrospectives don’t finish when they’re concluded. In fact, the toughest part has now been initiated: Following-up on your retrospective action plan. In a retrospective, one of the outcomes is the action items which the teams have identified to make their process or work environment much better (retrospective can touch base at different levels). If the action items identified during the last retrospective is not worked upon or gets lost during the course of the sprint, the team will start refraining from coming up with the points as they will not see any closure on the items. Hence, the Scrum Master should present the action items from the last retrospective and discuss the status of progress.

This gives a sense of satisfaction to the team that they are getting heard and the items are being tracked to closure. There are several ways of following up, for example,

Running the activity:

  1.   Open the list of action items (and their respective owners)
  2.   Update the status for each item on the list.
  3.  Add newly identified items

Each team can have a different tool for tracking their action items. Some examples: post-it on the team wall, a shared excel document, Trello, etc.

As the saying goes, “One size doesn’t fit all”. Same goes for Agile. All projects and products might or might not fit into the agile arena. In our case, it is working and we are actually reaping the benefits. Let me list out some areas where we see the difference:

  • Faster Time to Market – The idea of two-week delivery cycles and quarterly release cadences helped in quicker deliveries.
  • Feedback from real customers – Frequent collaboration with the clients helped the teams in building the right product rather than delivering at the end with surprises!
  • Prompt risk detection – By delivering early and getting feedback, we reduce the risk of building the wrong product. By focusing on architectural risk in the early sprints, we reduce the risk that we won’t have a solution that can be built in time, at least the team knows it early.
  • Improved Quality Stats – Quality is an integral part of the sprint in terms of code coverage, unit tests, peer reviews, etc.
  • Predictability – With the teams trying to stabilize the velocity, we could easily predict the capacity for the upcoming release.

Every Agile journey is different, hence their experience. Thus, it is important to identify the success factors to promote excellence.

As a Scrum Master, I will not accept this process as it is its sugar coating Waterfall in the name of Agile. Just converting the requirements into tickets will not suffice for the entry criteria of the user stories. The requirements should be finely broken down into finer pieces so that it can be consumed in sprint time. The conversion of stakeholder requirement into tickets should also follow the best practices in the industry like INVEST, 3Cs, etc. to help teams gain confidence into what is to be built.The focus should always be on delivering value to the customers, which requires keeping a health prioritized backlog. The organization adopting Agile use tools like Rally, Version 1, etc. to manage the product backlog and sprint backlog. Hence the requirements should be entered in the tools for the teams to pick.

Moreover, the scrum team should be involved early in the product discovery process so that all the parties involved have a shared understanding of what is to be built. This also helps in curating the requirements which are feasible and have pre-identified risks and challenges. Finally, the Scrum Master should help the teams to be agile and not just allow anti-patterns to grow.

The Product Owner is invested to conclude the value that the user story will deliver, enabling him or her to set the backlog as per the highest priority. When a user story is created, it carries some value (we have also learned about it in the INVEST model where V stands for Value). When the sprint is being planned, the team pulls up the highest priority item from the pile for commitment. If the team members are picking up tasks as per their comfort, the scrum master has to come in picture and coach the team. Even the product owner might pick up stories which are not adding value to the customers.

Hence, the story time or the sprint planning meeting should be addressed in the true sense, the scrum master should facilitate these meetings in a way that they stick to the intent of the meeting and come out with the valid outcomes. Both the team and the product owner has to focus on value delivery rather than ease of work. If the teams are involved early during the product discussion, these types of challenges can be minimized.

A user story represents a small piece of business value that a team can deliver in a sprint. Though traditional requirements (like use cases) try to be as detailed as possible, a user story is defined incrementally in three stages:

  • Who are we building it for, who the user is? — As a <type of user>
  • What are we building, what is the intention? — I want <some goal or objective >
  • Why are we building it, what value it brings for the user.? — So that <benefit, value>

Well-formed stories will meet the criteria of Bill Wake’s INVEST acronym:

  • Independent – Can the story stand-alone by itself?
  • Negotiable – Avoid too much detail; keep them flexible so the team can adjust how much of the story to implement.
  • Valuable – Users or customers get some value from the story.
  • Estimable – The team must be able to use them for planning.
  • Small – Large stories are harder to estimate and plan. By the time of iteration planning, the story should be able to be designed, coded, and tested within the iteration.
  • Testable – Can this story be tested and verified?

The Scrum Master arranges the Scrum meeting for the Development team. The Development team is the main player in the meeting.  But, the Scrum Master guides the Development Team to keep the Daily Scrum within the 15-minute time-box. The Scrum Master enforces the rule that only the Development Team members participate in the Daily Scrum.

Peer team member. The Sprint Retrospective provides an opportunity to inspect and adapt the progress for improvements. The Scrum Master plays the role of a facilitator for his/her team. In the Scrum framework, the teams are self-organized and open to making changes very quickly wherever needed.

A Scrum Master does not have to be there; he or she only has to ensure the Development Team has a Daily Scrum. The Scrum Master enforces the rule that only Development Team members participate in the Daily Scrum. Although the Scrum Master or Product Owner can attend this meeting to facilitate the Daily Scrum, this is certainly not required by Scrum. The Development Team members synchronize their work, monitor their progress toward the Sprint Goal and if required they adapt the Sprint Backlog and the plan for the next 24 hours during the Daily Scrum.

By facilitating Development Team decisions and by removing impediments that hinder the Development Team. A Scrum Master is a servant-leader for the Development Team. Facilitation and removing impediments serves a team in achieving the best productivity possible. The Scrum Master within the Scrum Team facilitates the development of working software and help the development team in delivering the Product Increment. The Scrum Master does everything possible to help the development team to work at their highest level.

The role of the Scrum Master majorly includes the facilitation. The SM facilitates the Daily Scrum for the development team to discuss the daily tasks and to increase team collaboration. The Scrum Master also ensures that the team is strictly adhering to the Daily Scrum meeting rule that the meeting should be time-boxed to 15 minutes only.

Although a Scrum Master is said to facilitate the team to produce the best results, workshop facilitation is sometimes a different matter.

A workshop facilitator must be independent of the topics being discussed and should not contribute facts or opinions to the conversation.

In most general product development workshops, if he/she has the skills, the Scrum Master may facilitate the workshop.

However, if the workshop is to discuss something like modifying the Scrum process, the Scrum Master does have important things to contribute and should not facilitate that workshop.

A framework defines a set of rules or best practices which we can follow in a systematic way to achieve the desired results. There are different types of automation frameworks and the most common ones are:

  • Data Driven Testing Framework
  • Keyword Driven Testing Framework
  • Hybrid Testing Framework
  • Behavioural Driven Framework

If you are a beginner: You can say “No, I didn’t get a chance to create framework from the scratch. I have used the framework which is already available. My contribution is mostly in creating test cases by using the existing framework.”

If you are a beginner but have good knowledge on creating framework: You can say “Yes, I have involved in developing framework along with other automation tester in my company.”

If you are an experienced tester: You can say “I have contributed in developing framework.” or You can say “Yes, I have created framework from the scratch. There was no automation process in my previous company. I designed the framework from the scratch.”

Here we have clearly explained each component of Framework. Check this post to learn more about explain automation framework to the interviewer.

I prefer Selenium Automation Tool because some of the benefits of Selenium to do automation testing are

  • Free and open source – It is a free open source tool. There is no need to allot budget for this tool
  • Help – Have large user base and helping communities.
  • Cross-browser compatibility – It works on almost all popular browsers such as Chrome, Firefox, Internet Explorer, and Safari.
  • Cross Platform compatibility – It works on platforms such as Windows, Linux, Mac.
  • Multiple programming languages – It supports programming languages such as Java, Phyton, Perl, Php, C#, Ruby, etc.,
  • Parallel Execution – Selenium Grid supports parallel execution of Selenium Scripts.
  • Continuous Integration – We can achieve nightly execution using Jenkins.

Selenium is an open source (free) automated testing suite to test web applications. It supports different platforms and browsers. It has gained a lot of popularity in terms of web-based automated testing and giving a great competition to the famous commercial tool HP QTP (Quick Test Professional) AKA HP UFT (Unified Functional Testing).

Selenium is a set of different software tools. Each tool has a different approach in supporting web based automation testing.

It has four components namely,

  1. Selenium IDE (Selenium Integrated Development Environment)
  2. Selenium RC (Selenium Remote Control)
  3. Selenium WebDriver
  4. Selenium Grid

Selenium IDE (Integrated Development Environment) is a Firefox plugin. It is the simplest framework in the Selenium Suite. It allows us to record and playback the scripts. Even though we can create scripts using Selenium IDE, we need to use Selenium RC or Selenium WebDriver to write more advanced and robust test cases.