Blog

Accelerating Software QA Automation ROI with Templates

It’s been a while since I started working in QA Automation.  I began  in 2007 and since that time I have been part of a variety of teams, with different methodologies and objectives that included some type of an automation initiative.  Of course they were all striving for more stable code and a more effective way to find and fix bugs – but they had something else in common: they all wanted to have the automation framework deployed as soon as possible. Desiring the rapid deployment of automation is common, but it is not always achievable for a multitude of reasons. A couple of common issues: The Automation engineer is simultaneously working as manual tester limiting their ability to focus on the implementation and maintenance of the framework. Or the software under test is not yet prepared for automation because it is unstable and the Automation engineer spends a lot of time doing rework and workarounds. Based on the above types of challenges, we developed a Testing Automation Framework Template.  This template has helped us to reduce the time required to deliver on client’s projects. We realized that almost every Selenium project has a similar nature and common functionality that can be reused.  For example –  the Driver Utility associated with the actions that simulates the user behavior within the application. Or the manipulation and creation of the repository of elements that keeps all the components that will be used in the framework. At a high-level, it is also very likely that some methods will be reused across projects, such as the login or creation of a user. These... read more

Innovation – by a QA team?

We often hear how innovation is now one of the key considerations to building and maintaining a successful business.   I don’t consider myself very creative, especially when it comes to designing and developing technical solutions.  So, it’s always rewarding (and impressive to me) when I see our team members innovate for their clients – taking an idea (based on need) through to developing a tangible solution, that generates actual tangible results. There is no doubt that necessity is still the mother of invention. We have two recent examples from our QA team.  Alex Chaves – our Nearshore QA manager and Senior QA Engineer, created a simple but effective application that allows our clients to get a “jump start” on automation.  We’re calling it our QA Accelerator for the time being.   Alex recognized that many Selenium QA projects require similar activities to establish the framework, which resulted in time and material cost for our clients.  Alex built the tool, and recently applied it to one of his client’s environments.   The reaction from the client CIO was – “Wow, I can’t believe we actually saw automation results so quickly! Outstanding”. As we know, that type of client feedback is worth its weight in gold. Meanwhile, one of our other Senior Automation Engineers, Daniel Guzman, was faced with designing and implementing a framework for a client using NodeJS for a Mobile automation project.   This was not only something new for Daniel, but there seemed to be a lack of examples of third party solutions to draw from.   Consequently, Daniel developed a solution that he knew would not only perform well, but be... read more

WebdriverIO and Sauce Labs for Mobile Ecosystem

By: Daniel Guzman – GlobalNow Senior QA Automation Engineer I previously shared my experience of integrating WebdriverIO and Sauce Labs for a new NodeJS web test framework. I’ve now implemented the same framework for the mobile portion of the project, and as promised in my last blog, below is a brief summary of my findings and experience: Why use the same tools? One of the most important considerations when architecting web and mobile solutions is to reuse the same stack of tools as much as possible. Although often web apps/tools don’t easily integrate with mobile solutions, in this case we were successful which resulted in significant time savings. In addition to saving time, I had two other reasons for reusing the code from my web framework. First, I’m often frustrated by projects that do not follow any kind of standard architecture. A standard framework helps programmers from different projects get up to speed quickly for enhancement development and ongoing application support. Second reason is that by using a standard test framework across projects, I am better able to support hybrid test cases: to cover scenarios where I need to perform some action in the mobile app, then check or do some other action on web side, or the other way around. Cucumber and Chai! Using Behavior Driven (BDD) Cucumber and Chai frameworks was a natural fit for Appium and Sauce Labs. BDD is something I learned to appreciate quite some time ago. It’s not only an approach that we developers like, but also Business Analysts and supporting team members. When I started my current project, most of test cases... read more

Using NodeJS with WebdriverIO as a test framework for automation

By: Daniel Guzman – GlobalNow Senior QA Automation Engineer Whether you are a developer or the architect responsible for deciding the stack of tools and languages to build your functional test framework, the following may motivate you to write your UI automated framework in NodeJS with WebdriverIO – by outlining the benefits of using a full stack approach. My introduction from my “0 out of 2” experience! I will never forget that moment, when I realized I knew “0 out of 2”, instead “1 out of 2”. Let me explain it: As a QA Automation Engineer, I was told to develop a testing framework for web and mobile platforms as part of my first project at my new position at GlobalNow IT. I wanted to quickly build the basis of a web system, in order to have it running, and then analyze deeper the best mobile language and tools to use based on current technology. I initially understood that .NET would be the selected framework for this, so after putting together a simple test with Selenium, C# and Visual Studio, and showing it to the team, the project architect gently tells me I am not allowed to develop on C# or Java (which were the two main programming languages for which I am most experienced).  Instead, I was asked to write our test framework in NodeJS. Yes, I was in that spot when had to start using and analyzing new technologies not only for mobile, but now for the web as well. I was a bit discouraged and nervous, since I wasn’t really a JavaScript guru prior to my... read more

Common Sense Tips for Talent Integration

  As a provider of Nearshore IT and QA services, we are often asked by prospects and others a very important question: How do we accomplish knowledge transfer in a fashion that quickly integrates your resources into our operating model? Many times these companies have urgent needs, such as more programming capacity to meet product delivery requirements, a need to increase the speed of product feature delivery to meet market commitments, or the desire to quickly improve overall software quality due to customer service impacts.  The last thing a business needs is to spend money and time on extended team members that do not help solve these issues within the expected time frames. There is no magic bullet that guarantees rapid and maximum return from a new resource. However, from our experience, there are a number of common sense considerations that can be implemented to best meet the needs of the business: Create a simple knowledge transfer plan based on mutual expectations. This is basically a timeline that identifies the important steps for resource “ramp up”. To be included are items such as collaboration procedures, documentation review, work assignment, and joint assessment of the resource performance based on previously established expectations. Assign the “right people” at the “right time”. It’s incumbent upon the service provider to provide talent that meets or exceeds client expectations.   This means providing people that not only have the correct technical skills but also fit culturally into the clients extended teams.  Having mutually candid and detailed discussions regarding the project needs and team behavior can be highly useful to long term success. Create Incremental work... read more

Succeeding with Software Regression Testing – Top 4 Considerations

As a provider of Software Development and QA services, we’re often asked: What is the best way to implement a high performance regression test solution?  We receive this question from clients who’ve asked us to improve their level of quality and also from associates that prefer to implement regression using internal resources.  So, I asked members of our QA team to share their perspective on the most important top four factors when considering a regression solution (these are applicable to both nearshore and internal initiatives).  This is what we came up with:   Education and Knowledge Transfer – this is a requirement that is sometimes underestimated, regardless of whether the regression resources will be internal or external. The advice here: Start Small.  This includes the initial team size and scope of work.  Provide as much training material as feasible, but take an important practical step by allowing a QA engineer to get “into” the application as soon as possible; actually creating plans and scripts.  One note of caution: This hands on involvement will accelerate the learning process but the initial quality and productivity levels generated by the QA specialist may be sub-optimal.   Expect and accept a reasonable number of the initial “mistakes” which may require rework, knowing that the engineer is well on his/her way to being highly productive (assuming she/he is a talented engineer). Automation with the right tools – there are a number of great test automation tools now available on the market. Some are highly flexible open source tools, such as the de-facto standard – Selenium.  With an infusion of complementary creativity, these can be adapted... read more

Costa Rica – A Roadmap for Success?

I was unable to attend this year’s Nearshore Americas Nexus event recently held in San Francisco, but I had a chance to watch a very informative presentation from former President of Costa Rica, Laura Chinchilla, titled “Costa Rica wants to export talent, not people”. You can see it here on the Nearshore Americas site . It is great insight from the former President, regarding Costa Rica specifically and LATAM’s overall economic situation and position as a provider of innovative talent.  Of course, this is of special interest to GlobalNow, since we provide IT development and QA services from our Colombia and Costa Rica affiliates, but I believe President’s Chinchilla speech provides a possible road map on how societies can evolve to a high level of economic success. My key takeaways from President Chinchilla’s presentation include: Costa Rica’s success is not accidental. The government has made important CHOICES that has propelled Costa Rica as thriving democracy and leader in the services industry Strong support for the rule of law, security, public health, foreign direct investment, free trade and renewable energy (100 percent of Costa Rica energy consumed is now from renewable resources) has been critical to Costa Rica’s long time economic success. But, probably the most important choice was Costa Rica’s long time commitment to invest in the education of their citizens.  This includes ensuring free public education across the majority of the population, but also mechanisms for higher education such as scholarships for Master’s and PHDs in high tech Due to the above, Costa Rica has transformed from an economy dominated by the agriculture industry to a service/high tech... read more

Using Geb/Groovy as Open Source Alternative to Stand-alone Selenium for Test Automation

Configuration of Geb automation environment using Spock, Groovy and IntelliJ for Dummies By Alex Chaves – GlobalNow IT QA Manager Introduction: Selenium by far is one of most widely used tools to automate regression testing and other functional testing requirements; due to its perceived cost (it is open source) and inherent flexibility. To deploy an effective Selenium automation project, an intermediate or higher level of programming skill for a language such as JAVA is required to build and maintain the project over time. Geb (http://www.gebish.org/) is a browser automation solution that works as an additional layer with the selenium web drivers in order to provide a more user friendly solution than stand-alone Selenium. This is very handy for QA engineers that may not have advanced programming skills.  For instance, Java is often used to create Selenium scripts, and even though Java is very powerful, it requires a good working knowledge of the Java language to develop and maintain Selenium in this fashion.  GEB can avoid the use of JAVA, allowing you to use Groovy – a simpler scripting language. By using Geb/Groovy, and avoiding a language such as JAVA, the cost of maintaining the automation solution should decrease, plus responsiveness and delivery velocity may also increase due to the simplicity of Groovy. Below is a step by step procedure that you should follow in order to enable the Geb automation environment. Although there are some references on the internet where you can find explanations of various components of the configuration, I was unable to find a site that clearly explained all the required steps that will enable your GEB... read more

Remote Work Teams – Tools of the Trade

I’ve seen an uptick on articles promoting the benefits of remote work over the last week, including this good one from http://bit.ly/1LsnKYO Mike Elgan / CIO Insights. The acceptance and use of remote workers is becoming more common throughout many industries, especially IT.   Meanwhile, IT Trends such as Agile and DevOps makes the need for successful collaboration even more important. These methods require even MORE effective teamwork, not less.  Since our company is in the business of providing both U.S. and Nearshore IT resources, we are accustomed to seeing the requirements, tools and impacts from remote team collaboration. I previously blogged on the importance of culture/attitude (seen here), and how the desire from the evolving global workforce is a very important consideration.  But it would be very difficult to successfully collaborate without the emergence of some of the great tools that we now commonly use and I was recently thinking about how they specifically help with our productivity. So, I asked members of our DEV/QA team what tools they use and like, and I thought it would be interesting to share some of their personal preference and insight: Julian, Senior Dev Lead likes Jira because of its ability to document and organize user stories into team sprints and coordinate break/fix tickets within the sprints. It is also easy to then assign work and manage the remaining effort. Alex, our QA manager likes Trello for small development projects/teams because it is simple and cost friendly. For larger, more complex environments he prefers Confluence for its integrated management of multiple areas of software process from requirements to testing – and especially... read more

QA Automation – Requires not only tools but Innovation as well – Selenium example

From my experience, successful software QA automation requires not just tool expertise but also team innovation and creativity. For one of our recent engagements, our QA engineers established an automated smoke test using Selenium. The smoke test was incorporated into the continuous integration environment and applied following system builds to ensure the latest software changes did not break any of the main system functionalities.   The use of Selenium as the base tool required the creation of a custom framework to launch the automations and enable the use of a dataset to support the testing “paths” dynamically rather than hardcoding each of the data locations within the automations themselves. Engineering a testing path/location repository solution as part of this framework provided the ability to manage a single automation with a variety of data conditions and locations. There are 3 main benefits of this approach: Maintenance – The number of automations to create and maintain are reduced significantly. Therefore as the application changes, and the testing automation needs to be updated, there is less automation code to maintain, which reduces ongoing costs. Velocity – New data paths can be added quickly and painlessly without the need to open up the automation code/logic itself. Quality – spending less time on keeping existing testing conditions working means more time can be spent on assuring new code works as expected. By solving the problem in such a way that focuses on the data conditions rather than the automation, the ROI on automation testing is improved tremendously. The agility to make adjustments maintains the velocity of the software development process and more time can... read more

Sign Up to Receive Ongoing Tips on QA and Nearshore Development


Share This Page
Share on FacebookTweet about this on TwitterPin on PinterestShare on LinkedInShare on Google+Email this to someone