Author: David Ben Horin

  • Why NoSQL is the New Database Darling of DevOps

    Why NoSQL is the New Database Darling of DevOps

    If developers are from Mars and testers are from Venus, your database administrator is stuck in Saturn. By nature, the database—and specifically the data it carries—has to remain stable even as the application code on top of it is changing faster than Donald Trump’s staff.

    When it comes to the speed of your release cycle, issues with your database are like potholes. You don’t see them up ahead, and you only feel the pain after the damage is already done. The least flexible layer in an application is its database, rendering it the weakest link in any agile development process.

    Get Your Database Up to Speed

    The right NoSQL database offers the following features that can speed up your release cycle without falling into a pothole.

    It’s Schema-less:  When you make a new build, or issue a new release, your code will change. Obviously, it will go through QA and check out. However, just because it’s working doesn’t mean it’s working correctly. You may have changed the types of data your application is accepting. You may have changed the way your app works with data. Your schema is the blueprint for how you accept data. For a relational database, you need one. The more complicated the schema, the harder it is to change.

    A NoSQL document database is schema-less, offering you the ultimate flexibility and speed in how to rearrange the way you handle your application’s data.

    Rapid Scalability: The moment your application is a success, expect greater load. Greater load requires more hardware to handle that load while maintaining peak performance. A relational database demands you scale up, investing large amounts in a new server. NoSQL solutions let you scale out, creating data clusters on commodity hardware.

    NoSQL lets you add new nodes to your database topography in minutes, expanding your ability to process requests from users at optimum performance.

    Immediate Adaptability: New code doesn’t only change the type of data you are working with; it also can change how you work with the data itself. New queries mean whenever a user clicks a button, your database will have to relearn how to sort your data to answer new requests for specific items or aggregated totals.

    A relational database will join tables and scour the data row by row to get your users what they want. If the whole thing changes, the process starts from square one. A good NoSQL solution uses dynamic indexing. It means that it won’t perform a query until after it finds the right index. It will either use a pre-existing index, improve on one or create one from scratch that will be made available for future queries.

    Such a system reduces the performance hiccup by releasing new code in that the more you use it, the better indexes are created to maximize the performance of the database. Your Agile DevOps team can release new builds every day and the database will be able to keep up.

    Platform testing: Agile without testing is like a lunchbox without the apple. It may not be the most appealing part of the meal, but you gotta have it. The right database lets you make queries in test mode without touching the disk itself. The data in real-time is separated from what you are testing.

    Due to its inherent flexibility, a NoSQL database lets you re-create whatever test scenarios you need and measure function and performance to see how every layer is working under the new changes. You can also do this fast, keeping your development process moving right until the end.

    Technical support that doesn’t hold you back: One of the biggest pitfalls in Agile is when you hand the fate of your next release over to people who have no idea how urgent it is that you get the issue resolved now. Bad tech support can take an issue that shouldn’t slow you down and freeze you up for hours, even days.

    The right NoSQL solution offers tech support with quick response time, and engineers who have experience developing the database itself. It is important that they know how the database works, and can do better by you than reciting a series of standard test scripts.

    Databases can also notify you of underperformance or any indications that there are escalating problems that need immediate attention before they become full-fledged issues. Small features such as these save you time in having to resort to tech support in the first place.

    Conclusion

    There are always risks involved with making changes to your application. The risk databases pose is that some changes can shut down your database and paralyze your application. A NoSQL solution can reduce this risk, and even speed up areas of your DevOps process.

    — David Ben Horin

  • How to Conquer Test Automation for Your Mobile Testing

    How to Conquer Test Automation for Your Mobile Testing

    Developing your mobile app is just the initial step toward preparing it for market. It first needs to work flawlessly over thousands of different devices, each running over different mobile operating systems with their own version, and inside any of hundreds of unique local networks. On top of that, every feature has to be tested for fast performance.

    That’s a lot of work!

    On top of that, today’s DevOps standard demands that you get it all done in a matter of weeks, instead of months. Eventually, it will be days instead of weeks.

    DevOps1

    This demands test automation. Manual testing beyond going over new code for the next version of your app no longer is acceptable. Mobile applications are ultra-competitive; If an app doesn’t rise to a certain rank within days, it is considered a failure. Mobile test automation underwrites the rapid release cycle necessary to sustain the latest and greatest features on your mobile offering to the public.

    Four Hurdles to Achieve Mobile Test Automation

     Find the Right Test Automation Tool

    The capacity to automate test scripts scratches the surface, but the right mobile testing tool should have more. To support a greater DevOps strategy, it should be able to connect to the cloud and integrate seamlessly to continuous integration servers such as Jenkins to automate as much of the DevOps process as possible.

    In addition, it must run on both native and object web properties, making identification of the components of the app as precise as possible. It should be able to perform more than just functional testing—an automation tool must also allow for good performance testing with network virtualization and load testing options.

    Integration into Existing Testing Environments

    What happens when your test script is perfect but the tool doesn’t accept the language the script was written in? To solve this challenge, you need a tool that can handle all the big testing environments: Selenium, QTP, Microsoft Visual Studio, IBM RFT, Smartbear Testcomplete, Java, Pearl, Python and Ruby. You should be able to write a test script in one of these languages and be able to convert it to any of the others instantly.

    devops2

    Parallel Execution and Adaptability to New Technologies

    The advantage of automated mobile testing is that the scripts run while you are fast asleep, doubling your testing productivity. If you can run the same test on more than one device at the same time, you are increasing the productivity of your mobile testing exponentially. The right test automation solution allows for parallel execution, either by running multiple tests on devices connected to your local computer, or really scaling up by running a single script over tens or even hundreds of devices connected through the cloud. This can be accomplished by setting up a dedicated mobile device lab.

    With the matrix of devices, operating systems, versions and local networks expanding rapidly, parallel execution is a must to enable you to increase your test coverage as fast as the test coverage itself is multiplying.

    The biggest reason for the increase in test coverage is the myriad new mobile devices with new technologies coming to market. The best test automation tools are those that anticipate and are ready to test over new platforms the moment they are made available to the public, and even while still in beta.

    Support and Learning: As Painless as Possible

    Even with the best of everything, you still need to learn the testing tool. You also need to be able to react quickly to every technical issue in your mobile testing. The right mobile testing provider gives you a practical training program, even a certification process, and provides you with 24/7 support. You are investing huge amounts of money to reduce your release time by days, even hours per cycle.  To lose this advantage because of a third party’s inability to reply to your needs in a timely manner is ludicrous. The right mobile testing providers know what’s at stake for you and prioritize their response times accordingly.

    The return on investment in the right test automation strategy is priceless. But to realize it, you have to make sure the biggest hurdles are cleared.

  • Mobile Testing Delivers Big for Pizza

    Mobile Testing Delivers Big for Pizza

    Mobile applications have been disrupting industries worldwide. For some industries, the disruption focuses on business internals, as enterprise apps enable manufacturing processes to be restructured and streamlined. In other industries, the disruption focuses on the customer and how mobility can make life more convenient.

    When it comes to pizza, however, mobile development changes everything.

    I remember how, as a kid, we would hope the teacher wasn’t looking when we used the public payphone to place an order for a pizza to be delivered a few minutes after we raced back home for lunch.

    Now you can do it with the click of a button. Using a mobile application, you can order exactly the type of pizza you like, and it will be delivered to your location whenever you want.

    There are few businesses better-suited for a perfectly working mobile app.

    When we were asked by a multibillion-dollar pizza giant to deliver on its mobile testing, we knew the pressure would be on. The company needed a new quality assurance strategy to handle a mobile app that would direct traffic to its more than 3,500 pizza parlors located within the United States alone.

    The Big Step: From Manual to Test Automation

    At the onset of mobile testing, manual testing was the primary method. As the mobile universe expanded to thousands of devices, a more efficient way had to be developed to support business-critical apps being used by people with different devices and mobile operating systems running over different local networks.

    Enter the dedicated mobile testing lab.

    DevOpsPizza2

    Utilizing our cloud testing solution, a lab of 60 devices was connected to the two mobile testing teams located in the United States and India. Mobile testers had access to the devices as they needed them. With a test automation solution in place, more than 200 scripts were written and deployed to handle the regression testing.

    Every device that wasn’t actively being used by a tester would be busy conducting regression tests. The 60 devices running at the same time enabled parallel execution, wherein an app could be tested over a matrix of devices and mobile operating systems. With our performance testing solution, different network conditions were simulated, expanding the overall mobile test coverage exponentially.

    A dedicated mobile device lab meant that the devices were made available exclusively to the business. This prevented any unnecessary breaches in security. At the same time, all remote mobile testing was conducted within the customer’s virtual private network (VPN), bolstering security even more.

    One of the biggest time-savers was the ease in which test cases could be re-created. As a DevOps solution, both the developers and the testers had access to the same devices. So when a specific bug was reported on a function that wasn’t executing properly over this device running that operating system, the developer didn’t have to worry about finding that device with the right operating system. He simply read the report, clicked the link and accessed the same device in the dedicated lab. The test cases did not have to be re-created because they were available in real time to the developer.

    Mobile testing became a 24/7 operation. Right as the American team was checking out for the day, the Indian team was running the reports on their mobile testing activities, and continuing their work. At the end of the day in India, the Americans came back to work to read the Indian team’s testing results.

    Mobile Testing Produces Sizzling ROI

    DevOpsPizza1

    By upgrading their regression testing from a manual process to an automated one with parallel execution through the mobile lab, the regression testing cycle went from 10 days to 17 hours. The testing coverage also increased to 90 percent for the native mobile app.

    As a result, the company was able to get the latest version of its mobile application to market sooner. The impact was felt beyond the DevOps team as the entire IT department began to plan their strategy based on the dramatically shorter release cycle.

    “What makes mobile testing a DevOps success is test re-creation and CI integration.” says Tal Barmeir, Experitest CEO.

    The customer uses Jenkins for its CI platform, uniting developers and testers toward automating as much of the DevOps process as possible. Granting the developers and testers access to the same devices established a powerful tool for test re-creation.

    Their entire DevOps process was retooled to generate returns that truly deliver!

  • How Mobile Testing Converts to Greater Earnings

    How Mobile Testing Converts to Greater Earnings

    From a business’ sales strategy to the type of coffee it decides to stock in the company lounge, every decision boils down to this: How will it impact this year’s earnings? That’s what makes testing critical for any business with a mobile app: Having a poor-performing app is just like throwing money away.

    There are three primary ways mobile testing translates into more cash for the company: corporate image, performance and speed to market. Read on for the details.

    Testing and Corporate Image

    Treat your mobile application like the face of your brand.

    The majority of time people spend on anything digital is over a mobile application. Users spend more time on their smartphones than they do on their desktop and even television. From a business perspective that means any customer, both real and potential, will experience your brand over a mobile app more than on your TV commercials, physical billboards and even website.

    They will see you over their phone more than in your store.

    devops1

    Mobile testing makes sure that the lights are on in your business, and that the air conditioner is working. We take for granted that when we enter a place of business everything is working properly. If something is off, we immediately recognize it. The same holds for a mobile application. If a function is not working right or is performing slowly, it will impact the user’s decision whether or not to become a customer.

    If it is working perfectly, the larger audience that mobility commands will generate a larger customer interest in your brand.

    Testing and Application Performance

    The faster the app, the happier the customers.

    The instinct for testing applications is to make sure the code itself is working. This is the basis of functional testing. In the age of desktop apps that work directly over the computer’s operating system, or even web apps that work over a local connection, the speed at which your application moved was usually assured.

    Mobility has changed the rules. A mobile app working on a portable device can operate over any of the 400 mobile networks worldwide. It can have to brave poor network conditions, being confined to an elevator, or even riding through a tunnel. All of these different environments affect the speed at which your functions execute, which is no longer static.

    devops2

    If a function moves to slowly, the app will be considered broken. In fact, 90 percent of the mobile applications on a phone right now won’t be there in a year’s time. This is the need for performance, namely network virtualization testing: It makes sure your application provides potential customers with a smooth experience.

    A smooth experience is the best way to guarantee return business, and retaining a customer is 5 times more cost-effective than acquiring a new one.

    Testing and Speed to Market

    Time is more important than money—with the right tools.

    There are 20,000 mobile devices out there, running on four different type of mobile operating systems, all with their own set of versions both new and old. Every day there are devices and operating systems enhancing their capabilities with expanded capacity and new features. This demands that your mobile application adapt by including new features and capacities that capitalize on what the platforms are now offering.

    The key to DevOps is to develop, test, and release the most cutting-edge version of your mobile application as quickly as possible without sacrificing quality in speed or execution.

    devops3

    Even if it is for only a short time, offering features your competitors are not ready to release is like having monopoly on a part of your market: You stand alone. Those customers looking for the best app will have only you to go to.

    Mobile testing is the most arduous step in the DevOps process. A quality test automation tool that includes both performance and functional testing, connecting to a mobile lab enabled by a mobile cloud-testing tool, will accelerate your mobile testing while shortening the release time for your latest app incarnation.

    Conclusion

    In the age of mobile, everything that impacts your mobile application impacts your bottom line. Mobile testing reduces expenses, retains customers and enables your development team to design and release an application that can add solid growth to your company’s coffers.

  • Mobile Testing’s Role in Staying Alive

    Mobile Testing’s Role in Staying Alive

    Have you ever forgotten to take your pills? You’re not the only one. According to the Centers for Disease Control and Prevention, half of the people prescribed medication eventually stop following their doctors orders.

    It’s a dangerous game of Russian roulette. Most of us simply forget. For the elderly, who take more medications with different sets of instructions, it becomes easy to get confused. In cases where their cognitive abilities are diminished due to illness, they can forget on a regular basis. The consequences can be critical.

    adherence3

    Almost half of all failed treatments for any illness were a result of failing to adhere to the treatment prescribed. It is estimated that 125,000 Americans die each year simply because they did not take their recommended dose on time.

    Mobile technology is changing that.

    The newest “thing” to be connected to the web are pillboxes. Smart pillboxes can track if you take your pills, when you took them and the pills you need to take, and even alert you when the box is empty and it’s time to refill your prescription.

    If you fail to take your meds, the box itself will send an alert to a caregiver, physician or family member who can call you. For anyone prone to forgetting, this is a life-saver.

    adherence2

    The advantages of such a technology are clear. So are the risks. Handing over a life sustaining chore to computers demands that we guaranteeing the technology is working perfectly, all of the time. If the mobile apps fail on us, the consequences are devastating.

    Enter mobile testing.

    “Mobile application testing makes sure that every function of a mobile app is working all the time, and in any location. It underwrites all the benefits of mobility,” says Tal Barmeir, CEO of Experitest.

    Making Mobile Testing Work

    A successful mobile application testing strategy can double the chances your treatment will work. To accomplish this, the following areas must be covered:

    Functional Testing: From setting the times, to alerting the user, to notifying the doctor or caretaker if a dosage wasn’t taken, every operation of the application must be working correctly. Not only must it work, it has to work on every different type of mobile operating system, over each type of device and in all versions of both.

    adherence4

    Automated testing: As the technology advances, new features will be made available quite often. For every new feature added to the mobile application, the entire app must be retested to make sure nothing has been affected—even areas of the app never touched by the upgrade. That takes time. The only way to perform this amount of mobile testing in a reasonable amount of time is automating the process.

    Network Virtualization: A doctor can be vacationing on another continent when he or she is alerted a patient has forgotten to take his or her meds. Or, family members can live on the other side of a country and using mobile service from another carrier. Whatever the situation, it is vital that a mobile application will work as effectively in one local network as it will in any of the world’s other 400 to ensure that messages are communicated in a timely manner.

    Mobile technology is poised to extend the life expectancy of everybody using top-of-the-line smart tools communicating with mobile health apps. We will all enjoy healthier and longer lives while paying less in the process. The role of mobile testing makes sure this is a safe progression by giving your apps a clean bill of health.

  • Remote Deposit Capture: Mobile Testing for Your Convenience

    Remote Deposit Capture: Mobile Testing for Your Convenience

    “How much of human life is lost in waiting!” penned Ralph Waldo Emerson.

    Any chore that can be digitized is surely welcome. How about cashing a check?

    Cashing a check takes time. You have to go to the bank, wait on line for the next available teller or ATM. If you go to an ATM at night, you have to worry about who is lurking in the shadows outside.

    Is this really necessary?

    More than 7,000 banks have resolved the issue, saving us all time and hassle. You can now take a check, put it on a table, click a picture with your smartphone, and it will appear in your account as a deposit.

    Using remote deposit capture, mobile applications now save you a trip to the bank. But accomplishing this feat was no easy task.

    Mobile Testing for Mobile Banking is Serious Business

    We are dealing with your hard-earned money. All it takes is one small error, and someone has to spend three hours arguing with a bank manager why their savings is a third of what it was last week.

    Then they go on social media to tell their friends how Bank A took all their money. Then the clients of Bank A decide they would be better off moving their money to Bank B. For the banking industry, mobile testing can mean the difference between offering customers a quality-of-life upgrade and losing business.

    For both the customers and the financial institutions the mobile testing process has to be perfect. To do that, we must hurdle three significant challenges:

    Challenge #1: Achieve mobile test automation

    The test coverage for a bank is a lot larger than for most applications. It can’t be achieved without an automated process coming from a cloud-based mobile lab consisting of hundreds of devices with their own versions, and mobile operating systems running tests all at the same time.

    The challenge is that testing for an item external to the device—the check itself—eliminates the chance for automation. How do we install a robot to place a check on a table, pull out a mobile device from where it sits in the lab, and place it just the right distance from the check before taking a picture?

    The solution was to create a repository of more than 100 of the most commonly used checks. Each check has its own size, color and format. A tester selects a particular check from the repository, and uploads the image file of the check to a phone’s camera app, “fooling” it into thinking it is looking right at the check. Using the zoom function on the phone, the tester has the option to simulate the distance of the check from the phone, determining how far the phone can be from the check to record accurate data.

    Challenge #2: Perform mobile testing on different devices and versions to make sure each picture is of sufficient quality to read the data correctly.

    Some phone cameras work better than others. Some versions of smartphones work better than others. It is essential that the mobile testing tool the banks use is able to work on all operating systems, devices and versions; otherwise, the banks would have to buy multiple testing tools and hire additional staff to operate each tool. And anything that increases complexity also increases the possibility for error.

    Challenge #3: Verify that the data being read is what appears on the check.

    Once the picture is taken, the mobile app retrieves the following information: the date, who is writing the check, who the check is being written out to, the check number, the bank and bank account of the payer and, most importantly, the amount. There is no room for error. The best way to test is to take hundreds of checks, all with their information stored in a database, and through numerous combinations of smartphones, versions and mobile operating systems take pictures of the checks, recording what it determines to be the information each picture contains.

    The phone’s recorded data would be checked with the database of the “real answers.” The mobile testing process continues until the apps are perfect in every detail from every execution.

    Once these challenges were met, the arduous chore of depositing a check became a convenience that you can take to the bank–or not.