We've talked about HOW to evaluate testing automation. We discussed staffing issues, managing equipment from multiple vendors, maximizing asset utilization, and consolidating test results into one database to easily keep track of results, updates, etc. 
 
But what about the WHY? Why should companies invest in test automation tools, especially now, in an economy where cutting costs is typically the response to getting through this rough time?
 
It is a given that products will always need testing, and there will always be the need for human interaction. But, if you cut back on the testing or the people directly involved with the testing, my suspicion is that the product will suffer, followed by reputation. If you're considering cutbacks to weather the current financial situation, it's a good bet that your competition is too. If you rely on manual testing to produce and maintain a quality product, your company may be at a significant disadvantage when compared with higher quality competing products.
 
So, the reason companies need to invest now, is to not only maintain their competitive advantage, but perhaps even pull ahead! Automating your testing environment lets you do that. A sustainable competitive advantage is the focal point of your corporate strategy and test automation is one way to achieve a significant advantage with a modest investment of money and time.
 
Allocating Personnel: Use your limited staff wisely. To do that, you need to automate those repetitive testing tasks so the engineers can focus on the more complicated, mind-stimulating ones. Spend the small amount of time needed to design and develop the regression tests, smoke tests, etc. that can be run continually on their own, and not cost a dime to run. This frees up the time for testers to create and analyze the new, more exciting and complicated tests.
 
Test Continuously: As we said, once you've made the investment in building automated test scripts, there is no good reason not to run them frequently (and lots of good reasons to do so)!    You can run scripts 7x24, utilizing equipment that would otherwise stand idle overnight and on weekends and holidays.
 
Consolidate your test results: If you have more tests being run, and more engineers dedicated to new features, it stands to reason that you need one repository to hold everything. You can significantly reduce time when you can find everything about all the tests that have been run, and the results, in one place! And, since 'undocumented software features' will inevitably crop up, and codes get larger and more complicated, you can easily, and cost effectively, address them without breaking something else!
 
Build Better Software: Now that you can cover more ground with your testing assets, by definition, you can build a better product. You have the time and tools to build it faster, and be more innovative. So, you can take full advantage of your competitors' short term cutbacks to improve and increase your long term market share.
 
I'm interesting in hearing your thoughts on test automation as a sustainable competitive advantage. 
 
Terry
 

Is Test Automation THE Answer?

July 10, 2009 4:55 PM | 0 Comments
Sorry, no such luck! Test Automation is AN answer, to be sure, for the right types of tests. But I don't think it can ever replace manual testing and the critical thinking the goes into testing all the permutations that a complex software product or service presents.
So, it is important to understand that test automation is one of many valuable tools that can, and should be applied to the testing effort to ensure that fewer defects reach the deployment stage. When applied properly, test automation has been extremely helpful, but too often test automation projects fail to deliver on expectations. The reasons are many:
·         Inadequate organizational responsibilities:
o        Everyone on the test team should have a stake in the test automation effort
·         Limited management support, understanding, and experience
o        Management cannot dictate success but should facilitate success
o        Test managers typically know what works and what doesn't, and has knowledge of prior test results, so upper management needs to trust the judgment of their lab managers, and support them
·         Overzealous objectives 
o        It is not reasonable to expect that 100% of testing can be automated. Automating 50% or more of tests is achievable and reasonable
·         Unrealistic time and cost expectations
o        Practical expectations for time and costs savings must be established at the outset
·         Inadequate tools and training
o        With power and flexibility comes complication. So, test automation must be simple to use and everyone who uses it, must be trained
·         Poor communication and overlapping efforts
o        Automation stakeholders all must start on the same page
o        There is no substitute for regular communication and updates on automation efforts!
In my earliest post, I promised to provide some practical approaches towards test automation based on experience and feedback from many of the engineers I've worked with over the years. All of them will tell you that test automation for certain aspects of the test effort is a must. Repetitive, manual steps will wear anyone down over time.
Let's take a straightforward example of where automation can help and also save time and costs immediately. I'm going give you my personal experience with the daily build and smoke testing process in a typical telecom development and test lab environment. This test process is a good practical example of where automation can help. 
In a typical scenario, software developers code by day and check in changes to the source control system before going home. Later that night, some automated build process kicks in and builds the product executable software so that it is ready for testers to install and test in the morning. Once testers arrive and start their day, they will typically download the new build to one or more testbeds and begin the process of looking for problems with the new build. They will run a series of commands and test scripts to ensure the product or service functions as expected, and that the software engineers didn't miss anything in their unit testing. Typically within a few hours, engineering is given feedback on the health of the new build. This cycle repeats itself with the hope that nothing will break from day to day, and that one or more problems are detected in this manner.
Here's the math:
Let's assume that there are three testers on the team that perform daily smoke tests on a product under active development, and let's assume it takes these testers four hours per day to run their series of manual smoke tests to ascertain the health of the build. Let us also acknowledge that fully automating this process the first time will take a few hours of someone's time, but once it is completed, very little time should be required to maintain it using an automated testing framework.
Now, let's automate that same process and have this work run at night right after the build is completed at 3 am. We can have the automation framework wake up at 3:15 am and download the software to three testbeds, provision the systems or devices under test (SUT/DUT), run a series of regression scripts, modify the SUT/DUT while the tests are running, run another series of scripts, etc., just like the manual testers do. Then upon completion, a test result report is generated and emailed to the appropriate team members and managers so that when they arrive at 8 am, they know the current health of the daily build and can focus on testing the new features that were added.
The savings that can be achieved from automating this basic process can be as shown below:
(((3 Testers * 4 hours per day = 12) * 300 days per year) * $30 per hour) = $10800 in savings. And this is for only one type of test! Multiply this for other types of regression and Q/A tests and the savings grow with each automated process.
Of course, all of the parameters above may differ based on actual lab operations, but as you can see, the cost savings and improved productivity can be quantified and are quite significant over time.
In my next post, I'll offer more practical examples of how test automation can be implemented to achieve real savings and process improvements. I'd be interested in hearing your thoughts on this topic.

Terry
 
 
 
 
 
 
 

As you've seen from my blogs, I am passionate about testing, and its future.  But, barriers can make a testing environment hard to navigate.

 

I've brought to light issues of multiple vendors and their proprietary scripts, lack of a single repository for test results and inadequate staffing. Next on my radar is accessibility.

 

I discussed the concept of a single repository that can house all test results for all equipment and all engineers.  But, what good is that repository if it is not easily accessible?  Often, the people who need this database are offsite, around the world, in a different time zone or maybe just caught up in meetings.

 

Another issue I've highlighted is the equipment. It typically lies idle or in static operation for about 16 hours a day, plus weekends and holidays.  Seems like a giant waste of resources.

 

But, the Internet has changed that. With just a web-enabled interface, you have access to the world! Now you can get to anything, anywhere with just everyday tools.  7x24 access means better resource utilization, which test labs desperately need.

 

Test labs need a tool that lets developers and testers access, manage and automate multiple test scripts for VoIP, IMS, IPTV, PSTN, and wireless devices, at any time, from anywhere. It is not uncommon for test organizations to develop test automation tools in some form or another using TCL, Perl scripts, bash scripts, etc., however developing and maintaining a fully featured test automation framework and environment is often beyond the core competency, budget, and/or resource capacity of many test organizations.

 

How about one that runs on any windows or UNIX platform and connects to any device (Telnet, SSH, serial port, or command shell)?  Or, one that offers multi-user Web GUI access using any browser, like Firefox, IE6, IE7, Safari, Opera, Chrome or Netscape, from any Internet browser-capable device, including a PC, MAC, UNIX or Linux servers, iPhone, PDA, or G1 mobile device.  This approach should require no software to be installed and maintained on the user's device, thus eliminating the pain of keeping all the user computers up to date.

 

Once you can access, monitor, and control your test lab from anywhere, and manage all the devices under test (DUT) and devices involved in test (DIT), you can design and build test cases, and execute simple test procedures or create more complex test scenarios limited only by the testers' imagination. 

 

And, these tests can run 7x24, which maximizes the equipments' ROI and certainly speeds up the test processes to speed time to market, which is really what management is measured on!

 

So, I'm anxious to hear any ideas you may have on this topic!

Terry

Reblog this post [with Zemanta]
    Related Entries:

In my earlier blog I said I want to put the spotlight on the future of testing.  As next gen products and services evolve, the lessons from legacy testing need to be incorporated. 

 

The next critical issue that I have run up against, in my years in the field of testing, is the data....not the just the high-level test status themselves (Passed/Failed), but the easy access and availability of those detailed test cases, test procedures and test results. 

 

Many test labs rely primarily on skilled test engineers to prepare and repeatedly run hundreds or even thousands of test cases for each major test cycle, manually gathering and interpreting the results, and consistently reporting problems and progress.  So, the

question arises, how does one take the results of many tests, from multiple vendors' test equipment, which are often in separate silos and locations, and consolidate them into a meaningful report combined with logs and other resulting details from all the devices in the test?

 

Test organizations must collect and manage important test information manually, typically using Microsoft Office tools or some form of internally developed and maintained test management tool. Manual methods can drastically limit collaboration and reuse, and certainly restrict knowledge base sharing. Unless a concerted, manual effort is made to coordinate and distribute updated and timely test information to everyone on the team, it can be difficult to track and manage valuable test information. Test information can be lost, requiring testers to recreate the test setup from scratch. This can be extremely frustrating and time consuming if accurate and detailed test procedures and associated scripts aren't easily retrievable and usable.

 

Automation of these consolidation techniques is one part of the equation.  The other is to have a central repository that everyone can access, draw information from, and post reports and information into, thus building a knowledge base over time.  This database can centralize valuable test suites, test cases and test results in an online repository, allowing the data to easily be organized, searched, shared, reused, copied, modified, and compared to previous tests and results.  The single data repository allows testers to catch inconsistencies and bugs that may crop up in new or updated software, no matter when or where the product was tested. This is particularly important when members of test groups are geographically dispersed.

 

Reports should be able to be easily exported in standard formats, such as PDF, XLS, CSV, XML, and HTML, particularly for managers who are not as close to a test process as an engineer.  This allows them to be able to evaluate and oversee test results that may be taking place in labs down the hall, or overseas! 

 

A common, centralized database and file system is an idea whose time has come.  Any thoughts or experience with this? Do you have a central repository for this valuable test information in your lab? I'd love to hear from you!

 

 

Terry

Reblog this post [with Zemanta]

As my earlier blog said, we're here to get a discussion on the future of testing, and what it means to legacy testing as it melds with next generation products and services. 

 

I have been identifying some critical issues in the field of testing.  So, we need sensible ways to address the need to ensure product integrity and quality while meeting aggressive market deadlines and coping with dynamically changing test environments. 

 

Today I'm going to discuss the use of equipment in test labs. Test labs have a variety of equipment to do a variety of tests.  The equipment often is from multiple vendors, each requiring proprietary scripts. To be able to automate the multiple scripts from multiple machines into one program would be a test engineer's dream come true.

 

No one piece of test equipment does everything well, thus many labs utilize equipment from more than one vendor. In fact, companies may spend as much as $300K or more on just one piece of test equipment that can sit idle more than half of the time if used ineffectively. Also, test equipment, while homogenous at a protocol level, each has its own unique test case scripting, control interface, and test result storage method that must be managed independently by the tester. In-depth knowledge of each piece of test equipment including the content and location of test scripts is required to perform each repeated test correctly. A test organization ends up with stovepipe or vertical instantiations of manually intensive test regimens that must be repeated properly and frequently for every release or version of the device or system under test. These individual solutions do not lend themselves to scaling or reuse across multiple projects.

 

To date, none of the equipment vendors offer a comprehensive automation solution that overlays this multi-vendor, multi-device hybrid lab environment. Automation of these tests and equipment would allow testers to run tests all day, every day, not just during an 8 hour.

 

Test automation can fully utilize equipment that may be idle overnight, on weekends and on holidays, for a 300% improvement on hardware usage and efficiency. Labs can avoid the purchase of additional equipment to support increased demands on limited test teams during their 8-hour day. Instead, managers can invest a much lower amount in commercial third party test automation solutions to optimize equipment usage and speed testing. This requires a commitment to keeping test setups physically stable to avoid wholesale test case rework.

 

Your comments and experiences are welcome!

 

Next time, I'll discuss the data repository for all these tests.

 

Terry

Reblog this post [with Zemanta]

I'd like to thank TMC for the opportunity to share some thoughts with you on the subject of testing and test automation. It is a pleasure to have this space to talk about this important topic.

 

As the title of this blog implies, the focus will be on the future of testing, and in particular, how to incorporate the knowledge and results of legacy testing with next generation products and services and yield substantive results. We need sensible ways to address the growing demand for better ways to ensure product integrity and quality while meeting aggressive market deadlines and coping with dynamically changing test environments. 

 

In order to understand the future of testing, it is important to identify some the key problems and challenges that are facing many of today's telecommunications software testers and managers. We'll discuss these challenges in some detail, and then offer some practical and effective means to deal with many of them.

 

My team and I have many years of hands on involvement in development and testing of advanced telecommunications products and systems. We've experienced a host of problems on almost every project we've encountered.

 

Today's posting will be on adequate staffing for testing environments.

 

The economy drives business decisions, and today's economy has resulted in reduction of staff. Not only is the number of engineers cut, but their expertise and knowledge base are gone, as well. The remaining engineers still have their tasks, but the other tests still have to be run, the delivery schedules have likely not changed, and the number of hours in a day to be on site to run these tests is finite.

 

Many test labs rely primarily on skilled test engineers to prepare for, and repeatedly run hundreds or even thousands of tests cases each major test cycle, manually gathering and interpreting the results and consistently reporting problems and progress. Running hundreds or even thousands of test scripts per release is challenging. People tire from running the same manual tests every test cycle, yet they cannot be eliminated.

 

The answer, at least in part, is automation. In fact, at least 50% of manual tests can and should be automated.

Many tests, such as regression tests, are good candidates for automation. They must be repeated exactly for each release. Running tests the same way each time can ensure nothing obvious slipped through the cracks and fewer embarrassing deployment problems arise that must be isolated and patch in the field.

 

Not all good test engineers are software developers and not all software people are good testers. Test Automation solutions should enable the creation and executions of tests with zero programming required. In-depth knowledge of the device or system under test is of course crucial to effectively applying any test automation solution.

 

 

Manual testing and human coordination go hand in hand. Both will always be needed in test environments to be truly effective. Test Automation can have an immediate and significant impact when applied appropriately. Automated test procedures targeted at solving specific project pain points can be extremely effective and have lasting benefits.

 

I'd love to hear about your experiences in a test lab, and any comments,

 

My next blog will focus on limited test equipment.

 

Terry

 

 

 

 

Reblog this post [with Zemanta]
The opinions and views expressed in comments, blogs, etc. are those of the authors alone and not necessarily those of TMC, TMCnet, or its editors. TMCnet reserves the right to edit, delete, or otherwise make changes to the content that appears on these pages at its own discretion and as it deems necessary.

Blogroll

Find recent content on the main index or look in the archives to find all content.

Around TMCnet Blogs

  • Communications and Technology Blog - Tehrani.com:
    Interop New York 2009 Videos
  • On Rad's Radar?:
    Open Neutral Fair
  • VoIP & Gadgets Blog:
    iLive ISP209B Portable Speaker System Review - Alarm Clock
  • Communications and Technology Blog - Tehrani.com:
    Back From Interop NY 2009
  • First Coffee:
    Helpstream and CRM, Scalable Video Coding, Gemalto, Samsung Mobile
  • On Rad's Radar?:
    Mainly Cellular News Tidbits
  • The Readerboard:
    Make Customers Smile? Give Them Low Priced Half-Decent Products
  • VoIP & Gadgets Blog:
    VoIP in Google ChromeOS
  • Latest Whitepapers

    TMCnet Videos