There is no such statement as ‘I am now prepared for the interview‘. When facing a Testing interview no matter how many interview questions and answers you have gone through – there is always more to read ? Continuing on our Interview questions series, let’s see some more interesting FAQs …
Agile and Selenium Automation Testing Interview FAQs
There are three core roles in the Agile-scrum methodology
- Product Owner: Champion for Business! Product owners represent the customer’s interests and are focused on understanding business and market requirements. Product Owners bridge the communication gap between the team and its stakeholders – writes customer-centric items (typically user stories), prioritizes them based on importance and dependencies, adds them to the Product Backlog, demonstrates the solution to key stakeholders, defines and announces releases, communicates team status, organizes milestone reviews, educates stakeholders in the development process, negotiates priorities, scope, funding, and schedule and ensures that the Product Backlog is visible, transparent, and clear. Keep in mind that a product owner is not a project manager.
- Scrum Team: Champions for sustainable development practices! The Scrum Team is responsible for delivering potentially shippable increments of product at the end of each Sprint. The team does the actual work (analyse, design, develop, test, technical communication, document, etc.).
- Scrum Master: Champion for Scrum! They coach the team, the product owner, and the business on the scrum process and look for ways to fine-tune their practice of it. The Scrum Master acts as a facilitator for the Product Owner and the team, who is accountable for removing impediments to the ability of the team to deliver the sprint goals and deliverables.
Sprint (or iteration) is the heart of Scrum. The Sprint is a time-boxed effort; that is, it is restricted to a specific duration and is normally between one week and one month, with two weeks being the most common. A shippable product Increment is released at the end of each sprint.
Scrum calls for below ceremonies that bring structure to each sprint:
- Sprint Planning: Held at the start of each sprint to define the Sprint Backlog (importing stories from the Product/Release backlog), i.e. items that can be completed in the current sprint.
- Daily Scrum: Presided over by the Scrum Master, Daily Scrum is a 15-minute stand-up meeting to synchronize the work of team members, i.e. what’s done on the prior day, what needs to be done today, and identify any impediments.
- Sprint Review: Held at the end of each sprint to demonstrate the added functionality. The goal is to get feedback from the product owner and other stakeholders to ensure that the delivered increment met the business need and to revise the Product Backlog based on the feedback.
- Sprint Retrospective: Held at the end of each sprint to reflect on the completed sprint and identify opportunities to improve in the next – what went well, what did not and what can be improved.
When Ken and Jeff created the scrum process in 1993, they inherited the name ‘Scrum’ from the 1986 groundbreaking paper ‘The New Product Development Game’ by Takeuchi and Nonaka, two acknowledged management thinkers. With the term ‘Scrum’ Nonaka and Takeuchi referred to the game of rugby to stress the importance of teams in the game of new product development – comparing high-performing, cross-functional teams to the scrum formation used by Rugby teams. They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, where the team “tries to go the distance as a unit, passing the ball back and forth”. In rugby football, a scrum refers to a tight-packed formation of players with their heads down who attempt to gain possession of the ball. Teams require autonomy to achieve excellence.
What many people ignore is the fact that Regression Testing serves dual purpose – building the confidence that major functionalities are working as expected (no side-effect) + identifying any residual defects (side-effects). It is imperative to draft a proper approach including Regression Testing Best practices for a successful project delivery and avoid any future embarrassments (production defects).
What comes to your mind when you hear “Automation Testing”? Yeah! Computerized testing without human intervention. But how does computer know what to do? Yeah! Via Automation script written by a human using any programming language. And how does Automation script comes to know where to click in the application? Yeah! Just like human mind identifies different fields (or application components) by identifying its type like textbox or drop-down, label like ‘Account Number’ or ‘Username’, tool-tip message, etc. – similarly there has to be a way for automation script to identify different elements on an application page. We call it Element Locators in Selenium Webdriver – The Eyes (Senses)!
The set of allowed properties or the mechanism to uniquely identify the element is known as Element Locators in Selenium Webdriver, i.e. HTML properties of a web element which tells the Selenium about the web element it need to perform action on. The Element Locators in Selenium Webdriver are:
- Id: looks for an element in the webpage with the ‘id’ attribute, i.e. driver.findElement(By.id(“email”))
- Name: looks for an element in the webpage with ‘name’ attribute value, i.e. findElement(By.name(“email”))
- Link: to select links only: link = the text of the link. i.e. Driver.findElement(By.linkText(“Forgotten account?”)) for HTML property <a href=”https://www.facebook.com/recover/initiate?lwv=110″>Forgotten account?</a>
- XPath (XML Path): The most popular of all Element Locators. E.g. html/head/body/table/tr/td. For Selenium driver.find_element_by_xpath(“//*[@id=’email’]”)
- CSS (Cascaded Spread Sheets): string patterns used to identify an element based on a combination of HTML tag, id, class, and attributes. Syntax – css=tag[attribute=value]. i.e. css=input[id=email]
We can enter the text using ‘sendKeys’ method, i.e. Identify the element (textbox) >> Enter text.
WebElement Searchbox = driver.findElement(By.id("lst-ib")); //WebElement Searchbox = driver.findElement(By.name("q")); //WebElement Searchbox = driver.findElement(By.xpath("//input[@id='lst-ib']")); //WebElement Searchbox = driver.findElement(By.xpath("//input[@title='Search']")); Searchbox.sendKeys("Software Testing Studio");
It’s quite simple, using ‘click’ method, i.e. Identify the element (button) >> Click.
WebElement EmailID = driver.findElement(By.id("Email")); EmailID.sendKeys("email@example.com"); WebElement bNext = driver.findElement(By.id("next")); bNext.click();
To select a drop-down value, we use the ‘Select’ class object in Selenium Webdriver. Post that you can select a particular value using index, visible text OR by value!
Select Day = new Select(driver.findElement(By.id("day"))); Select Month = new Select(driver.findElement(By.name("birthday_month"))); Select Year = new Select(driver.findElement(By.xpath("//select[@title='Year']"))); Day.selectByIndex(27); Month.selectByVisibleText("Dec"); Year.selectByValue("1987");