Posts

API Testing: Do It Right and Automate

Software development in 2018 looks nothing like it did a decade ago. Developers have been driven to find faster and more efficient ways to produce a finished application. Customers demand better products, and market pressures mean get your apps out now or risk annihilation from competitors.

This means abandoning the waterfall method of software development where each part of a program was completed before the next was started, often leaving error identification (and subsequent delays) until the end of the cycle. Instead, developers are now embracing Agile development with its highly integrated production methodology, often releasing product in two-week sprints.

APIs Can Get Your App Market-Ready Faster

We live in a fast world. Enterprises that are big users of technology need to keep up with the pace of change demanded by their customers. This can put a high degree of stress on internal IT teams and lead to the inevitable coding errors and resulting delays in new product release.

An advantage is the ubiquitous use of APIs or Application Programming Interfaces. APIs allow nearly limitless possibilities for how applications can interact with each other.

However powerful the use of APIs can be, they also need to be put through a rigorous testing process. Unfortunately, this often places added strain on a company’s IT team that may not be familiar with the most effective testing methodologies.

“Often a client doesn’t know what KPI they should focus on or they don’t define it at all. Then they’d have no way of knowing what the metrics are for the data they’re gathering. But if you do it right, you get the right information back from the metrics to make improvements.”

Ashish Pandey, Optimus Information’s Technical Lead

API Testing Begins with KPIs

API testing can be the most challenging part of software and QA testing because APIs are complicated creatures, using protocols and standards not often seen in other forms of testing.
It’s critical to test all the components of the API – not just its UI or its functionality. Testing performance and security are just as critical.

To test properly, says Ashish Pandey, Optimus Information’s Technical Lead at the company’s location in India, it’s important to begin with Key Performance Indicators (KPIs).

Don’t Forget Security and Performance

In addition to defining your KPIs, you also need to focus on more than UI. Some customers, Pandey continues, concentrate on just the UI portion of the application and ignore testing the other components. Security and performance are two areas often overlooked and, if something breaks, it’s probably because key areas within the API were ignored in testing.

“When we test APIs for our clients”, says Pandey, “we generate a lot of data which gives us and our clients a clear summary of what might need to be improved in the future.” This can only happen when thorough testing is done and nothing is left to chance.

While Ashish admits that thorough testing of the UX is extremely important for the customer,  it’s the KPIs that measure the data that then determine the performance of the application. If there are problem areas turning up, they can be remedied in a matter of seconds.

Fail Forward Faster – Automation is Key to Proper API Testing

Proper testing of an API is accomplished by running test cases which are designed to uncover failures. It can be extensive and time-consuming – the opposite of what agile development tries to accomplish – so Optimus specializes in automating as much of a customer’s testing as possible.

It begins with the test cases, themselves, Pandey explains. “We take the customer’s test cases and analyze them to determine if they are ‘automatable’ or not. This makes it possible for us to suggest the correct technology stack with which the automated test could be performed.” In the future, the customer simply runs automated scripts to test different iterations of their applications, saving a great deal of time and money otherwise spent on manually writing the test scripts themselves.

iStock-870784968 API Testing: Do It Right and Automate

The Optimus Test Harness – Why No Company Should Test Without It

A further advantage for Optimus customers is the use of an open source test harness. Ashish Pandey is one of the creators of the Optimus test harness which uses open source components and is configured to test cloud-based applications.

Optimus estimates that 85% of its customers are technology firms that have cloud-based apps often undergoing testing as new iterations are created. Optimus has designed the harness to perform automated testing at different levels. “If we’re doing test automation at the UI level”, explains Pandey, “we have the ability to create automated test scripts for UI. We also have the capability to test at the full API level as well. In fact, our test harness is efficient enough that customers can perform a wide variety of testing on things such as execution of SQL queries to their database. We have built in to our harness APIs like SoapUI, WebSockets and others.”

Test Feedback in Hours (Sometimes While You Sleep)

What Optimus strives to do is provide customers with the sort of speed and agility that can be achieved through automation. “Many of our customers are into Agile development, so what they want is quick delivery of their app with feedback in a few hours,” says Pandey. “Some of them are also evolving with DevOps practices and they want results fast.”

Automated testing, he points out, means that if a customer has three or four hundred test cases to run and each test takes four hours to perform, automation allows Optimus to test while the customers are sleeping. “The next morning, they have the results in their hands, rather than having to wait several days,” Pandey concludes.

Understand and Implement the Right Methodology for Automated Testing

Optimus has one aim with its clients: to ensure that they implement the right thinking and methodologies around testing. Doing so will improve the customers’ UX, decrease errors and get the app to market faster and on time.

We understand Agile development, DevOps and automated testing and how the combination leads to rapid deployment of new, error-free applications at greatly reduced costs. We also know that this translates into powerful ROI for our customers.

To learn more about using API test automation to make your software better, faster and more secure, download our new eBook now.


More resources:

Outsourcing Your Software Testing: When Does it Make Sense

One of the biggest challenges facing any organization that produces software is testing it. Using in-house testing methods may lead to a number of issues. Insiders often have a particular feel for how a program works, and this can lead to them miss problems. Also, many organizations simply don’t have the experience dealing with testing as a specific trade. It’s not usual, therefore, for operations to outsource their software testing efforts. Here are a few key ideas to keep in mind as you face that choice.

Automation vs Manual Testing

Some tasks in testing are simply too hard for a human user to truly duplicate at a scale large enough to produce meaningful data. For example, companies trying to test the functionality of APIs will have a difficult time hitting servers with enough requests to simulate the load that millions of real-world users will produce in employing a fully deployed version of the software. This is a case where automation of testing efforts might prove to be highly advantageous. Similar cases often emerge when a company needs to test the scalability and endurance of software, and automation is also a common choice for testing how well spikes are handled.

Conversely, automated systems often struggle to fully reproduce usage behaviour. User interface issues are especially hard to detect by any means other than real-world use by actual humans. In instances where the user interaction with the software is more important, it may be wise to look toward a manual testing solution.

For companies using automated models, many are turning to Agile processes. This approach allows them to focus on providing support in shorter sprints. In environments where frequent releases are anticipated, an Agile model using functional and regression testing helps to see that nothing is broken. This also limits the leak of issues into production models, since the process has multiple redundancies built in.

In-House vs Outsourced

There is often a strong temptation to test software solely in-house. In the early phases of a project, this can produce cost savings. It also has the potential to speed projects up, but this swiftness may be paid for later if in-house testers aren’t able to identify potential problems early on. Unless an organization has the resources required to effectively build its own independent, in-house testing division, there are huge possible downsides to handling the task that way.

Outsourced solutions for testing are common. Not only do outsourcing firms bring greater independence to the process, they also are capable of a level of specialization that may actually speed projects up. For companies overhauling legacy products, outsourcing options are often very helpful, as they often have competencies in the use of older systems and programming languages.

On-Shore vs Off-Shore vs Hybrid

The question of outsourcing software testing also leads to questions about exactly how close to home the testing provider needs to be. On-shore firms tend to be much less cost-effective upfront, but they often carry with them some added advantages. Foremost, employees of on-shore firms are more likely to be native speakers of your company’s language. They also are more likely to work in a time zone close to yours, and that can make scheduling of conferences and consultations simpler.

Off-shore firms tend to bring one specific advantage to the table: price. Work that might cost hundreds of thousands of dollars to perform in the U.S. may cost less than $10,000 to do overseas. That said, many off-shore companies can deliver surprisingly impressive results for the price. If you’re comfortable handling conferencing in a flexible manner, off-shoring often can yield major savings.

This is another case where companies often pursue a hybrid approach. Working with a consulting firm to determine what tasks are better to do on- or off-shore may also be beneficial.

Determining Qualifications and Expertise

The most widely recognized governing body in the industry that grants qualifications is the International Software Testing Qualifications Board. The ISTQB offers two tier, certifying engineers who have beginner-level experience of less than 5 years and those who have more. In many instances, it may be simpler to look at technical qualifications, like programming and administrative certifications from Microsoft and Oracle, to establish competency.

It’s wise, however, to not overrate the value of qualifications when dealing with software testing. When possible, you should ask services providers to supply case studies and references.

Conclusion

Software testing, especially once an organization has expanded to the point that it expects a large user base, is important to perform. The question that each company faces is how to divvy up the workload. Some tasks are ideally suited to automation, while others are best handled manually. Likewise, it may make more sense to employ an outsourced firm or even an off-shore company to deal with these aspects of the job. With a little forethought, you can see that your software will be tested thoroughly and without breaking your project budget.

 

If you have questions about outsourcing or are interested in outsourcing your software testing activities, give us a call. We’re always happy to answer any questions.

Download your free Selenium WebDriver Overview

selenium-webdriver-overview.1-300x117 Download your free Selenium WebDriver OverviewThis guide is written to explain the value of Selenium to developers, CTOs and other key stakeholders who need a high-level understanding of Selenium, but don’t need to understand the particulars.

The guide is of value to anyone who fits that target audience, or who needs to explain Selenium to that target audience.

It also includes case study examples of how Selenium is being used to solve real world testing problems in e-commerce and SaaS settings.

Outcomes:

  • Learn Selenium’s core features and capabilities.
  • Learn about Selenium integration with test frameworks, build automation tools, IDEs and ALMs.
  • Understand the basics of data-driven, keyword-driven and hybrid testing.

Download-Selenium-EBook-300x41 Download your free Selenium WebDriver Overview

If you need help with Selenium, then be sure to connect with us for a free one hour consultation.

Software Testing and Quality Assurance Event in Vancouver BC

Software-testing-Vancouver-event-300x200 Software Testing and Quality Assurance Event in Vancouver BC

Software Testing Event in Vancouver

On November 7th, OptimusQA organized a breakfast event for industry leaders in B.C. More than 30 guests attended the Software Testing event at Vancouver Terminal City Club in downtown Vancouver.

The topic of the event, “Sensible, Pragmatic and Effective Testing”, covered the breadth and depth of knowledge required for decision makers to evaluate the testing efforts needed to confidently provide quality assurance.

There were many questions, interactions and ideas floating in the room and we received a lot of positive feedback resulting in offline discussion. We look forward to hosting the next event. Connect with us to learn more.

If you were unable to attend the event or would like to view again, the video is embedded below. Enjoy!

[youtube height=”400″ width=”600″]http://www.youtube.com/watch?v=YWUZQxIURxk[/youtube]

Software Quality Audit for a Web App

We recently did a project for a local organization that was about to launch a new web-based application. They had the application developed by another vendor and wanted to complete due diligence before deploying to production.

We reviewed the application, compared it to the requirements, conducted end-to-end quality assurance testing, and conducted a full code review before giving our client a complete report including defects and recommendations. They then shared this report with their development partner so they could complete the project and deploy with confidence.

Read the full Software Quality Audit case study.

Website Performance Testing

Our client was weeks away from launching their web-based strategy game and wanted to make sure their servers (hosted on Amazon Web Services) would scale according to demand.

Our job was to hammer the servers to see at which points things would slow down and identify which functions slowed down the most.

Read the full story in our case study on Web Application Performance Testing.

Manual Website Testing

We recently helped a client conduct manual testing of their web-based application across a combination of operating systems and browsers. Our testing was focused on functionality, compatibility, and localization as the service is provided world wide.

The goal of the project was to give the client confidence in the stability of their application by conducting thorough cross-platform testing. Our test results, bug reports, and recreate steps enabled their developers to prioritize and address the identified issues. Once issues were resolved, we were able to conduct regression testing and provide the final test results.

Read our complete case study on Manual Website Testing and connect with us to learn more.

Essential Software Testing

Software testing is an essential part of any new software release. According to a study conducted by the US National Institute of Standards and Technology on the impact of software failures, it was reported that software errors cost the American economy almost $60 billion per year.

The OptimusQA team tests a wide variety of software, web, and mobile platforms, providing services from fully outsourced testing to strategy consulting and test automation. Our team adapts to your preferred processes and tools, able to provide recommendations as we work as a seamless extension of your team.

Our clients are able to deploy their software with confidence, as we provide compatibility testing services that evaluate cross-OS platforms, cross-browser, and hardware platforms – both automated and manual. We provide a well-designed and easily customizable compatibility-testing matrix and we have tools and processes in place for an overall dashboard view.

Software testing improves the quality of software, it reduces implementation costs, and it provides a faster time to market when properly structured and implemented. Companies that consider all risks, including productivity and consumer impact, are wise to invest in quality management, including software testing. Defect prevention results in saving related to quality, helping to guarantee brand loyalty and repeat customers.

Quality assurance can sometimes be overlooked or skipped altogether, as it is not traditionally seen as a profit-making department by some executives. Those; however, who shortchange their software products by providing a sub-par version will soon discover the high costs associated with a poor product release – including disappearing customer loyalty, diminished sales, lack of repeat customers, poor employee retention, and low profits. In short, skipping on quality assurance and software testing can lead to disaster.

We work closely with you to determine if an iterative or sequential approach is preferred. Iterative approaches fit companies that want their project delivered in increments, whereas a sequential approach involves all the project planning to be done upfront with a final project delivered at the end.

Providing a quality product will boost software sales and consumer trust in your product, and testing that software properly will save high costs in releasing numerous iterations to correct past mistakes.

With OptimusQA as a partner, you gain a flexible pool of talented software testers, allowing for the sufficient scope of required testing to improve the quality of business-critical systems in a short period of time.

We offer the following services:

  • QA Strategy
  • Test Planning
  • Functional Testing
  • Performance Testing
  • Security Testing
  • Compatibility Testing
  • Report Testing
  • Cloud Testing
  • API Testing
  • Game Testing
  • Mobile Application Testing
  • Test Automation

Software Testing a Growing Career Option

While software testing was once just a subset of software development, and an afterthought with testers cleaning up after developers, software testing is now a solid career in its own right, estimated to reach $50 billion by 2020 from $30 billion in 2012. Expected to capture the majority of the business, India should have 55% of the booming software testing market by that time.

lightbulb-225x300 Software Testing a Growing Career Option

Software testing has become more challenging than ever before, with the rise of mobile technologies and big data and technologies like cloud. Because of this shift, the field now requires broader talents than it’s demanded in the past, with employers requiring everything from test automation to big data testing to selenium and mobile testing.

Testers are now expected to have a larger skill set with broad skills across a variety of platforms and specialties, including mobile. They are also expected to have broad, non-technical skills, like communication, critical thinking, and analytical skills. A great tester gives developers the feedback they require, in the right way, and at the right time. Positive reinforcement is touted as very important on many software testing blogs, as testers are often the bearers of bad news and must be able to disseminate information in a way that will make developers understand and be open to the conversation.

Skills required of software testers, in addition to technological knowledge, should include communication skills, an analytical mindset, the ability to think logically, a positive attitude, and don’t forget those programming skills!

Software testing is a fascinating career for those who love being exposed to the latest software and adding their two cents. It can be highly intellectual, as analytical skills must be employed to find issues and bugs that others wouldn’t have the patience for. There is ample opportunity to grow in this field, and enough work in the future that software testers will be able to find their niche market and specialize in the area to which they are the most drawn to, whether it be big data, mobile, or something else entirely.

This is a fast-changing industry, which is experiencing global influence and trends, and as it grows, there is monumental opportunity for those interested in building their career in an interesting area.

Software testing is indeed a growing sector. IT contractors are currently seeing an increase in fields including web development, testing, but in particular, software testing, which is the bright spot, as demand in the economy has spiked quickly and unexpectedly in 2012, with opportunities increasing as we move through 2013.

Optimus QA is no exception to this trend – we are hiring for Quality Assurance professionals! Be sure to visit our career page if you feel you are a candidate for this type of work!

Five Software Testing Tips

1. Prioritize your Fixes

Your software may have more bugs than you have time for at the moment, so it’s important to prioritize your fixes, ensuring that the most important issues and the issues that could be easiest to fix are tackled first.

It is absolutely necessary to have a plan of attack, and by dealing with smaller things that only take a few minutes to repair and ensuring that the most important and most widely reported issues are dealt with, you’ll be more efficient than fixing everything at once despite priorities. Keep your team in the loop – whatever process you are using for software testing should be transparent to help ensure everyone is on the same page and that priorities are clearly drawn to improve efficiency.

2. Respond to Users

You may have a list of problems or bugs that exist in production, but perhaps your users haven’t noticed or don’t care. If users are not asking for a fix, the issue can likely be put on the back burner unless it alters the functionality of the software. Listen to your users to prioritize the issues that matter most to them. After all, they’re the ones actually using your software.

typing-300x170 Five Software Testing Tips

3. Use the Right Tools

Software testing tools exist for a reason, and there’s no reason not to use them! Find the best tools for your own software and stop relying completely on your own testing abilities – the right tool could point you in the right direction or help you to discover issues you may not have known about or wouldn’t find otherwise. Most importantly, tools often provide metrics to prove what you may think you know, or can offer time saving techniques to allow you to get on with what’s important.

4. Share Your Results

You may want to keep your test results to yourself until you’re finished testing and have an exhaustive list of everything that needs to be fixed; however, if you share your issues as you find them, it is more likely that a fix will be found with more ease.

5. Learn & Improve Your Skills

 It is essential to improve not only your skills, but your testing processes and testing workflow, to ensure efficiency in software testing. Don’t keep testing the same way you’ve always done it – explore new tools, engage with your users, network with other testers, and solicit feedback from your employees and co-workers. It’s important to always be learning and improving your skills in order to up your software testing game and ensure that you strive for personal excellence, resulting in thoroughly tested software.

Portfolio Items