Friday, January 18, 2013

Visual Test Automation Leads the Future of the Software Testing Industry


Today’s test automation technology in general relies primarily on the test object recognition aspect.  This means that any testing tool is required to identify test objects of the application under test (AUT) and successfully recognize it during creation of the script and its playback. Conventional test automation technologies developed are based on API object recognition, where each singular client API’s is correlated with the testing tool technology’s test object class. In the modern testing world, this approach is insufficient due to the existence of a variety of different clients for one application under test – ie browsers, client-server applications, etc. With most tools, you can only recognize one set of objects per script per AUT. Therefore, if you are automating different clients of the same applications (which may be different browser flavors or different version of client or native mobile apps) you will, in most cases, need to recreate the script. This approach tremendously increases maintenance requirements of test automation framework and makes it very costly and many times more impractical. This inevitably forces many organizations to roll back to manual testing rather than supporting test automation.
The solution for this challenge is visual based object recognition technologies. Visual based object recognition is the future for test object recognition in the modern software application development and testing world. It contains algorithms built on OCR (object character recognition) and ICR (image character recognition). This type of algorithm is what the ZAP-fiX solution is based upon. Technology based on visual based object recognition allows testers to execute scripts cross-client and cross-platform. When talking about visual based object recognition technologies, it’s very important to understand the level of object recognition. The majority of them are driven through the tool’s built-in functionality rather than sets of API’s that can be prescribed in a singular line of code. Visual-based object recognition is more reliable in many cases depending on the complexity of its algorithms. When speaking about API vs. visual object recognition, test engineers should change their approach to automation and think of less complex techniques unlike programmatic description and custom object recognition functions. Using the built in functionality of tools reduces the complexity of scripts and lines of code per scripts which, at the end of the day, reduces their required maintenance and time spent on managing such test automation framework. Instead of depleting the company’s budget and causing the failure of testing projects, selection of the proper testing tool that allows cross-client and cross-platform automation with less scripting increases return investment from software test automation.
In conclusion, in order for us to successfully cover the modern requirements for software testing, we need to start building test automation technologies that support the newest features. Today, software has changed from a standard, single, Windows-based platform to multiple platforms, and we – as test automation professionals – need to start adapting to the world using the latest technology that offers the ability to switch between all of them. Visual object recognition is the future of test automation!

Thursday, January 10, 2013

zapFARM Paves the Way for Cost-Efficient Mobile Device Testing!


Currently, the process of mobile test automation requires hosting of mobile devices under test. Modern solutions on the market offer hourly rental of devices – a costly option that has many downfalls. With the continuing rise of technology,  the majority of companies are starting to perform test automation for mobile testing. Most of the time, they don’t have a precise device strategy that may justify a return of investment from such services.  It is very difficult for a company to invest hundreds of thousand dollars solely for devices under test. ZAP Technologies offers a way out of this cycle but providing a solution to solve this problem in the form of zapFARM hosted services. zapFARM offers customers the ability to rent cost-efficient use of mobile devices under test dedicated to them. These devices are available any time anywhere the customer may need them.
zapFARM with ZAP-fiX offers the flexibility of the industry’s only Full Lifecycle Mobile Testing platform – on-site, customer managed, secure (ZAP-fiX) or Pay-As-You-Go, subscription, and low administration costs (zapFARM). ZAP has expanded our industry’s only Full Lifecycle Mobile Testing solutions and services to provide hosted device support on zapFARM. ZAP has already established itself as the most functionally expert, financially flexible portfolio of mobile testing products  and solutions that have become a key strategic platform for global commercial brands rapidly accelerating transformation and migration of key business applications to smartphones, tablets and other intelligent devices. ZAP’s family of emulators, viewers and real device testing tools extend and increase the investment value of HP’s market leading QuickTest Professional ALM suite by delivering transparency and compliance with existing installation, test scripts, administration and management reporting procedures – no new skills, no new education, no retraining of expensive personnel resources. Now zapFARM can completely eliminate the time, complexity and logistics of acquiring, maintaining, updating and adding to your mobile device inventory as your application platforms change or expand.  Where you have more flexibility, and less concern regarding local process management and security, zapFARM provides a hosted service subscription program that provides managed access to mobile devices located at our Atlanta-based hosting facility. ZAP provides the hardware and telecommunications facilities, manages logistics and inventory, and administers all aspects of your custom testing environment. You pay for the service when you require it, for as long as you need it, at a cost that makes sense to you.
Visit www.ZAP-TEST.com for more information about this solution!

Monday, November 19, 2012

Architectural Foundations of Testing

Today’s modern application testing matrix is full of rising complexities. In order to save time and money and to assure the success of a developed application, test automation teams have to start with the basics. A strong tower requires strong foundations. In this case, one of the most important parts of that foundation is the development of test framework. In order to ascertain that your product can bear the weight of all of today’s demands – those of both users and technology – all framework has to be flexible and robust. We develop test architectures in a modular, data-driven, and event-driven fashion that includes rich-logic. The  main goal of test architecture is to achieve full testing with less test artifacts, meaning that we will have less maintenance of said architecture down the line. As Test Architects, our main goal is to preferably design one test case per one functional area, which can be achieved through framework modularity.

When designing modular test architecture, one can define two classes of test cases: Test Components and Business Processes. Test Components are usually smaller, reusable test cases that represent a particular functional area, while Business Processes are more procedural test cases oriented to test application business processes.  Let’s take a look at a basic example of a common application to illustrate the above methods – a travel portal. The main purpose of this app is to help a user create their own itinerary for a trip. First, we will set the functional areas as “login”, “book hotel”, and “book rental car”. In order to develop test coverage based on these principles, we will develop test components separately for each of these areas.

Data-driven testing is carried out with a simplified principle of input and output parameters, meaning that our test cases should not have any static input and output values (when this is possible and logical). The advantage of data-driven testing is the ease of driving test scenarios though input and output data within a single test artifact. Later, we will incorporate all of these into a single “book itinerary” business case. Once we develop the business component, we can address the principles of data driving. Our goal is to create an artifact that will take any input and output values into testing procedures. Therefore, we will parameterize every input and output value such as the “user name” text field, etc.

Another important characteristic of a modern test framework is event-driven testing. Event-driven architecture is an script pattern promoting the production, detection, consumption of, and reaction to events in the script. Every test case should end with a triggered event and present validation criteria in the scenario. Building applications and systems around an event-driven architecture promotes validation of test case expected results that each test step has to have by definition. For example, when designing a Login Test Component we will create two test steps: Invoke AUT and Login (typing user name, password and clicking Login button), at the end of each step this test case will be triggering event in AUT presetting validation, i.e. Login dialog invoked, or Welcome page appears (including output data from the previous input step).

Last but not least on our list of foundations is rich-logic. This element allows testing teams to incorporate all business requirements. This includes applying conditional statement into the expected results area. For example, when there are multiple user groups in the application under test, we can create a conditional statement to validate which user of the group is logged in and outline subsequent steps for the user to proceed test in a certain way. Such framework can be executed either manually or in an automated fashion across any platform. With this method in place, we can take our business case of booking an itinerary and use it anywhere (Windows, Mac, Unix,Mobile etc.) without any further modification.


This approach allows better collaboration for team members, like application SME and Automation Specialists or new colleagues. It improves change management and reduces maintenance of test artifacts, therefore increasing testing ROI.

In conclusion, designing your framework in the most efficient way from the very beginning is the ultimate test strategy. In order to achieve a rapid pace of modern software development and offer proper test coverage, the foundations for an application’s script must be strong. Once the foundations are built with care and focus, the tower will stand tall and unwavering even in the strongest of winds.

Friday, November 9, 2012

Test Automation – Choosing the Right Tools to Drive Success

In our most recent installments, we’ve talked about the efficiency of test automation, agile testing, and some best practices for test teams. We’ve covered the difficulties of catering to multiple platforms and browsers, and have mentioned that the modern market is ever-changing and filled with obstacles that must be surpassed to stay afloat among the competition. There are many testing tools available out there today, and one of the most critical steps towards successful application testing is choosing the right one to get the job done.

Here, we can continue our car analogy. Just like building a custom car requires focusing on each separate part and how it will benefit the whole, test automation teams must also work together to determine what aspects of a testing tool will help them reach their goals in the most efficient way possible. Some companies may struggle with this, as there is a false rumor going around: that test automation is a low-maintenance cure-all for any development process.

The reality? Test automation is possibly the most difficult and rigorous form of application testing. Because everything is automated, teams must be doubly focused in assuring that all scripts run as planned. The goal of this method is to save time and prevent error, but the scripts that run the tests must first themselves be error-free in order to take advantage of the benefits test automation offers. The quality of the tools used throughout testing can make or break a project.

When driving a car, the main goal is to go from point A to point B. However, when a critical situation presents itself – such as hydroplaning or a potential accident – the quality of the vehicle and its safety features can tip the scales in your favor and save your life. The same can be applied to testing scenarios. When you need to quickly overcome certain problems with object recognition or architectural aspects of a project, you must rely on the particular feature set of your tools to help you make the climb. Even the most experienced tester can’t foresee all possible hazards on the road to launching a project, and – on the surface – freeware may look to have the same functionalities as paid software. However, each tool is different. You get what you pay for, after all.

For example, some very important factors to consider in modern test automation are: the ability to recognize objects on a higher-end scale, support of rich logic scenarios, modularity support, and configuration aspects of device under test such as jailbreaking/rooting or instrumentation. Finding a tool that can perform with the most versatility with these tasks and cover all platforms and browsers is crucial, since it’s impossible to predict whether the requirements for the usage of the application will take a sudden turn. End-users may initially need the application to run on iPhone, but may unexpectedly change their requirements to running the app on Windows Safari (yes, there is such a thing!).

The chart below shows StatCounter statistics about some of the mobile browsers of today and their popularity. Can your tools help you develop your scripts on all of these and more?


The knowledge and experience of test engineers along with operating budget are also important things to consider. Certain tools may have a steeper learning curve than others. If a tool has a large feature set, it will take more time to train teams to use it. What is the budget for the project? Can it support the investment of a more advanced tool along with additional time to train the team in its usage? ZAP Specialists highly recommend investing in a high-end tool, but teams must always plan ahead to make sure that they will have a return on this investment. In the long-run, putting aside a portion of the budget to acquire a better tool may save you days when you least expect, helping the budget remain in the positive.

In conclusion, test automation is a difficult and complicated path that must be navigated with the correct tools at hand. Taking the time to make an informed decision regarding your test automation tools can save you time and money in the end.

Friday, November 2, 2012

Test Automation Best Practices for a Smooth Ride



Test automation can be compared to riding a race car. Just like test automation, a race car is an attractive way of getting where you need to go with the speed of lightning. By the same token, this can be very dangerous if you don’t possess all of the needed skills. Racing a car is a feat accomplished by many separate elements combined into one. The racer must be focused, agile, and adaptable. 

The elements of racing apply to test automation as well. Development teams must be skilled, 100% focused on their goals, and adaptable, especially when considering the overwhelming amount of new platforms and emerging technologies that form new obstacles on the road every day. Most development teams that encounter such obstacles can overcome them, but only in the right environment. 

 Another roadblock comes in the form of cutting resources. When test managers try to cut corners, allocate less skilled personnel to do automation, or mix test automation with other responsibilities, they are giving the reins of a formula one to someone who barely knows how to drive a go-cart at a theme park. Overwhelming testing teams leads to distractions that turn them away from their goals, lengthening the process and leaving room for errors and failures. These problems result in such issues such as test automation teams trying to develop un-executable artifacts. The testing projects lose out – development is pushed back and the budget dwindles. 

At ZAP, we have over 10 years of consulting experience. Pulling from this knowledge, we always advocate the approach of assigning specific tasks to particular team members and setting reasonable mini-goals that will build on each other to reach the ultimate conclusion. One of our best practices is dividing the work between “Experts” and “Specialists”. 

Experts perform QA analysis that focuses on testing goals and test documentation. Their roles also include managing requirements and building modularized test cases that will adhere to test automation best practices.  They schedule test execution based on the goals of the project and execute test sets while tracking defects and errors in the products. Simultaneously, they will collaborate with Specialists to ensure that they develop scripts addressing testing goals through test case logic and validation criteria. Meanwhile, Specialists are solely in charge of developing and maintaining robust test automation framework.  

The productivity of such collaboration usually results in 1 Specialist supporting 3-5 Experts. Automation Specialists should always use advanced technologies such as HP QTP and ZAP-fiX to make their tasks easier. Test automation teams should implement HP ALM as the ultimate test automation product to be able to quickly address all testing objectives and apply them cross-platform. This will allow test Experts with one artifact to execute it on multiple platforms with ZAP-fiX’s revolutionary 1Script technology. 

In conclusion, if Specialists use good tools like QTP and ZAP-fiX, they can execute their scripts cross-platform using ZAPFARM hosted services. In order to achieve efficient test automation processes, teams should define precise roles and responsibilities and assign particular skillsets of their members to define QA processes while focusing on test automation tasks using advanced technologies. Following these guidelines will complete the racing metaphor – proper technique, focus, and training will always result in a safe and exciting race.

Wednesday, October 31, 2012

Agile Testing in Today's World


With each passing year, technology puts new pressures on developers. As consumer demand rises and more products become available across the market, companies have to act as quickly and efficiently as possible to stay afloat and gain maximum visibility. Yet, no matter how rushed production teams are, errors must be weeded out so that the products are a benefit – not a detriment – to the company’s reputation.

Agile testing is the beating heart of all of this – it can be viewed as the living vein that connects all the steps of lifecycle management. Like any testing strategy, it has its ups and downs. But, today, Agile Testing is widely accepted as the most adaptive and efficient methodology to guide a product from start to finish.

The Challenges of Welcoming Change

In product development, every lifecycle affects testing. Some Agile test strategies include risk-based testing, automated testing, and reactive testing. But, even properly chosen strategies do not alleviate all the testing challenges of Agile projects.

A huge Agile principle is to welcome changing the requirements of a product, even late in development. Risk-based testing, reactive testing, and careful automated testing can all accommodate change, though GUI-based tests are often more sensitive. Testing challenges still arise from changes in the definition of the product and its correct behavior. This includes keeping the test team informed of such changes and accounting for differential impact of changes on testing. Otherwise, changes can impose testing inefficiencies.

Some iterative lifecycle models allow substantial periods of time between each build. Agile methodologies help move this along faster. The pace and brevity further squeeze the test team’s ability to develop and maintain tests, and GUI test automation techniques can be particularly sensitive to this driving pace. Test teams are under a lot of pressure to develop, maintain, and execute tests in a risk priority order.

ZAP-fiX Opens the Doors to Conquer Challenges

In theory, the Agile movement promotes doing less work faster to get ongoing feedback. But this drive for speed does not ensure that your product will get to market faster or with fewer defects. If too much pressure is placed on testing teams, more errors will inevitably slip through the nets. For this reason, it is absolutely crucial to provide testing teams with the most modern and effective testing tools available on the market today.

ZAP-fiX is one such tool.

ZAP Technologies developed ZAP-fiX with the challenges of testing in mind. We know and understand the pressures that testing teams face every day and seek to meet those rough waters head on.

Features of ZAP-fiX that help make Agile testing easier:

-          The ability to develop test automation ahead of the application being released. With ZPX you can develop test objects using mock-ups or test object properties.
-          The ZPX 1Script  functionality  offers cross-platform execution with the ability to execute one script cross-platform.
-          Using ZPX’s seamless integration with HP Quality Center and ALM allows the execution of a script on multiple hosts simultaneously.

Using these market-first features and solutions, ZAP-fiX alleviates the pressure of the rigorous testing pace set by the modern market and assures quality software in the aggressive Agile development phase.

Visit our website to learn more about ZAP-fiX and how it can move your Agile testing forward with maximum efficiency.

Bridge Building for Success with ZAP-fiX!


Building a successful mobile application can be likened to building a perfect bridge to an isolated island. A successful bridge must be able to withstand many pressures from its surroundings, including variables such as climate. Of course, even if the bridge falls, it can be rebuilt. But, the setback of spending time on rebuilding and reconstructing can be harrowing.

Every day, test automation teams build bridges to reach new islands. New superhighways must be built at demanding speeds so that all islands can be interconnected and easily accessible to the average tourist. Device Under Test (DUT) is a crucial component of this, but in today’s testing environment, it is severely limited.

In the current market, there are too many ways of connecting to an application, including jailbreaking or rooting and instrumenting the Application Under Test (AUT) to allow the use of the app on any untouched device. These approaches come with a lot of controversy. On one hand, rooting/jailbreaking makes it easy for test automation teams to control devices and configure them once to automate any future applications run on them. But, by the same token, large enterprises are reluctant  to use this method due to the myth of its illegality. Although there is a minimal threat of repercussion for using this method, the perceived risk is too high and undesirable.

A second approach is instrumenting applications under test. On the surface, this method looks very straightforward, but in reality it’s a long, uphill, climb for testing teams. It limits what testers can do on their own, because instrumentation has to be performed by the application developers themselves. In many cases, development teams are hesitant to inject external development packages into their source code simply for the sake of testing the tool. Not only that, but only one application can be accessed at one particular time. Each application must, therefore, be instrumented separately.

One might look at this situation and say that there is no silver bullet to target all situations. However, ZAP-fiX has found a way to be that finely crafted tool!

We understand the nature of today’s industry and can empathize with the trials and tribulations that our customers face every day.  Therefore, ZAP-fiX offers a market-first approach to dual configuration of Devices Under Test. Using our tool, customers now have the flexibility of either jailbreaking/rooting a device or using ZAP Instrumenters.

With ZAP-fiX, users that choose to go with the jailbreaking/rooting methodology can apply the same scripts to instrumented applications under test and vice versa, while choosing the other method is a simple matter of using ZAP’s innovative Instrumenters to get the job done. And, best of all, more than one application – or island – can be accessed with a single script.

This revolutionary tool is reshaping the market and the way that testers perform automation. ZAP-fiX allows for the safe and risk-free removal of errors and weaknesses from applications and lightens the load of the bridge-building process. ZAP-fiX is the go-to central hub that houses all the materials the modern testing team requires.

ZAP Technologies is currently working on even more exciting innovations that will continue to revolutionize the testing world. Stay tuned for more updates and subscribe to our blog to stay in the loop!