How Test Automation can help Retailers save big bucks

how-test-automation-can-help-retailers-save-big-bucks

Does anyone remember Circuit City? It was one of the top U.S. electronics retailers that went out of business in 2009, as it couldn’t address the new-age needs of the customers. It finally succumbed to its inability to respond smartly and skilfully to the growing popularity of online retailers like Amazon.com.

As consumer experience goes through a chain of transformations, the retail sector has to get geared up accordingly to deal with the changes. Traditional retailers and giants like Walmart have spent over a decade and innumerable billons to restructure and revamp their brick-and-mortar businesses to address the needs of the online shopper.

In August 2016, Walmart, world’s largest retailer and a predominant player in the big-box stores category announced its $3.3-billion-dollar deal with Jet, the year-old online bulk retailer. It has been cited as the largest deal ever for an e-commerce player. While the deal got sealed, Walmart management acknowledged that its online strategy was not generating the desired results and they required external technology and expertise.

At the same time, strong online brands like Amazon are taking a reverse route with a view to reinforce ‘Omni-channel’ retailing. Amazon created news when it opened its first physical bookstore in Seattle’s University Village. This practice has been observed across various online brands, who have opened their physical stores. The objective is to provide seamless experience to customers across physical, online, mobile interface. However, this poses additional challenge for retailers.

These are amongst the many challenges that the retail sector is facing in the wake of the evolving consumer demands and preferences. As some industry experts say, Out-of-the-box thinking for enhanced productivity and competitive advantage continues to remain a challenge for the retail sector. This is where technology comes to rescue, and when technology has to play an integral part, it needs to get tested for the desired performance.

Whether it is a brick and mortar outlet or an online ecommerce platform, IT has been enabling retailers to tackle market challenges and attend effectively to consumer demands.

What is the criticality of IT/technology in the Retail sector? In literal terms, technology works for you 24*7, which is not expected from a human.

  • Know your customer: While the customer shops at your store, goes to the billing counter and while the items get scanned at the Point of Sale (PoS), the retailer gets every possible data to know the customer better and predict the possible preferences. Segmentation of such purchase patterns further enables retailers to gauge the inventory flow that helps to order the required stocks and avoid any out of stock situation.
  • Planned approach: With the right technology platform in place, retailers get equipped with well-analysed information for enabling the business. This further helps get the right results within timelines. Leveraging the right Technology platform helps manage activities and strategize effectively across offline (physical stores) and online stores.
  • Omni-channel approach: Whether the customer is shopping online or offline, technology platforms help retailers to offer consistent and seamless experience. It further helps manage and control activities from a single dedicated space, which not only provides ease of business, but also turns out to be cost-effective.
  • Seamless customer experience: Ecommerce is rapidly evolving and posing innumerable challenges for the long established retail brands. One of the key factors that e-commerce players are able to offer is flawless and personalized online shopping experience. Online shopping portals are increasingly getting interactive and responsive to the customer needs – right from offering impressive options, ordering, immediate cancellations/exchange, and much more.

That’s why they say, online retail is here to transform, but IT/technology is its biggest Enabler.

Some of the key reasons why some retail biggies fail is that they are unable to harness the technology effectively. What works best is to on-board the required technical, implementation, and test automation expertise to make the technology platform work for you!

The digitally connected universe and the mobile-enabled consumer is changing the shape of the retail industry. The retail industry is exceptionally challenged with high operational overhead and lower profit margins. The overheads comprise, maintaining a chain of retail stores, where the profits expected could be absolutely miniscule. At the same time, IT systems are expected to provide the same levels of quality as across any other industry.

Considering some peculiar challenges that the retail domain has been facing, it demands a much more mature software Testing approach. A strong and seasoned testing partner can build an efficient Software Development Lifecycle (SDLC) process that accelerates software development and build comprehensive testing strategy.

Some key testing challenges that the retail sector needs to address are:

  • Testing of legacy systems: What customer needs is a one-stop shop, where the retailer is big or small, it has to store massive loads of merchandise. Large retailers work with IT systems designed almost 20-30 years back, endlessly releasing software. This makes testing complex and test coverage not so effective. This requires end-to-end testing process to effectively test all applications.
  • Managing promotions: While the retailers promote various promotional coupons or activities, it is imperative to offer them online and manage the activities seamlessly across online and offline platforms, where the required IT applications need to get aligned and functional across multiple retails channels. If there is a delay or an error in configuring and testing the applications, it can adversely impact time-to-market. This requires continuous testing for efficient performance and desired outcome across platforms.
  • Online security & Mobile POS Security: There is an increasing need to establish secure presence across the online platforms. This requires secure software development practices and testing practices that create a security testing framework and tools to make the web/mobile interface secure for the customers.

Moreover, the increasing number of POS applications, POS credit card enabled mobile apps, credit card reader devices, and NFC technology, demand thorough security checks for the core infrastructure. There is an additional need to conduct 24*7 application testing across all retail POS applications.

Independent software testing with effective implementation of Test Automation Center of Excellence (CoE) is the need of hour.

Considering there is a constant need to conduct tests across technology platforms and devices, automating tests for effective and consistent results is a much needed approach. The marketplace is flooded with licensed as well Open-Source test automation tools to accelerate time-to-market and ensure quality with cost-effectiveness. In addition, automating the tests further helps ensure performance of the applications that are expected to give recurring results across stores, e-portals, etc.

One of the leading home furnishing and décor retailers in US teamed up with Gallop’s Test Automation experts to reduce their overall testing efforts with improved quality to deliver enhanced customer experience. The retailer needed a mechanism to establish best QA practices to ensure superior experience for its end customers and most importantly sustain in the rapidly evolving retail scenario.

Gallop leveraged the right combination of tools, best practices, and test methodologies to meet business objectives of the client. Our reusable solution assets further helped to cut the engagement costs over a period of time. The client was able to reduce the testing budgets by 30% by leveraging Gallop’s Retail CoE expertise. Gallop takes precedence in providing Test Automation services and has built a dedicated Automation Center of Excellence (ACoE) that is backed by a decade of experience in executing test automation engagements for global clients.

At Gallop, we have been working with leading enterprises in North America and have served Fortune 500 enterprises & ISVs. Enterprises operating across industries have being leveraging Gallop’s Advisory and IP-led Independent Software testing services to gain higher ROI from their Quality Assurance initiatives.

Connect with us for a comprehensive Test Automation strategy that empowers you to not only reach faster to market, but also sustain profitably in the immensely demanding Retail sector

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Selenium Test Automation Success Reasons & Best Practices

Selenium Test Automation Success Reasons & Best Practices

It is a natural tendency globally that all development groups test their build before deploying and employ testers to identify all the bugs ahead of the release. Manual testing was proving to be the least effective owing to the manual errors and also due to the limitations in testing everything manually. As a solution to this situation, certain repeated tests were automated to increase the testing efficiency.

Automation testing has become critical as it improves accuracy, provides test coverage in short time, and at a low cost. The latest research statistics add more weight to the increasing need of automation testing. As per Transparency Market Research (TMR), the global test automation market, which in 2015 had a valuation of US $12.91 bn, is expected to reach US $85.84 bn by the end of 2024. As per TMR, the market for test automation in North America, which stood at US $5.70 bn in 2015, is expected to be worth US $29.78 bn by 2024. The region is thus likely to exhibit a CAGR of 20.3% during the forecast period. The region also held approximately 44% in the overall market in 2014. It is also expected to report lucrative prospects for security testing. The rapid deployment of mobile applications and Software as a Service (SaaS) on cloud will be dominant in driving market for test automation in North America.

There are multiple options available for testing automation to choose from based on the requirement, size of the project, turnaround time so on. Licensed automation tools such as QTP, WinRunner, Test complete, Ranorex, QA Wizard Pro, Silk Test, QA Test and Rational Robot are available to perform functional, regression and performance testing. Open source automation tools such as Selenium, SOAP UI, Robotium, WebDriver, Jmeter, Junit so on are also available to perform functional, regression and performance testing.

As per TMR report, sale from the functional testing segment is expected to be highest during the forecast period (2015 to 2024), followed by mobile testing and QA process design. The functional testing segment accounted for the dominant share of 23.2% in the market in 2015. It is expected to significantly gain from the continuously growing agile development practices and open source tools will have a dominant role to play. Normally companies/testers prefer open source tools to perform functional testing, and Selenium functional testing tool is considered the best open source tool available to test web applications at no cost.

Reasons

The main reason for the success of Selenium is that the tests can be coded in any number of programming languages, they can be run directly in web browsers, and work across operating systems.

The second reason for the success of Selenium as the most powerful automation tool are its features that are simple to use – its capable user interfaces help meet 90% needs of web application testers. Document object model (DOM) level testing, great extensibility and flexibility, support for multiple browsers, accommodating object oriented programming languages like JAVA, .NET, Ruby, Perl, PHP, etc., provides the option of using wide range of IDEs based on the choice of development languages and more of these make it a preferred choice for many testers.

Best Practices

Based on Gallop’s experience of leveraging Selenium for test automation, we recommend the following practices:

Best PracticesUsing Selenium, we at Gallop help clients leverage benefits of custom Selenium Test Automation frameworks. Leveraging proprietary test accelerators, we jump start test automation and reduce the automation cycle-time. Gallop’s IP-led Selenium Automation Framework is a proven and tested framework having 90+ function libraries to directly jump start your test automation projects or complement your existing test automation suite.

We are hosting a Webinar on Sneak Peek into Selenium 3.0 on 31st August 2016, 11AM EST that will cover the Selenium road map beyond 3.0, that is, 4.0, and 5.0. RSVP for the webinar today!

Selenium Test Automation Success: Reasons & Best Practices

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Accelerating Time to Market through Next-Gen Test Automation

agile testing, devops testing, test automation, next gen test automation, continuous testing, continuous delivery, continuous testing, test automation framework, test design, test execution, performance testing, quality assurance testing, software testing services, software testing company, selenium test automation, selenium test automation framework

Accelerating time to market has become the standard requirement for the organizations across all verticals and domains. With Agile and DevOps taking the center stage for the software development process, it is becoming very important to assure higher quality to the applications. Next-gen test automation can provide the necessary catalyst for the organizations looking to achieve their goals in the era of CI, CD and CT.

Quality is the most important factor when it comes to gauging the success of the software application as it is directly related to the customer experience. Continuous delivery and agile execution strategy for your software application need to have software testing as the central element to ensure that your goal is met.

So how do you achieve this?

Agile and DevOps has made it easy to a certain extent by bringing developers, testers, operations team, product owners and the business on the same discussion table. As the features get decided by the product managers, the quality and risk of those features are also being discussed and developers and testers can decide on the right unit testing and test automation framework needed to have that perfect deliverable. You surely do not want to Ship the broken code quicker to market right. That’s when the Next-gen automation framework helps you achieve your goal.

It becomes really difficult for the organizations to go the manual testing way if they want to adhere to their goal of Quick time to market. Creating, executing and maintaining manual tests can be a real pain especially at scale. Also with consistent pressure for the business to deliver the features quick, it can be a really stressful situation for the manual testers and the end result cannot guarantee the result which is expected. This puts test automation as the central element of your Continuous delivery approach towards quicker time to market.

With plethora of testing tools available in the market, it is important that your test automation framework adapts to the needs of the software application requirement. It needs to be dynamic and flexible at the same time to deliver the ultimate goal. The right test automation framework binds all the elements together and makes sure that the various CI, CD and testing tools are integrated to handle the large volume of data, test results as the application grows. It should also give quick insights into what is going wrong, why it went wrong and how to fix it without spending significant amount of time.

The right test automation framework encompasses various factors like scope of test automation, scalability of the approach, extent of reusability, and more importantly the metrics to measure the success of your test automation. At the same time, it needs to be comprehensive enough to encompass the code analysis, unit, functional, performance, regression and stability tests, usability analyses for the all the features of the software application or app.

At Gallop, we strive hard to achieve this by having a 35000 feet view for the CIOs of the company as well as various other stakeholders. Below is the typical screenshot of the typical metrics we measure for Test Automation with our In-house CIO Dashboard tool.

agile testing, devops testing, test automation, next gen test automation, continuous testing, continuous delivery, continuous testing, test automation framework, test design, test execution, performance testing, quality assurance testing, software testing services, software testing company, selenium test automation, selenium test automation framework

Going forward, Agile & DevOps are going to be de facto standard for the software development process. With this, the next-gen test automation framework and IP led accelerators will drive the testing transformations across industries. At Gallop, we have a continuous test delivery platform and right test accelerators to ensure you meet your goal. Contact us if you are looking to Accelerate Time to Market for your next-gen application or mobile app.

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Cloud Testing: Using Selenium to Test Mobile Web Apps in the Cloud

Using Selenium to Test Mobile Web Apps in the Cloud, cloud testing, mobile testing, mobile test automation, selenium testing, mobile web apps in cloud, software testing, cloud testing services, selenium test automation, selenium automation framework, software testing company, quality assurance testing, gallop, gallop solutions review, gallop solutions

Today’s Software applications are mostly web based and with the Cloud infrastructure gaining prominence, they are mostly deployed on Cloud servers. Cloud infra offers unlimited storage, quick availability and can be scaled as desired. With no upfront investment, cloud is turning out to be the really cost-effective solution offering multiple choices for software developers. The way testing is done has also changed with this disruption as organizations need not build and maintain in-house testing facilities that mimic real-time environments.

Cloud-based Testing has emerged as the best way of testing with a compelling combination of lower costs, pay-per-use models, scalability and flexibility it offers. It can also address the ramping demands for sophisticated test environments.

As the number of mobile Oss, browsers and platform combinations are growing, it is getting difficult to test the mobile apps on the possible real time combinations. Applications are now becoming dynamic, complex, distributed and component-based, creating a multiplicity of new challenges for testing teams. And the Cloud-based test automation has emerged as the potential savior. Testing in the cloud leverages the cloud computing infrastructure, reducing the unit cost of computing, while increasing testing effectiveness.

Selenium is unarguably the most widely used open source solution to meet the needs of your testing project. Selenium can be successfully used with cloud services to test mobile apps across multiple browsers and platforms. Selenium interacts with web browsers to test actions, inputs, and expected outcomes to improve device and platform coverage.

If you are using Selenium, then you know that it is difficult to provision, run, and maintain your own set of machines and setting up something like Selenium Grid to coordinate tests across them.

Sauce Labs is one of the good solution which lets you execute tests recorded in Selenium on a cloud-based emulation system across multiple devices, browsers, and platform configurations. It is important to develop mobile application tests with extensive coverage—and minimal test script maintenance which is what cloud ensures. Saucelabs can be optimized for testing in a continuous integration workflow with a focus on reliability and scale. By running tests concurrently on Cloud, you can keep your build quick without sacrificing coverage.

A typical Saucelabs test on cloud runs something like this:

  • Open a specified browser in Sauce Labs
  • Test runs
  • Browser closes
  • Test results (along with a video recording, screenshots, and other debugging information) are available on the job dashboard

So if you are looking to run the selenium tests completely in the Cloud then you need to have a CI tool like Jenkins or Travis to set up your tests. You can then configure CI with Sauce to run your Selenium tests.

I have also found an interesting tool called Nerrvana which you can try. It claims to record in Selenium IDE and run in the Selenium cloud.

Moving testing to the cloud is something which should be discussed with all the stakeholders and a proof of concept should be done before going full fledge into cloud testing. It is more of a cultural and process shift which should be handled while moving to cloud. A proper ROI analysis before moving ahead can let you identify the range of benefits which cloud testing can deliver.

Selenium comes as a proper fit for cloud based testing because of its open source nature. You can either setup your own selenium grid in cloud or use something like sauce which is an off the shelf solution.

Selenium can be easily setup on Amazon EC2. You need to create Amazon AWS and EC2 accounts and create web service access keys and setup environment and install Selenium Grid.

The cloud-based testing comes with lot of resource flexibility and reduced security concerns, compared with the issues organizations face when considering placing production data and applications in the cloud. As an organization, you need to asses whether you will be using a public cloud or the private cloud based on your needs.

Gallop is an experts in using Selenium IDE, RC and WebDriver / Selenium 2 for test automation of Web and Mobile Applications. We have leveraged Selenium for various clients and deployed the Selenium Grid on the cloud integrating it with Continuous integration tools for successful test automation of mobile apps. If you are looking for Selenium testing services, feel free to drop us a message and we will be glad to assist you.

Mobile Test Automation, Mobile Testing, Mobile Application Testing, Testing a Mobile Application, Mobile Testing Blogs

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

8 Things to Define for Successful Large Scale Test Automation Implementation

8 Things to Define for Successful Large Scale Test Automation Implementation

Though automation testing does not look a very lucrative or a viable option first hand due to the costs involved with regards to setting up the environment or the tools themselves – in the long run, its benefits surely surpass the initial hiccups. That said, like there’s a method for every madness, to maximize your ROI using Test Automation, you need to have a very specific plan of action.

Kalyan Rao Konda, President of Gallop — one of the largest companies that specialize in providing testing services — told Joe Colantonio in an exclusive interview that while people usually approach test automation from a technical aspect, and they actually forget the business side of it.

Kalyan also mentioned that more often than not, the “large product development companies and also in large enterprises like banks, insurance and healthcare, … (are) organized in business units by product development groups.” This results in everybody approaching automation in their own way using different set of tools, which creates an atmosphere of inconsistency.

So, what really might constitute the best way of implementing test automation so as to maximize ROI? To start with, the following need to be defined to achieve the target:

  1. Define the Product Roadmap: Kalyan again says that before organizations begin automating anything, they must ensure that they have an end goal in mind. There should be absolute clarity on what do the organizations need to automate, lest there be confusion and chaos around the whole process and the efforts prove to be a big scale failure. The effort being put in towards test automation must not be treated as an afterthought, but rather it must be given due importance at the beginning of a project itself.
  2. Define the Test Process: To meet the roadmap defined, a clear definition of the test process is a must. This process must be defined keeping in mind the risks, costs, and trainings involved while implementing test automation.
  3. Define the Framework: Whether an organization selects a data-driven or a keyword-driven framework, or a mix of both, defining and selecting the framework will have a definite and a positive impact on your ROI as it will help you implement the roadmap you defined earlier.
  4. Define the Tools to be used: While testers can choose from a wide variety of solutions, erroneous decisions regarding the test automation tools can lead to effects that may not be reversible. Hence, selecting the right tools is a business-critical requirement for ensuring successful test runs. All variables such as integration capabilities, installation requirements, overall cost, maintenance, and compatibility with the testing environment must be kept in mind while deciding upon a tool.
  5. Define the scope of Script Management: The scope of script management usually hovers around the broad areas of standard processes that are well documented, logging the errors that are generated, and most importantly testing if the script written is able to withstand unexpected behaviours.
  6. Define the Manual Effort still required: Automation is an end result of a lot of manual activities such as script and test case writing, setting up the machines and then selecting the tests, and once the test is run – analyze the results. These are by no means tasks that can be done in a jiffy, and need to be planned for – both in terms of costs and efforts.
  7. Define the Testing Team: If an organization understands the importance of the manual effort required, it must then give due diligence while planning the work and effort estimation with regards to the team size and the skills required for the implementation of test automation.
  8. Define what will be the True Measure of your success: A few good examples of this definition may include measuring benefits such as faster go-to-market time, improved ROI, or, on the other hand, that the number of bugs have increased.

Defining the above surely requires a lot of forethought being given to their execution, test automation implementation at an organization so that the efforts do not go in vain.

If you are a large organization trying to implement an automation strategy, Contact Gallop’s team of test automation experts and our tool agnostic test automation framework that consists of a huge library of keywords that helps you build your tests quickly and efficiently, and seamlessly integrates with leading commercial and open source tools.

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Selecting a Programming Language to build Selenium Test Automation Suite

Selecting a Programming Language to build Selenium Test Automation Suite

Selenium is a widely used open source, portable software testing framework for web applications. Though Selenium comes with a test domain specific language (Selenese), other programming languages (Java, C#, Ruby, Python) can be used to script tests as well. Tests made in other languages communicate with Selenium via calling methods in the Selenium Client API. Selenium is therefore client language neutral.

All organizations shifting to Selenium for their web app testing face one common question:

What language do we select to build Selenium based test automation suites?

Let’s start off by looking at programming languages as a whole. Though many different languages exist and new ones are still being created, one must note that, roughly 90% of the concepts one learns in a specific language are also applicable to entirely different languages. When one is familiar with the core basics (program design, control structures, data structures, and basic operation of a programming language), developing similar skills with another language simply boils down to understanding the syntactical nuances.

So, which language should one pick? As an individual, the answer is straightforward: go with what you’re most comfortable with.

Dima Kovalenko, in his book titled Selenium Design Patterns and Best Practices, illustrates the flexibility of Selenium, by showing how some common Selenium command sendkeys translate across major scripting languages.

Consistency offered by the WebDriver API across languages, simplifies the process of porting test knowledge of one language to another. Test engineers become greater assets to their organizations as they can be relocated to any web project, written in any programming language, and still be able to create tests for it instantly.

Uniformity between different Selenium bindings is applicable to most commands in the Selenium API. But, one must note that the quoted example is a little oversimplified. Action commands are framed in the same format in every language. But when using different languages to script code, over time, differences will become apparent between the languages. Therefore, actions that function well in a particular language might be redundant and counter intuitive in a different one.

As explained above, no clear favorite emerges when choosing a scripting language for Selenium. But which one should an organization select?

The answer to this question is less straightforward. Some factors have to be considered:

  • The current language being used by an enterprise for development: If an organization has everyone using Python, then that should be the ideal language to use.
    • Introducing a new language isn’t easy. Using a language that QA testers are already comfortable with, is the most convenient choice. It is also much harder to operate Selenium using a new language.
  • Local support for the programming language should also be considered. If local developers are experienced with a particular language, then that language is a better choice for QA teams. In case testers require help with the language, defects, or development tools, it becomes easier to make use of the already available in-house expertise.
  • For individuals who haven’t programmed before, using script-friendly languages like Python, Ruby etc. could be the best way to go. They have an easy learning curve, and also allow Selenium tests to be written quickly and with less code.
  • Java is the most commonly used language, but its scripts can be complex because of the relatively complicated syntax.

When all is said and done, every language has something unique to offer, and so there is no absolute winner. Selecting the most appropriate language comes down to the team’s particular situation, and what they’re trying to accomplish. It is important in this regard to seek some guidance and real-world help from players who have some experience in the field, and whose insights can aid you when making that crucial pre-development decision.

At Gallop, we have in-depth expertise in providing Selenium test automation services. Our Selenium Test Automation Services cover a wide range of browser, OS, and device combinations, and provide an end-to-end cross-browser test automation solution. Leverage the experience of Gallops’ top Selenium experts and Contact us today.

REFERENCE:

  1. Selenium Design Patterns and Best Practices, Dima Kovalenko

http://cdn.oreillystatic.com/oreilly/booksamplers/packt/9781783982707_Sample.pdf

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Leveraging Selenium Grid in Public/Private Cloud

Leveraging Selenium Grid in Public/Private Cloud

Selenium-Grid is a method of testing using Selenium that enables simultaneous testing on different devices running different operating systems and browsers; basically a number of machines running multiple tests in parallel. Selenium Grid has two versions at the moment – Grid 1 and Grid 2 – but the newer Grid 2 is now more widely used. It has been designed to follow a hub and node fashion, where a single device known as the hub runs the test, and the nodes are constituted of various other machines that do the execution. Selenium-Grid supports distributed test execution.

When should one use Selenium-Grid?

Usually, there are two reasons for using Selenium-Grid.

  1. To run tests against multiple browsers (even varying versions of the same browser) running on different operating systems on different devices.
  2. To significantly reduce time consumed for a test suite to complete a test pass.

A Selenium-Grid is extremely useful for reducing time on large and long-running test suites by executing the test pass on multiple machines at the same time, thereby dividing the time consumed by the number of machines used. This allows teams using Agile software development to receive test feedback faster. As mentioned earlier, another feature is being able to run tests on multiple environments (browsers, browser versions, machines, operating systems) at the same time.

Since the core idea is to run automated tests with Selenium, the ability to scale your testing is paramount. Therefore, organizations look to build a local infrastructure that can help scale their testing or be able to test against more browsers or operating system platforms. The infrastructure, however, comes at a significant cost, and so becomes cumbersome to maintain. A large organization can afford to run such a setup, which offers its own benefits, such as control over the system, and greater efficiency. But the downsides are high setup costs and getting fault positives because of infrastructure malfunctions.

The alternative is to implement a public/private cloud service to help scale up test suites.

Selenium Grid

Clouds and Selenium-Grid

Using a public/private cloud enables the use of Selenium-Grid on the cloud, thereby entirely eradicating the need for any infrastructure and ensuing maintenance costs. A cloud-based testing bed is much more convenient to implement as depending on the cloud service provider one can immediately gain access to a large number of browser and operating system platforms to be able to test one’s mobile and web applications. Clouds are available for use throughout the day and help substantially increase developer productivity. Also, the use of a cloud provides various feedback mechanisms such as logging, screenshots and video support, thereby appreciably reducing debugging times.

Some of the benefits of using the cloud are:

  1. Support for any new testing platform or updates for existing ones is almost immediate. In the case of using actual infrastructure it could take weeks or months to source the required hardware to run tests depending on the testing platform – for example, a new operating system for a mobile device. But the cloud is updated almost instantly with the latest platforms that hit the market, be it a new browser version or support for a new type of device.
  2. Another feature of a public/private cloud is the ability to scale testing based on one’s specific requirements. It is up to you if you wish to choose to test against 10 or 50 browsers at the same time. The cloud is usually on standby and will create Virtual Machines based on your requests and needs.
  3. As already mentioned before, debugging becomes appreciably easier. Screenshots and videos are recorded at every step, so with this kind of visual information it becomes much easier to pin-point a test failure instead of having to wade through a complex Selenium log.

The only downside to using a cloud is that since one has to use the internet the use of a cloud is usually much slower as compared to a local grid, because the test has to travel to and from the cloud via a network that might not always be reliable. This issue can be worked around by running many parallel test runs, which shortens the overall testing time.

* On June 1, 2015, SeleniumHQ labeled Gallop Solutions as an Silver Level Sponsor on their official website, www.seleniumhq.org. This recognition confirms Gallop’s position as a specialized software testing service provider, committed to making sure clients get value from their QA investments. Contact Gallop for you Selenium Test Automation needs.

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

Challenges and Solutions in Managing Selenium Test Automation Projects

Challenges and Solutions in Managing Selenium Test Automation Projects

Selenium is a well-known open source testing tool, which provides a robust set of tools that supports rapid development of test automation for web-based applications. It provides a vast set of testing functions designed to fit the needs of testing web applications. Operations in Selenium allow many options for locating UI elements and methods to compare expected test results with actual real-world application behavior. It also supports almost all web browsers to run test cases and also supports many different programming languages to help create or modify test scripts. Languages such as: Java, Ruby, PHP, .Net, C#, Perl, etc.

Challenges faced using selenium automation testing, and how to solve them

Selenium at times fails to function correctly if a dynamic event or change takes place during the test cycle. A few common problems faced are listed below, along with how to mitigate them with selenium test automation.

  1. Dealing with pop-up windows: Selenium can sometimes fail to record common popups in web apps. To handle any kind of alert popup, you can apply a getAlert function. Before actually running the script, you must import a package that can generate a WebDriver script for handling alerts. The efficient interface brings with it the following commands: void dismiss(), void accept (), getText(), void sendKeys(String stringToSend). The first two basically click on the “cancel” and “OK” buttons respectively on a popup window.
  2. No event trigger from value changes: Because Selenium does not initiate events with a change in values, one must do it oneself using fireEvent: selenium.FireEvent(cmbCategory, “onchange”);
  3. Timeout resulting from synchronization problems: One should ideally use selenium.IsElementPresent(locator) to verify that the object is in a loop with Thread.Sleep
  4. Testing Flash apps: To automate flash apps with Selenium, one can use Flex Monkium. The application source code must be compiled with the swc files generated by Flex Monkium. Then the app and the Selenium IDE are connected, and the tests can be recorded with IDE.
  5. Unexpected error launching Internet Explorer. Browser zoom level should be set to 100% by default for the IE browser to overcome this error
  6. Protected Mode must be set to the same valueerror occurs when trying to run Selenium WebDriver on a fresh Windows machine. This issue can be fixed by using capabilities as below when launching IE

DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(caps);

* On June 1, 2015, SeleniumHQ labeled Gallop Solutions as an Aluminum Level Sponsor on their official website, www.seleniumhq.org. This recognition confirms Gallop’s position as a specialized software testing service provider, committed to making sure clients get value from their QA investments. Attending Selenium Conference 2015 at Portland, Oregon on Sep 8-10th 2015? Schedule a meeting with us.

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

How to successfully automate responsive web applications with Selenium

How to successfully automate responsive web applications with Selenium

The vast majority of software applications today are first written for the web. We’re in an age of incredibly interactive, responsive processes that require Agile testing methods, and so automation is now turning out to be nothing short of mandatory for most software testing programs.

So in the case of responsive web apps, it is absolutely crucial to verify that a particular page is rendered correctly at the most popular usage resolutions. This kind of verification has traditionally been done with a manual method at the very end of a given workflow. The result of such an approach is that there are quite often defects and bugs that delay the eventual release of the app.

The solution is to automate the testing of responsive web apps in order to get the required feedback. But first, let’s take a look at what responsive web design entails.

A definition of responsive web design

This is the approach you take to give visitors an optimal viewing experience – essentially to ease and simply the navigation and reading experience by getting rid of much of the panning, scrolling, resizing, etc that makes other websites tedious. The design covers all devices (desktops, laptops, tablets, mobile phones).

Obstacles to responsive web testing

Because of the sheer variety of devices people use to browse the web these days, there’s a crucial need for testing responsive web apps. The first issue, of course, is ensuring that the website functions well on any device, on any operating system. However, it is impractical to test all the devices in the market. Mobile devices and computers have different interfaces and different methods of user interaction, and therefore a website needs to be tailored to the particular requirements of each device. Therefore responsive web app design needs to account for these differences.

The Solution: Selenium

Selenium is a robust, easy to use toolset that facilitates test automation for web applications. It also comes fitted with a number of testing functions tailored to the requirements of such web applications, and the highly flexible nature of its functionality encourages the easy identification of UI elements. The most important benefit is that the predicted test results can be seamlessly compared with the real-time behavior of the particular application under review.

Selenium WebDriver is an automated tool that takes care of a few critical areas.

  1. The tool can be used together with various other tools to expand the overall test coverage and the number and variety of devices and operating systems on which to conduct the tests.
  2. The tool can take screenshots of the browser pages to conduct a real-time visual check and assess how the localized text appears on a variety of webpages. The screenshots allow quick and easy verification.

Essentials of Selenium Test Automation:

  1. You should first use the Selenium IDE in Firefox to generate a script.
  2. After recording the scripts, identify the locations where assertions are needed, and add them there if required.
  3. Then you can format the test in a language that works best for you.
  4. After converting the script into your selected language, use Selenium Server to run the scripts.
  5. In order to run your script, however, you will require a client driver to support your language.
  6. IDE’s such as Eclipse would also be required to enhance the script.
  7. Finally, the script needs to be integrated and operated in the form of a suite, and for this you would require integration tools such as Maven.

Selenium should be used ideally to verify the workflow, but shouldn’t be put in the main development build. They should instead be allowed to run overnight, on dedicated machines programmed to run these tests.

* On June 1, 2015, SeleniumHQ labeled Gallop Solutions as an Aluminum Level Sponsor on their official website, www.seleniumhq.org. This recognition confirms Gallop’s position as a specialized software testing service provider, committed to making sure clients get value from their QA investments. Contact us to know more about our Selenium Testing Services.

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.

How to Succeed with Selenium: Open Source Test Automation Tool

How to Succeed with Selenium Open Source Test Automation Tool?

In software development, it is a common practice to adopt test automation, once the software completes the stable phase of manual testing. Every organization thinks of automated testing as a way to cut down manual testing costs. The cost of testing is significant for any software project and organizations are keen to invest in open source testing tools than expensive commercial testing suites. There are varieties of open source testing tools available online, but this blog explores factors to succeed with the open source web automation tool – Selenium.

Why Selenium Testing

Selenium is one of the popular automated website testing tools available online and is used to test GUI and functionality of the website. Selenium is easy to get started with and any novice tester can handle it with minimum difficulties. Here are more reasons to select Selenium:

  • Selenium can run on any mainstream browser.
  • Selenium supports tests in many languages such as JAVA, C#, Python, Ruby, Perl and more.
  • Selenium can be operated on your local computer, a third-party cloud server, on a server (with selenium remote) and on set of servers (with selenium grid).
  • Selenium allows testers to write their own tests and run them across multiple browsers.

However, here are certain things to keep in mind when you decide to go with Selenium:

  • Clear Understanding of Vision and Scope of Testing
    A thorough preparation is needed to succeed with Selenium. First of all you need to chart out a testing strategy and for that you need to outline following basics regarding the application– your revenue model, expected user behavior with application and type of browsers they might use and problems experienced with the application.
  • Select An Appropriate Programming Language for Test Automation
    Selecting an appropriate programming language for writing acceptance tests for your website or application is a very important step to consider. It is always a best practice to consult with your application development team and understand their experiences and proficiencies with a particular language. A point to remember: functional knowledge of a chosen language is critical to evaluate the appropriateness of automated tests.
  • Pick an Appropriate Text Editor
    In order to succeed with tests, you need to select an appropriate text editor. If you are a new tester and inexperienced with text editors, it is better to stick with something as basic as Sublime Text editor.
  • Features of a Good Acceptance Test
    While creating new acceptance tests, you should keep these things in mind – tests should be descriptive, autonomous, atomic, should cope up with a test runner and should adhere to version control. Ensure that you create resilient test cases that specify an action or the time.
  • Make it Robot and Human Friendly
    It is important to follow a simple testing architecture that is accessible to robots and humans as well.

    • Simplify test code with set up and tear down actions
    • Create a new spec file and store your tests in it
    • Follow simple tagging
    • Reporting – Junit, XML output (for robots) and screenshot, logs, videos for humans)
  • Scaling
    You can scale automated tests through cloud execution, continuous integration and parallelization.

If you are skeptical about the success of selenium automated tests, Gallop consultants can work with your team to maximize your productivity and returns with automated selenium tests.

Gallop has developed Gallop Test Automation Accelerator Kit (GTAAK) that offers tool agnostic framework, reusable object library as well as guidelines on best practices for automation. Get in touch with experts at Gallop to know more about Selenium Testing.

 

The opinions expressed in this blog are author's and don't necessarily represent Gallop's positions, strategies or opinions.