How to choose the best tool for your business or IT project

Whether it’s a medical test, a college entrance exam or a fitness test, testing isn’t fun.  Software testing isn’t any different – it isn’t much fun for developers who manually test newly created code for a new application their team creates or updates.  It’s easy to omit testing, but impossible to have a viable software product without it. As much as we would like developers to just get it right the first time, it isn’t going to happen, and it’s not necessarily their fault.

Developers often have little more than an agile user story to work on. Confusion and complexity can grow as different visions of the product are expressed by multiple stakeholders. Developers can’t be expected to crank out an end-product and get it right the first time.  Couple this with the constant tinkering nature of an agile-based project, and it’s easy to understand just how important continuous testing is.

Manual Testing Doesn’t Cut It Anymore

The human nature of software development dictates the need for rigorous testing.  So why would you use manual testing that incorporates the human element as well? Consider the magnitude and scope of testing required today for different applications.  Tests need to be performed for a variety of environments and different data sets. For instance, a web application must be tested in multiple platforms using varying device types, browsers and form factors.  

Automated Testing Should be the New Standard in Testing

Automated testing can simulate workloads representing anywhere from one user to thousands of users; and it goes far beyond the limitations of manual testing.  And when testing is automated it can be conducted endlessly and unattended. There’s no fatigue and the cost is minimal compared to hiring manual testers. Quality assurance automation executes the full gamut of tests you need, when you need them and with increased speed and quality.  Another great benefit? It reports the outcomes and comparative results versus previous assessments.

Different Types of QA Testing and Testing Scenarios

There are many aspects to a successful application, and therefore more than one type of testing to accommodate them.  In the end of course, it’s all about determining if the code behaves as expected.

  • Unit Test – A unit test focuses on a single unit of code such as a function in an object or module.  These tests are short and quick to run. They are especially useful when modifying existing code.
  • Test-Driven Development (TDD) – TDD is more of a development process than a testing process.  TDD breaks up the project into small repetitive development cycles. A cycle represents a minimum amount of new code that must then pass a specific test.  New code is added only if the test failed and is then retested. This process not only creates error free code, but streamlines it as well.
  • Behavior-Driven Development (BDD) – BDD focuses on the business behaviors that the code is implementing.  This is the “why” behind the code. Also referred to as acceptance testing, it helps determine if the requirements for the end user as conceived are indeed met.

Popular Automated Testing Tools Today

Selenium

First released in 2004, Selenium is one of the most popular automated software tools for browser-based web programs.  It is an open source solution and thus has no licensing costs. It accommodates multiple programming languages including Java, Python, C#, PHP, Ruby, Pert and .Net.  Tests can be conducted within the Windows, Mac or Linux operating systems and it supports multiple browsers including Firefox, IE, Chrome, Safari and Opera. With Selenium, you can be assured that your web application behaves as expected under both normal operation flows and unexpected user behaviors.  

Behat

Behat is an open source BDD testing tool for PHP. It’s used to help define how your application should behave in different scenarios.  It utilizes continuous example-based communication between developers and business stakeholders that all parties can easily understand. Every application has a list of documented actions and Behat verifies them by auto-testing them against the application itself.

BrowserStack

Created for testing mobile web applications, it is a cloud-based automated testing platform that incorporates more than 2,000 environments including various mobile devices, browsers and operating systems.  It utilizes mobile emulators of both Apple iOS and Google Android and can be utilized for continuous integration or cross-browser testing.

Cucumber

Cucumber is another BDD tool that focuses on the end-user experience and can serve as a bridge between business and technical professionals.  It supports multiple languages including Ruby, Java, Scala, Groovy and .NET. Like Behat, Cucumber is written in the Gherkin format that uses simple English and is especially user-friendly to non-programmers. It’s so user-friendly that test scripts can be written by those without any prior coding experience.

We’re only scratching the surface here because new automated testing solutions are readily being introduced and expanded upon.  There is no “one perfect” tool out there as every environment is different. When choosing an automated testing tool, consider the type of tests you’ll be conducting, the language you’re working with and ultimately the type of application you’re looking to test. Automating the QA process will soon be mainstream, so it’s best to brush up on the various tools and start thinking about how you can implement QA automation in your company.

Not convinced you’ll get the ROI your business is looking for? Check out our QA Automation ROI Calculator to find out.


Ready to Talk? Contact Us.

Building the right cloud environment to meet business objectives

You’ve probably heard the old saying, “He’s got his head in the clouds,” right? Well today, businesses have a whole lot more in the cloud. According to a 2018 article in CIO magazine, 96 percent of businesses today now use the cloud in some capacity.  Businesses are using the cloud, but they are turning to more than one provider. 81 percent use a multi-cloud strategy.  Even SMBs are embracing the cloud. According to the IDC, more than 90 percent of companies between 100 and 499 employees used the cloud in 2018.  The fact is, cloud computing is a very viable alternative to on-prem computing, and while the two approaches have many things in common, it’s a different world up in the cloud.  Cloud computing utilizes different terminology and protocols supported by completely different architectures.

Multi-cloud, Hybrid Cloud, Hybrid IT

For a startup company today, the cloud is a natural choice, maybe even a no-brainer.  Since cloud computing is based on a variable cost model in which you only pay for the cloud resources you use, the cloud can save companies struggling for capital a great deal of capital expenditure.  The cloud is also perfect because it isn’t geocentric, thus increasing the flexibility and agility of the organization and its users. For companies that already have substantial investment in on-premise environments and data centers, it is unrealistic to simply transition everything to the cloud overnight.  In those instances, a hybrid approach makes sense. A hybrid environment incorporates both on-premise and cloud architectures. Despite the apparent simplicity in all of this, cloud terminology can become confusing so let’s break down some of the basic architectural terminologies.

Multiple Cloud Environment

As its name implies, this refers to the utilization of two or more clouds.  They could be two public clouds such as Azure and AWS or a public cloud and private cloud.  This includes both cloud computing and cloud storage in a single heterogeneous architecture.  The utilization of multiple cloud services offers great flexibility since some cloud environments are more suitable for particular tasks.   It also increases reliability and redundancy while minimizing the risk of vendor lock-in.

Hybrid Cloud

A hybrid cloud is actually a multiple cloud environment consisting of a public and on-premise private cloud.  A good example is Azure Stack which allows you to host resources and services both on-prem and in Azure from a single interface.  A hybrid cloud is ideal for companies that rely on cloud bursting in order to accommodate unpredictable workloads or must host some resources on-premise in order to adhere to industry or government compliance standards. The hybrid cloud offers the flexibility provided by self-provisioning on-demand capabilities of the cloud while retaining full control and management of data and applications when desired.  

Hybrid IT

Most companies that have an existing legacy infrastructure find that not everything in their enterprise is cloud-ready.  That is where Hybrid IT comes in to play. Hybrid architectures incorporate a traditional on-premise datacenter with one or more clouds.  This wide offering of architectures allows organizations to align business objectives with the best available IT solutions.

Azure vs. AWS

AWS and Azure are the two big players on the block when it comes to cloud computing.  AWS was the first cloud player on the market back in 2006 and its headstart gave it a huge advantage over any future competitors.  It would be years later until Microsoft would compete for market share, but the company has a history of entering late and turning up the burners to catch up.  Microsoft has indeed done that with Azure and its solution is growing at an exponential rate, although AWS is still sizably larger.

Both solutions have competitive advantages over one another.  For those companies that utilize open source technology, AWS has been the prime choice as Azure, up until recently, had a large void in open source.  If you are a Microsoft shop and already utilize Windows Active Directory, SQL Server or Visual Studio, then Azure is a natural choice for its familiarity and compatibility.  While Azure is extremely popular amongst C# developers, those who work with other languages such as Node.js, Python or Ruby on Rails gravitate to AWS. It’s also a predominant choice for those that work with Linux and other database platforms.  Azure has a strong concentration of enterprise customers as Microsoft has vast experience working directly with large companies. Much of the initial growth of AWS was due to smaller organizations although it has made great strides in the corporate market recently.

Cloud Computing Trends

Businesses aren’t looking for a specific cloud provider.  They are looking for solutions to business problems. Because no two cloud service providers are the same, companies will continue to utilize multiple providers in order to align business objectives with the best solutions.  

Other trends in the cloud computing market:

  • Up until recently, cloud computing was restricted to the DevOps world and testing environments, but more and more production workloads are being migrated to the cloud today.
  • Artificial intelligence (A)I supported by Internet of Things (IoT) sensory technology will continue to play a growing role in cloud computing due to its scalability and centralized architecture.
  • Voice interaction is becoming a major focus as developers greatly accelerate its use in apps.  Amazon holds a clear lead in this facet thanks to Alexa.
  • Both AWS and Azure are unveiling a serverless computing paradigm in which clouds simply execute snippets of code without bothering developers with provisioning underlying infrastructure.

When it comes to cloud computing, there is no “one” right solution, just as there is no absolute choice between Dell or HP when it comes to physical servers.  Cloud computing is simply about finding the best solution at hand, for the task at hand, and AWS and Azure both have the solutions to accomplish this.


Ready to Talk? Contact Us.

Top 7 Questions to Ask Your Next Development Firm (and the answers to listen for)

By Mansoor Anjarwala

So you have a development project you need to farm out.  Maybe it’s a mobile app for your customers or an enterprise business application for your business operations.  Whatever it is, you need a development team and chances are that means hiring a development firm. For those organizations who haven’t been through this type of hiring procedure, it can be a little scary, especially if you know little about the coding process.  Although you may not fully understand the technology behind the development process, you are still looking for the same qualities you would seek in any project management team. Below is a list of some of the key questions you should ask.

How do you go about understanding and developing a software project?

While you want to hire the most competent developers possible, you don’t want a team of programmers aimlessly writing code.  It is imperative that the team understands your business and is able to capture the vision of the project. A successful development team will have some type of methodology they use to transfer the information about your business to the team so it can comprehend the business problems the software is addressing and the goals and objectives it must meet in order to be labeled a success.

Who will be the ambassador on the team to communicate with?

You need a single point of contact that will serve as the liaison between you and the developers.  This is not the same as a sales person or an account executive. This person is usually someone in senior management that knows the coding process, understands business and has great communication skills.  It is this team leader that will be taking the time to learn about your business, discern project needs and convey them to the team. Having a single point of contact also establishes accountability and ownership of the project.  Make sure you ask how much of their time will be allocated to you throughout the project and how they prefer to communicate. It’s important that you and the project spokesperson have a sense of rapport since you’ll be working together as a team.

Have you worked on a similar project?

At the very least you need developers who are experienced in the required technologies.  An example would be experience developing for a certain platform such as iOS or Windows. But technology fluency is the bare minimum you should be looking for.  Ideally you want a development firm that has worked on projects within the same industry as this denotes a basic understanding of your business from the get go. It is best if prior projects they have worked on had similar application features such as those involving payment integrations or GIS mapping.  Consider someone who has worked with clients with a similar culture as your organization. Working with a startup company is much different than working for an established multinational corporation. Ask the development firm to see samples of some of their prior work. It’s easy to find works samples for mobile apps as they are readily available in online app stores.

How many developers do you have?

When it comes to software development, two minds are better than one. The smaller the firm, the tighter the resource constraints and the less potential bandwidth they may have.  On the other hand, a large firm may be more rigid to work with. Although your project may be assigned to a single developer, you want a firm that has multiple programmers on staff that can be made available for your project as there will be challenges throughout that may require a different lens or level of experience.  Time constraints at some point may necessitate other people coming into the project as well.

What is your scoping process?

Software development is an involved process.  You aren’t just going to be handed the final software package and that’s it.  The project has to be defined in order to accurately estimate the time, effort and costs of the project from start to finish.  Project scoping involves determining and documenting a list of project goals, deliverables, deadlines and cost estimates. It also includes technical items as well such as required features and tasks. When interviewing a potential development firm, find out what their scoping process entails. You will obviously want to see demonstrated progress at regular intervals to assess how things are proceeding. These deliverables should include completed shippable features that are ready to release.

Do you use automated testing for your code?

Another key question to ask your next development firm is about their QA process. If your development project is like any other, it needs to be completed as soon as possible.  Testing for bugs is an inherent part of app and software development. Used to be, developers had to conduct manual testing which added unnecessary time to the project as scripts had to be written, which also required a certain level of expertise that resulted in additional cost. Today there are automated testing tools. Developer teams use these tools to perform repetitive on-demand testing as the code is created. Aside from saving time and money, recurring testing processes increases the efficiency of the coding process and improves accuracy within the code itself.  

What project management methodology does your company use?

Most reputable development firms have a project management methodology; it’s important to ask a prospective development firm about the methodologies they use. There are two common project management methodologies used today in software creation: Waterfall and Agile.  The first, called Waterfall, is the more traditional management style, having been utilized for many years.  It is a linear approach that consists of multiple stages such as planning, design, coding, testing and product release.  Each successive stage cannot begin until its predecessor is complete. Usually this means that each stage must be confirmed by the customer.  Some refer to it as a slow and steady approach. It is ideal when the customer has a defined vision of the desired outcome. As a result, fewer changes or surprises will be incurred.  

A newer more modern approach is called Agile.  As its name implies, it is more flexible than Waterfall as it is more adaptable to perpetual changes.  It is designed to obtain continuous improvement throughout the project. Rather than a linear approach, it is more incremental and iterative.  It incorporates experimentation and some degree of trial and error. Rather than stages, the project is segmented into repetitive modules called sprints that are completed in a short amount of time.  Agile depends on a high level of customer interaction and solid teamwork. Designing and testing occur during every module, making it ideal for finding bugs and incorporating sudden code redesigns. Agile is ideal for projects in which there is no clear established vision or when the customer needs something quickly.

Although we have barely scraped the surface of the potential interview process, these questions are a good start to help provide a foundation to build from.  Software development is a costly endeavor when done right. Be ready to ask tough questions that will allow you to best discern the abilities of any outsourcing partner.  Best of luck on your project.

What is QA (Quality Assurance) Automation and what are the benefits?

Remember all of the papers you had to write in school and how your teacher always told you to proof your work?  Chances are you considered it a chore taking the time to review your homework with scrutinous attention. Or maybe you were one of those that never bothered to proof it. Proofing isn’t fun for most people. Most of us enjoy creating something far more than anatomizing it for mistakes and oversights.

The same is true for writing software.  Creating code is much more satisfying than testing it in most cases.  Unfortunately, just as the failure to proof a scholarly paper rarely resulted in a top grade, creating software without ample testing throughout the coding process usually results in software that is prone to errors and bugs.  That is why quality testing is so important. The problem is that manual testing is cumbersome and time consuming. As a result, it often isn’t implemented as often as it is required. Fortunately, there is a better, easier and efficient solution available today to take the arduous task of testing off your hands.

 

QA Automation – What is it?

Many developer teams are turning to automated testing tools to perform repetitive, on-demand testing of the code they create.  Rather than depend on manual testing that is executed by scripts that are also manually created, QA Automation executes the full gamut of tests you need, when you need them. And it’s done using AI (artificial intelligence) technology.  It also reports the outcomes and comparative results versus previous assessments. QA automation allows for demand-driven testing that is consistent and reliable in an efficient cost savings manner. All browsers and user environments can be simulated with QA Automation, allowing you to test each action step throughout the program in your web-based or desktop application.  Finally, QA Automation offers a high degree of flexibility. It can be utilized as your primary testing mechanism or utilized to supplement manual testing procedures.

 

The Benefits of QA Automation

 

QA Automation Increases Efficiency

There are some things that machines do far better than humans, especially when it comes to mundane, routine, repetitive tasks.  Imagine your top programmer testing and retesting the latest code created by the team throughout the day. Is the same attention to detail made at the end of the day as at the beginning?  Machines are ideal for testing code. They can do so a million times without any deviation to routine or neglect of detail. They are the ideal mechanism to test code.

Not only does QA Automation improve the efficiency of your testing processes, it does the same for your code development progression as well.  The perpetual ritual of testing and retesting serves as a constant interruption to the task that your developers do best – write code. Why distract them from what they do best when a machine can perform the testing process more reliably.  Any disruption to the creation process creates a bottleneck. QA automation eliminates those bottlenecks, freeing up your staff to focus on creating rather than proofing.

 

Improved Accuracy and Reliability

The pace of application development today is relentless, and is only increasing with time.  This unremitting pace also increases the necessity for testing. If a machine doesn’t care how many tests it runs, then your developers can increase the test schedule as well, integrating it into their routines so that it becomes a natural component of the build process.  Outcomes and outputs are no longer predicted, but confirmed. Because the recurring testing processes are consistent, greater accuracy is achieved, leading to greater reliability. All of this translates into more success whenever code is released to production. The business is happier when the cycle time to make code live is shorter.

 

QA Automation saves and money

The old cliché, “time is money” rings particularly true, especially when it comes to labor intensive practices such as code development.  QA Automation allows your developers to stay focused on creating code that adds direct value to the business rather than spending valuable time creating manual test scripts.  While you can utilize dedicated software testers, they cannot replicate the inexorable pace of automated testing. Money invested in automated testing is recovered quickly due to the drastic reduction or even possible elimination of manual testing hours.

Technology professionals know all too well that not every test is going to be a success, and with fewer tests runs, the more time it usually takes to remediate the bugs discovered in each manual assessment.  By increasing your test frequency using automation, you shorten the period in between those tests, making remediation necessities more manageable. With QA Automation, test frequency doesn’t directly relate to added costs.

Automating the QA process is a win-win for everyone involved in the software development process.  Your developers can stay focused on the task of creating and updating applications that generate value for your company.  The software they create is more reliable, and consistency means end users enjoy a better experience. All of this translates into lower costs, which makes executives and business leaders happy as well.

 


 

Ready to Talk? Contact Us.

 

 

 

Introduction

As a small business, you have enough challenges keeping your head above water and focusing on how to grow. Navigating the digital world can be complex if you don’t understand the various channels and what you should focus on to get the most bang for your buck.  Even if you do understand the technologies, how do you find enough time in the day to do it all?  In this paper we will give you a concise list of things you can easily do to boost your business by leveraging the power of digital with web, social, and mobile.

According to the Boston Consulting Group, businesses that make use of the web expect to grow 40% faster than those that don’t.  And according to Google, 97% of consumers go online to look for local products, yet only 37% of US small businesses have an online presence.  Increasingly, the web is important, but so is making use of social media and mobile technology to engage  with your potential customers.

If digital technologies like web, social media and mobile are so important, then why don’t all small businesses make use of them?  There are several reasons that include perceived cost associated with doing it, not having enough time, or believing that it’s just too complicated.  Lucky for you, there is plenty of help to address the complexities of digital while also managing your time challenges.  There are marketing services companies that cater to small business needs.  It’s also less expensive than you think, especially if you can pay for it with the increased sales that you can enjoy.

So let’s get to it – here are our top tips for digital success.  

Responsive Design

 

1.  Have an online presence with a responsive design

Since consumers are going online to search for businesses, unless you have a website you will not be found!  Consumers will go to your competitors if they are easier to find.  A couple of other things to consider are optimizing your site for relevant keywords that consumers may be searching on and making sure you have a responsive design. By having the right information and content on your website, you will help your company be found when consumers are searching.  

A responsive design simply means that your site is optimized for viewing and interaction across different types of devices (computer, tablet, mobile).  The site will be easy to navigate, read, and interact with, taking into account the different screen sizes that your web site can be accessed from.  Also consider the user experience.  They want to be able to access the information in as few clicks as possible.  So, put yourself in the user’s shoes when designing your website – easy to navigate equals better engagement for you.  Clunky or disorganized websites will result in potentially lost sales opportunities or your user exiting the site.

 

Google Ad

  1. Get your business on Google

Getting your business listed on Google is another important step to getting found online.  Google My Business helps you get listed on Google and also provides key information such as business overview, hours of operation, phone number, and address.  For users using their mobile, they can use Maps to get directions and click to call.  Consumers can also leave ratings and reviews of your business.

 

  1. Advertise online to drive traffic

These days, advertising online has also become important to drive new customers to your business.  It’s fairly easy to set up an advertising CPC campaign on Google.  With Google Adwords, you can specify whether you want your ad to be local and what specifically you want to advertise.  Google provides tools to help you decide which keywords to advertise, setting up budgets, and managing the whole campaign.  And the good part is that you only pay if someone clicks on your ad.  There can be potentially many more people that see your ad and read it, but you don’t pay unless they click.  It’s important to track how much business is resulting from your advertising budget and make regular adjustments as needed to get the most out of it.  

  1. Use social media to connect with your customers

The top social media platforms you should consider are Facebook, Twitter, Google+, Youtube, and Pinterest.  You don’t have to be on all of the social media channels, but the ones that make the most sense for your audience.  It gives you an opportunity to build loyalty with your customers and connect with them outside of your normal business interaction.  It also provides an avenue for you to then share what’s new with your business, advertise specials, and foster a loyal customer base that will keep coming back.

 

use mobile

  1. Use Mobile

We already talked about a responsive design that helps you interact with customers that are on different devices such as tablets.  That will also help you for customers using mobile.  Increasingly, consumers are using their phones to make purchases, search for local businesses, and using click to contact the businesses directly.

People are also spending more and more time on their mobile compared to other devices.  Their mobile is always within reach.  If it makes sense for your business, you should also consider mobile advertising, such as SMS, MMS, or banner.

  1. Use analytics to understand and improve

Now that you are online, advertising, and getting found by your customers, you need to understand if the money you are spending is giving you a return on your investment. Analytics will help you track and review data that is relevant to your business.  Best of all, Google Analytics is free!  You can track every click, measure every dollar, and get insights on the type of device that your customers are connecting with (mobile vs. desktop).  And by looking at how many conversions you have, the dollars of business that translated into, and how much you spent on advertising, you can tie it all together to ensure it is paying back.  You can also tell if your activities on social media are driving traffic to your website.  

Summary

Now you have the 6 top tips for succeeding in the digital world.  Perhaps you were already doing some but not all, now is a chance to dive into the rest of the digital initiatives.  Some of these tips are free to implement (Google My Business for example), so it won’t cost you a cent.  It will take an investment in time, but increasingly digital is the way to reach your target customers.  And if you can’t do it all yourself, there is plenty of help out there without breaking the bank.

 

Ready to Talk? Contact Us.

As technology and business leaders, many of us have been part of a decision around building new technology solutions to create new services or products. In this mobile-first era, one of the first questions you are challenged with is – do we need an App for that? Or can this service or product can utilize just the mobile web version?

We all wish this was an easy yes or no answer. But the answer may be much simpler than you think. There are 3 main criteria you need to consider that will help you make the decision.

#1 – Application feature set

If your product needs built-in phone features like GPS, Accelerometer, Contacts, Push Notification, etc., then you will need to build an app. From the technological advancement with HTML5, some of the phone features can be accessed so you may be able to get away with only a mobile web version. You will need to research the specific feature set requirements with what is possible to do within HTML5.

If the answer is – yes, I have to use phone features that are not available through HTML5, then your decision is made, no need to read further!

#2 – Audience

Just because a customer downloaded your app does not mean that they will be using the app for life, or even at all. The data shows that people actively use only 5-7 apps in a given month. Unless there is a compelling need for the users to download the app, they will not.

Again, your answer here will determine what direction you take.

#3 – Resources

Since you have read it this far, the assumption is that the decision is still pending. Developing a mobile app is a skillset that not all developers hold. You should carefully evaluate the resources at your disposal in making the decision. Not only do you have to build an app (possibly on multiple platforms – iOS, Android, Windows), but you also must manage and maintain it. You should consider the total cost of ownership as you make this decision.

In conclusion, whether you build an app or not, you will need to develop a solution that is mobile responsive at the least.

Sincerely, The Xcelacore Team


Ready to Talk? Contact Us.