Give your testers a break! Discover how our test automation solution can help your business.

We believe automation should deliver not only better applications, but also be cost-effective and get your new products and features to market quicker. Why not pick our brains about how we do this for our customers?


What We Do


As a specialist software testing company, we build game changing software testing tools & offer testing services.

We complement your current quality program to create a paradigm shift in your application quality.


  • Consulting Advice from Dev to Delivery

    Consulting advice that covers testing strategy development, expert validation and application architecture reviews Learn More


  • Digital Test Practice Development

    Helping you create a scalable and responsive program to help you improve application quality and release speed Learn More


  • Outsourced Software Testing Services

    Proven software testing services & test automation services for any application. We help you sleep easier. Learn More


  • Testing Tool: Qsome Technology Platform

    Our world-class test planning, management & execution tool built for the digital age with a focus on digital test automation Learn More

Explore Solutions

Software Testing Solutions For Today's Delivery Challenges


  • Today's businesses & consumers interact with your app across multiple devices, so why should your testing be restricted to only a few?

    A robust testing program caters for functional, performance & security testing across all relevant devices. Does your testing program do this?

    Learn More


  • The entire premise of continuous delivery is speed and accuracy in execution. Both of these elements cannot be achieved using traditional testing tools and techniques.

    The Qsome Technology Platform is built to improve quality at speed. The combination of technology and bespoke services allows you to achieve your continuous delivery goals.

    Learn More


  • Today's users take mere seconds to judge an app's user experience. You should give them every reason to rate your app highly.

    Additionally, the speed at which app updates need to be released requires a serious quality program that inlcudes automated testing.

    Learn More


  • Performance optimisation is a dynamic exercise that requires multiple iterations. Its importance is magnified in a digital context where users expect, rather than desire, responsiveness.

    The Qsome Technology Platform allows users to execute load tests using functional test scripts. No extra investment is needed.

    Learn More


  • We have developed proprietary algorithms that enable more relevant test management & enhanced coverage & oversight of the most at-risk processes.

    Our custom-developed dashboard gives your team a conscise and updated view of the riskiest processes & the outcome of their recent test results.

    Learn More


  • Making sense of data is one of today's greatest challenges and potentially a very lucrative opportunities.

    Our ability to conduct intensive data-driven testing at speed will help verify that your Hive SQL queries are behaving as intended.

    Learn More




Enterprise Applications Where Our Software Testing Solution Delivers Results



Make no mistake, we're not a body shop. We provide our customers test management, automation and execution. All our testing services are backed by our leading-edge Qsome Technology Platform.

We create bespoke application testing programs to execute manual and automated regression tests. Despite the complexity of these applications, our customers are successful because our tests encompass greater test depth and coverage, at speed.

Some Of Our Software Testing Customers


  • A Global Supply Chain Giant

    Designed & implemented an end-to-end, automated software testing process & systems


  • A Leading Auto Manufacturer

    We helped design & implement a test management & execution strategy for upgrades of the SAP Business Suite


  • A Financial Services Company

    Implemented an industry best-practice testing strategy for a new customer-facing technology product prior to roll-out


  • A Government Digital Transformation Project

    Parallel testing for a new suite of citizens' self-help apps, including geospatial systems


  • A Global Entertainment Industry Giant

    Functional & performance QA for a mobile app serving content to millions of users


  • A Peak Information Technology Industry Body

    Automated functional testing of double-sided ecommerce marketplace for members

Ready to witness the magic?



Contact Us For Software Testing Services & Testing Tools


Global

solutions[at]qsometech.com

+61 8 8312 1287

Australia

1300 28 44 92

L28, 303 Collins Street, Melbourne, VIC 3000

India

+91 9845 00 86 96

201, Green Glen Layout, Bellandur, Bangalore - 560103

United Kingdom

+44 20 3769 2460



9 October 2017

4 symptoms of bad software testing that will kill your digital transformation


Digital tranformations are a confluence of new ideas, grand plans, modern business models, high hopes and, often, very poor delivery and implementation. This was the evidence collected after the CDO Conclave:
Whether you are spending millions or billions on a digital transformation, presumably the end goal is all three of the outcomes given in the infographic above. While I admit that the list of reasons for falling short of digital transformation targets is endless, the one problem that keeps reoccurring in my discussions with senior IT professionals is the continued reliance on old technologies and methodologies while delivering new applications.

Why is software testing important for digital transformations?

Because it is the final checkpoint before you let the world into your domain to sample your wares (read: applications). Everyone can agree that building, implementing, using, achieving things at speed is a critical, non-negotiable outcome of digital transformations.

But of what use is such speed if the process / application / eco-system that you are building doesn't allow users to do what they need to be able to do? Speed without quality is like a Dreamliner that spends more time in the hangar than it does flying.

Software testing is that validator which ensures that your applications' users or customers are amazed by the speed at which they can now perform a task AND satisfied that they can actually complete that task every time, all the time.

Now that we are on the same page, you may have a problem on your hands if you can identify with any of these four symptoms.

Want to see how our cloud testing tools are being used to cut testing time to hours or minutes?


Symptom 1. "Our customers report the bugs immediately and then we fix them"

I don't know whether to laugh or cry when I hear this line, and I hear it A LOT! Let me ask you this: would you buy a new car that had never been driven on a public road? So why do you expect your customers to love, or even buy, your application when you ship it to them riddled with bugs?

They might perform the task of your software testing team once out of goodwill, but you'll soon lose them as they become increasingly frustrated by your ability to give them something that works first time and every time.

I am quite confident that this line of thinking is aligned to the "we're always in beta" mindset. The fact that you are still building or continuously enhancing your application does not give you the right to treat your users and customers like a crowd-sourced testing team. By engaging in such amateur-hour practices you are setting yourself up for insanely high customer churn and poor reviews.

The same rules apply for subject matter experts (SMEs) from the business (ie. your non-IT colleagues). They should not be forced into conducting functional software testing after being duped into thinking that UAT has started early! We see this practice so much in medium and large enterprises that we built a calculator that helps you understand the real financial and productivity cost of manual-only testing using people from the business.

Go on, calculate your burn rate now.

Symptom 2. End-User / customer churn is increasing as you transition away from legacy applications

If you are experiencing this symptom, in short, you are probably hurting because you are losing money. And I am very confident in assuming that "losing money" was not a digital transformation goal when you set out to revitalise your IT landscape!

Customer success consultant from Sixteen Ventures, Lincoln Murphy, hit the proverbial nail on the head:
There are only two reasons for customer churn, and only one is even slightly acceptable and that is something Happened to or with the customer. The other (far more common) reason for churn is that the customer did not achieve their desired outcome.
Lincoln Murphy
Lincoln breaks down desired outcomes into required outcomes and user experience. The list of reasons that stop users from achieving required outcomes, Lincoln says, can be summarised by the following:
  • Your product is missing critical functionality required to do the thing they need to do
  • There are bugs and other stability / usability / access issues keeping the customer from doing what they need to do
  • The customer had a bad implementation / configuration / setup
  • The customer hasn’t adopted your product and isn’t using it (for whatever reason)
  • You have a poor (from absent to overwhelming) onboarding experience
You have probably worked out that the first three reasons all point to issues with software testing. These are issues that a good software testing strategy, matched with the right software testing frameworks and software testing tools can easily overcome.

Customer churn for any reason is a silent killer. We all know that acquiring new users takes more effort and costs more money than retaining existing users. Consider this, if your application has 100 customers at the start of the year and only has a 5% monthly churn rate, you will be left with a mere 48 of the original 100 customers when the year ends. Ouch! Do you still think it is ok to use your paying customers as an outsourced software testing team?

If one intervention of yours can negate 60% of potential issues that lead to customer churn, why wouldn't you take that step?

Symptom 3. Your helpdesk or technical support costs are rising

Let's be honest, transitioning users from one version of an application to a new version is going to be painful. Your support teams will have to answer a lot of questions and undertake what will seem like over-generous hand-holding. These are necessary and very important elements of digital transformation journeys for applications teams.

However, this increase in effort should only be temporary. The volume of support events should decrease as users become familiar with their new environments and comfortable in the knowledge that the application still allows them to achieve desired outcomes, but a lot faster and with an array of cool new features. If the increase in support costs does not decline, then you have a problem.

If your team is not guilty of the mindset described in Symptom 1 and your technical support costs are rising then your software testing program may be ineffective at finding bugs before your users find them. Not only will this overwhelm your technical support teams, but it will also keep your development and delivery people in an unending mode of playing catch-up. This situation usually results in all of the following problems:
  1. New functionality or even bug-fixes get delayed as developers try and fight the never-ending stream of defect reports.
  2. Testing coverage nosedives as your testing team only has time to test the functions that are being patched.
  3. Parts of the application that used to work, stop working because of patch that was meant for a seemingly unrelated bug.
  4. Project timelines go out the window because your development and delivery teams are always firefighting.
  5. Reputations, and maybe even jobs, are lost because targets are not met and value remains undelivered.
Download our financial services case study to understand how we used test automation to help a customer reduce their technical support requests by 83%.

Are you only conducting manual software testing at the moment? Do you use non-IT people from the business to help with software testing?


Symptom 4. Updates to your applications always break something else that was working before

This symptom is borne out of overworked manual testing teams that simply do not have the time to execute every test case meticulously. When time is short (and let's face it, it usually always is) it is human nature to take shortcuts, or at the very least, make assumptions that help us prioritise tasks and show some semblance of progress.

Such human traits almost always lead to trouble insofar as software testing is concerned. Modern applications are so complex, with many connected layers and interwoven user journeys, that not testing it all leaves critical components open to failure.

SAP or Oracle modules each have hundreds of screens that connect to each other. Add to this the user journeys of external applications that interface with such ERP / CRM applications, and you begin to understand the many points of failure that your software testing program must validate before every release.

These weak spots will be ruthlessly exposed if your digital transformation program uses outdated testing methodologies and unfit-for-purpose software testing tools. Download our Definitive Guide to Software Testing to understand the best-practices you can implement immediately to supercharge your software testing projects.

I suffer from these symptoms, how can I get my digital transformation back on track?

That's a great question, but it is also one that does not have a straight answer. If your digital transformation project is stuttering, it is likely not due to software testing alone, but we have proven software testing solutions that can help you fix this vitally important component of your digital transformation journey. Implementing robust and fit-for-purpose software testing processes will help you in tackling other problematic aspects of your digital transformation project.

A great place to start is our Definitive Guide to Software Testing for digital applications. This Guide will help you understand the gap between where you are now and where you need to get to soon.

If you are interested in test automation then the Ultimate Guide to Test Automation spells out a 5-step process for implementing automated software testing. It comes complete with comparisons of test automation technologies and software testing tools.

If you want obligation-free and professional help from our consultants, take advantage of our a free software quality strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Ayush Trivedi - 15:45

8 August 2017

5 traits of badly written test cases (& how to fix such software testing mistakes)

The World Quality Report was at great pains to point out that the costs of software testing are taking off, with no landing pad in sight to slow them down. While there is no single reasons for this phenomenon, they can usually be attributed to three main buckets:
  1. Problems with people, particularly software testers, but also your subject matter experts
  2. Problems with processes and systems that provide guidance as well as checks and balances
  3. Problems with products, specifically your software testing tools (which you should choose very wisely)
Among the biggest problems facing software testing projects right now is the speed and quality of tests that are being executed. In fact, senior IT executives and decision makers have pointed to software testing effectiveness as a major challenge for them and their testing teams:
While there is no silver bullet to any software testing challenges, effective test design and maintenance will go a long way to resolving the issues that lead to ineffective and inefficient software testing.

Having done many rounds of the software testing world, I can tell a poorly constructed test case from a mile away. Such morale-sapping and utterly frustrating tests usually have share 5 common characteristics. If you can identify your software testing project with any of these 5 characteristics, I urge you to seek the free advice of software testing specialists who will be able to guide you back to the right path.

1. Too specific – run only a specific test condition

Test cases need to consider a variety of conditions that the software will be expected to handle. The test case must be able to comprehensively test the software module with almost all possible combinations of main conditions.

To be able to comprehensively test all combinations of conditions, the software tester must find a way to present these conditions such that it is easy for others to follow, review and amend if the real-world process demands such actions.

2. Cover a small part of functionality – they need to test a larger part of the system

Test cases often focus on a specific function. Often this function is determined by the internal technical design of the software. Such practices are often found in large monolithic applications like SAP or Oracle ERP systems where a software tester may not always have knowledge of the entire business process, so the test case never ends up reflecting what the test designer doesn't know, but should have made the effort to understand.

Instead, the test cases need to reflect the usage patterns and flows. Every test case should try to cover as much of the flow as reasonably possible – going across technical and modular boundaries of the application.

Download our best practice guide to software testing for 10 practical and actionable tips on how to 10x the effectiveness of your software testing project.

Remember, you don't know what you don't know is never an excuse for creating and executing flimsy, irrelevant and ineffective software tests.

3. Software test created only for a specific user role

We have often seen test cases written for a very specific user role, with complete disregard for all other users of the application. This limits test case's scope and therefore, compromises their effectiveness significantly. Such test cases effectively test only small elements of the application while deceptively purporting to be complete and robust test cases.

Test cases that are most effective reflect the usage patterns, or what the Agile world refers to as user journeys. A business application, for example, should be tested with test cases that are designed to test the whole business process – covering all the user roles and all the systems that might be involved in the business process.

4. Written to prove that the most common use cases are covered well in the application

This, in my opinion is one of the most common problems and is a result of what I call a 'lazy' approach to test design. The test designer simply converts the requirements document into test cases.

The test designer should instead look for the ‘corner-cases’ or ‘boundary conditions’. Most developers are easily able to write code for the most common use cases. The problems surface the moment there is a condition that is even slightly different to the most common, or intended, use case. A well designed test case, will catch these easily and consistently.

5. Test case cataloguing and version control

Any test case can become completely useless if not catalogued systematically and kept available for use. Imagine a library with books not catalogued and placed systematically on shelves, especially after multiple borrowers have had their fill. It would be impossible to use the books if you can’t find them with ease when you need them.

Often hundreds of test cases are written with much effort and then dumped into a shared folder structure. While this can work if you have very few test cases, a poorly organised system collapses the moment the number of test cases increases beyond a mere hand full.

Therefore, you need a software testing tool that is able to systematically tag and cataloguing test cases. Then your software testing tool should be able to ‘pull out’ test cases when they need to be run. To make this entire process seamless across the entire software testing team, you need a powerful testing tool that is able to effortlessly create and maintain multiple versions of test cases.

If you or your team need help in making your test cases more reliable and great at actually finding bugs before they get into production, take advantage of our a free software quality strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Avaneesh Dubey - 23:07

A common software testing flaw was exposed by CBA money laundering case

Software testing flaw exposed by Australian bank money-laundering case
The Commonwealth Bank has conveniently blamed a "coding error" for its non-compliance with anti-money laundering compliance requirements. However, this attitude also exposes a very common flaw in software testing of large applications: subject matter experts (SMEs) are incorrectly utilised, in ensuring that business rules are properly implemented and executed during the software testing phase.

Frankly, "coding error" is likely to be the PR department's words for explaining this embarrassing blunder, but the software testing experts within the IDM software team should be very worried about their job security. Their oversight is a function of human error that goes unchecked due to poor processes that do not offer the requisite level of scrutiny.

The cost of software testing failure is a widely debated topic. This number seems quite plausible given the uber-pervasive nature of tentacles of many large enterprise applications: Debate that figure all you want, but we can definitely agree on the fact that the cost of the brand damage done from such events far outweighs any direct losses incurred. That too, not just to the corporate brand, but also to reputations of otherwise intelligent and competent professionals. This is not the first time that banks have made such monumental blunders and if they keep relying on outdated software testing tools and practices, it won't be the last time either.

What causes this flaw in software testing projects?

There is no one characteristic of any software testing project that allows such big, hairy mammoths to slip through the cracks. Any good software testing project consists of the right balance of intelligent people, practical processes and performance-oriented products or testing tools.

So let's break this down into the various components. As far as people are concerned, we know that the "shift left" or the introduction of faster development cycles through DevOps and Continuous Delivery is causing a lot of stress:
This extra stress will almost always result in human error. Most such errors will be minor and easily fixed at a later date, but some errors will be so big that examples will need to be made of the unfortunate people at their epicentre. The probability of major errors occurring is enhanced by the complexity of modern applications and development and testing environments:
As development complexity, and therefore software testing complexity, increases, associated systems and processes break down. The process that comes under most heavy strain is that which governs how SMEs are included in and utilised to validate software testing activities.

I have seen that over-burdened software testing teams increasingly pass on more responsibility to SMEs. Because this is often done implicitly so as not rock the boat, nobody in the process quite understands where the responsibility sits and what business rules have actually been validated. I imagine that this very situation came to fruition in this Commonwealth Bank example!

We have a very clear and streamlined process for engaging SMEs in a software testing project. Download our Software Testing Service Delivery Guide to view our process and the reasons behind it.

So what is the role of software testing tools in creating this mess?

Quite large, in fact. Software testing tools, play a crucial role in ensuring that:
  1. Your software testing team is as productive as possible; and
  2. Streamlining the implementation of business rules and testing processes for compliance and effectiveness.
The use of outdated and inadequate software testing tools has resulted in frustrated testers and IT decision makers who are unable to deliver on their promises to the business: If you are not locked into multi-decade licensing agreements with your current software testing tool vendor, then read our guide to selecting the best software testing tools for your needs. Whether you want to move to cloud testing or simply want the best testing tools to deliver on your goals, not asking these 6 questions can lead to embarrassing lapses such as the one the CBA has just suffered or, at the very least, spiralling software testing costs without any benefit to software quality:
In either case, the consequences are rather sour, but also usually avoidable.

What systems do I need to implement in my software testing project?

Achieving a perfectly balanced confluence people, processes and software testing tools is no easy task. There is no silver bullet or fool-proof recipe for doing this. A specialist software testing services company can exploit their body of knowledge across multiple customers to help you design a bespoke software testing practice that is right for you.

Our Software Testing Service Delivery Guide explains the methodology we use to run our testing projects. It may be a good start to gather your thoughts and some new ideas. Then you can take advantage of our free software quality strategy session where our consultants will give you personalised advice that will help you work through your specific challenges and hit your desired goals.

While there is never a "perfect solution," you can try to get as close as possible to that software testing oasis by asking the right questions before you make a decision.

How can test automation help?

Not at all, unless it is implemented correctly using a methodology that makes sense for your applications ecosystem. We find that model-based software testing, with its emphasis on data-driven testing and test automation is a system with which to cut testing time and find bugs before your users find them.

We place a lot of faith in test automation because we know it works. We've been able to cut down testing time for a UK-based customer from 4 weeks to 36 hours, with greater coverage than the previous manual-only software testing could ever achieve. But we have achieved these results by putting in place other crucial elements of an effective software testing project. Download our best practice guide to software testing to conduct an audit of the high performance aspects of software testing that your projects are missing.

Irrespective of the software testing challenges you face, take advantage of our a free software quality strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Ayush Trivedi - 11:56

31 July 2017

5 features of the best software testing tools for cloud testing

If you have not heard this before, allow me to enlighten you: not all software testing tools are created equal. In fact the "most popular" software testing tools in use today are usually are downright horrible at allowing users to realise the benefits of cloud testing. Surprised?

Don't be, because it seems that the power and, ultimately, value of cloud testing is yet to be grasped by IT executives. This KPMG study showed that only 1 in 4 of them thought that cloud testing would drive the search for software testing services vendors in the near future:
By researching the topic of software testing tools and cloud testing you can count yourself ahead of the curve! The real and undeniable consequence of this slow adoption of cloud testing are survey findings that paint a sad picture of the performance and productivity of the software testing profession globally:
Poor results of software testing programs are often the outcome of not knowing what you don't know or expecting different results despite executing the same process over and over.

What exactly is cloud testing?

Cloud testing (or cloud-based testing) is the next revolution of software testing and particularly, test automation. When combined with the right software testing tools, cloud testing allows users the speed and flexibility that traditional testing tools running on physical machines are simply not able to match.

I have racked my brain and spent hours trying to reinvent the wheel, but I cannot come up with a better definition of cloud testing than Wikipedia:
Cloud Testing uses cloud infrastructure for software testing. Effective unlimited storage, quick availability of the infrastructure with scalability, flexibility and availability of distributed testing environment reduce the execution time of testing of large applications and lead to cost-effective solutions.
Wikipedia
The cloud is doing to software testing what it has already done for software development: inject unstoppable speed into the development process. Development teams can now easily spin up and effortlessly scale 1 or hundreds of virtual machines to deploy their applications. This flexibility comes without the worry of capital expense forms, internal bureaucracy or lead times.

The right software testing tools that utilise the cloud can give your testing team the same flexibility with the added boost of speed.

Want to see how our cloud testing tools are being used to cut testing time to hours or minutes?


What problems does cloud testing solve?

That is a great question! While there are number of data points we can pore over to try and explain the problem with the current approach to software testing, the one that hits home immediately (and almost universally) is that the costs of software testing are rising:
Cost is almost always the overarching problem that IT decision-makers are worried about. Skyrocketing costs are usually the result of many underlying problems that can defined by many brackets, including:
  • Inefficient processes
  • Under-productive people
  • Inadequate tools and technologies
  • Dynamic and unstable business and technological landscape
  • Poor decision-making or implementation errors
The World Quality Report went a step further and gathered the industry's thoughts on the root cause behind this projected spike in software testing costs. The top 6 reasons included all well-known suspects:
I am yet to meet an IT decision-maker who cannot identify with at least 3 of these 6 symptoms. Where the conversation gets derailed, however, is the strategy through which these issues can be resolved. This inability of organisations to come to a consensus on this topic is resulting in catastrophic failures where not only is money being squandered, but reputations of otherwise smart professionals are being tarnished.

Adding to these unending problems is the issue of you don't know what you don't know. A recent European study found that for all the educational efforts of innovative software testing tool vendors, the people that sign the cheques are still operating in the dark:
I firmly believe that while cloud testing may not be the panacea to all the problems afflicting the software testing industry, it is definitely a major element in helping you solve the issue of speed and quality. Particularly when combined with model-based software testing and a serious dose of robust test automation.

Why are software testing tools important in cloud testing?

Along with processes and people, testing tools are an integral part of the triumvirate that boosts the speed and quality of software testing programs. Traditional testing tools required on-premise infrastructure to create, maintain and run tests. Every component of the traditional testing environment has to be purchased separately and people have to be employed just to keep the test environment alive.

With cloud testing tools like the Qsome Technology Platform, all that frustrating integration work is taken care of. You don't need to purchase hardware to go with the testing tool. You don't need to hire specialists just to run and maintain your test environment.

Testing tools like ours allow you to leverage cloud servers to create, maintain and run all your testing scripts, both manual and automated. Your testers won't be left waiting for servers to become free to run tests, because that infrastructure is always available, on demand. Think of it as using Uber instead of hiring a car. Good cloud testing solutions make it THAT simple.

Enterprise grade cloud testing solutions go one step further by building analytics into the software testing process. This allows your team to release to production only based on objective testing data, rather than because a manager thinks that the current batch is ready to release. Have a look at the metrics that good cloud testing solutions allow you track, out of the box. How much of this is possible with traditional testing tools?

This simplicity, convenience and speed is at the core of all good cloud testing tools. If the cloud testing tool that you are evaluating does not have every one of these attributes, then you should stop wasting your time and look at something that WILL deliver.

Great decisions are made with good dat. Our dashboard helps oyu track the effectiveness & efficiency of your manual and automated software testing.


So the 5 features common in software testing tools that enable cloud testing are?

It may surprise you to learn that the 5 features of a good software testing tool that will really help you with cloud testing are often the least talked about characteristics when vendors spruik their wares.

Testing tools that enable cloud-based testing include not only the tools, but also the test infrastructure. Good software testing tools provide you a turn-key solution that allows you to focus on creating robust and efficient tests, as quickly as possible. Such tools provide the extra oomph that you need to execute successfully.

Because we use model-based software testing when providing software testing services for our customers, we have been able to build the Qsome Technology Platform to leverage the full power of the cloud and cloud testing.

Specifically, the following 4 features of our software testing tools help to move and synchronise the wheels of an effective model-based testing program:
  • Dynamic user journey mapping: you can document, upload, edit and maintain user journeys right inside the testing tool, irrespective of how many times stakeholders change their minds.
  • Central knowledge repository: all test artefacts and results are stored in one place, which becomes the single source of truth. Nothing is misplaced by being stored on local drives and the people who need access can have it from any browser, on any device.
  • Cross-browser & cross-device automation: your users use your application across all browsers and all devices. Your testing tool must be able to help you get ahead by allowing the advantage of automating tests across browsers and devices without extra effort.
  • Load testing without effort duplication: these days load testing is imperative for any customer facing application, because customer churn will skyrocket if your load times are slow. Traditionally, load testing required a different team with specific know-how. However, good cloud-based software testing tools allow you to execute load tests using the same scripts that are used for functional test automation. Genius!
  • Testing tools & infrastructure on-demand: by using parallel testing technology on an infinitely scalable platform that is maintenance-free, your test team can focus on running high quality, robust tests, instead of worrying about how to keep the test server running.

Request a demo now if you want to see first hand how the Qsome Technology Platform could help you leverage cloud testing to increase the speed and quality of your releases. Right now, we're also offering a free strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Ayush Trivedi - 12:24

20 July 2017

4 powerful software testing tool features for model-based testing

Model-based software testing can be the panacea to your late and poor quality application delivery woes. However, every panacea needs an enabler and the right (cloud) software testing tools are as important as any other factor if you want to use model-based software testing in your team.

In fact, through experience, blood, sweat and tears toil, we have been able to narrow down the exact characteristics of a good software testing tool that enables model-based testing, to just 4 distinct features!

But first...

What is model-based software testing?

I was going to give you Wikipedia's definition, but why not take the word of a company that has made a business out of giving us extremely complex, but well tested software:
Model-based testing is the automatic generation of software test procedures, using models of system requirements and behavior. Although this type of testing requires significantly more up-front effort in building the model, it offers substantial advantages over traditional software testing methods.
Microsoft Developer Network
We will get to advantages of model-based testing a few paragraphs later. At this point it is important to understand that model-based testing attempts utilises user journeys within an application to design and execute the tests, whereas traditional software testing concentrated on testing discreet features or modules, without caring much for how the user may choose to interact with the application.

Why do we need model-based testing?

Model-based software testing is not only our preferred methodology for designing, executing and maintaining fast and robust application tests, but it is also one that has been refined over time to try and solve the age-old conundrum between speed and quality in software testing. This was quantified by the World Quality Report 2016-17:
The "speed" component of our conundrum is two-sided. Speed is demanded by the end-user in the form of application responsiveness, and it is demanded by the project team, who want to release the application as quickly as possible. With reference to the latter, the velocity of the shift towards Agile, DevOps and Continuous Delivery development approaches has only made it harder for software testing teams:
Frankly I don't understand why the other 59% of respondents decided not to agree with the statement above. After all, common sense dictates that faster releases will also necessitate more tests. Despite this anomaly, this observation completes the speed versus quality conundrum that confronts all application development and delivery professionals:

Want to see how our test automation tools use analytics to cut testing time to hours or minutes?

What specific problem does model-based testing solve?

Through interactions with our customers, we have condensed speed versus quality conundrum down to 5 specific symptoms. You will see below that we have also added a 6 symptom, because it is what every software delivery professional worries about, but for some reason the issue of reputation damage from poor software roll-outs remains the big elephant in the room.

We have an internal philosophy of calling a spade a shovel. This helps us ensure that no elephants get into the room in the first place! So, the 6 problems that model-based testing can solve include:
  • Unclear & incomplete requirements: with fast-paced Agile environments and the race to quickly adapt to user demands, documentation and clarity always suffer. This usually results in poorly tested applications being released into production.
  • Poor test design: this excuse is the general refuge of testers who cannot keep pace with rapid development and deployment cycles. A new paradigm of communication and documentation is required to create better, more robust and flexible tests.
  • Lack of representative data: software testing without data is fast and easy, but it does not result in high quality applications. Data sets often get stored and lost in CSV files, compromising the quality and robustness of tests.
  • Limited or ineffective test automation: automation is not easy, but it is a must-have element of any modern testing program. When combined with the right software testing tools, infrastructure and great test design, it can produce magic.
  • Slow & locked infrastructure: the days of waiting for test servers or licenses to become free should be over. These constraints impede productivity, quality, innovation and, ultimately, the willingness to break boundaries.
  • Damaged reputations: most professionals try their hardest and apply their minds to advance their careers. Traditional methods of software testing have repeatedly resulting in failure, ruining reputations of otherwise solid pros. There are few professional worries in life worse than being unable to sleep for fear of when and how a release might fail in production.

The perceived problem with automation is the result of unsuitable test automation tools and ineffective approaches to test automation. It has resulted in testers having to suffer the poor performance of a myriad of test automation tools, cobbled together with proverbial duct tape:
There is a better way and it is available now.

How does the right software testing tool help with model-based software testing?

Qsome co-founder and my colleague, Ayush Trivedi, created this model to explain test automation. However, it's also apt for explaining model-based software testing. At its core, model-based testing requires the successful confluence of people, processes and technology.
The right technology, ie. software testing tools and test infrastructure, provides the oomph that model-based testing practitioners need to execute successfully. Because we use model-based software testing when providing software testing services for our customers, we have been able to build the Qsome Technology Platform to support us and all other practitioners of model-based software testing.

Specifically, the following 4 features of our software testing tools help to move and synchronise the wheels of an effective model-based testing program:
  • Dynamic user journey mapping: you can document, upload, edit and maintain user journeys right inside the testing tool, irrespective of how many times stakeholders change their minds.
  • Central knowledge repository: all test artefacts and results are stored in one place, which becomes the single source of truth. Nothing is misplaced by being stored on local drives and the people who need access can have it from any browser, on any device.
  • Testing tools & infrastructure on-demand: by using parallel testing technology on an infinitely scalable platform that is maintenance-free, your test team can focus on running high quality, robust tests, instead of worrying about how to keep the test server running.
  • Cross-browser & cross-device automation: your users use your application across all browsers and all devices. Your testing tool must be able to help you get ahead by allowing the advantage of automating tests across browsers and devices without extra effort.

Request a demo now if you want to see first hand how the Qsome Technology Platform could help you successfully implement model-based software testing. Right now, we're also offering a free strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Meena Kumar - 16:29

12 July 2017

Proven malware cyber attack on CMS templates makes you vulnerable

Malware is taking advantage of an easy path to your machines. By tampering the standard Content Management System (CMS) templates used for web application development, an age-old technique called phishing is still actively used to gain entry and compromise applications built with Wordpress, Drupal, Magento and other open source platforms.

Almost millions of systems have been compromised till date.

The web is full of such attack vectors and this trend shows no signs of abating in the near future as patched problems are replaced by newer and more ingenious attack routes. While there is no silver bullet or cure-all panacea, the potential to fall victim to such malware attacks can be minimised.

A few months ago I learned a very interesting and new method to inject malware into Joomla templates. I've since discovered that this attack vector is not limited to just Joomla templates, but such attacks can happen using many other standard CMS templates as well. This technique allows the attacker to gain access to the compromised servers and install malicious files that can then spread and wreak further havoc throughout the application.

Cyber attackers who use this method make use of simple PHP code injected into the CMS Templates. This code then allows them to call files remotely to help the malware spread to the compromised server. The vulnerability is such that the cybercriminal will have the ability to take full control over victim machines.

I have tried this on test systems that we have spun in-house and I can confirm that this works!

The fix

A malware infection through this method can be avoided if all stakeholders play their part. Developers must:
  1. Minimize changes to the CMS's core building blocks.
  2. Use checksum hash to validate the version.
  3. Only download free code and modules from trusted sources.
  4. Vigilantly check downloaded or externally-sourced code for cyber security vulnerabilities or backdoors (contact us if you need help with this)
System administrators should:
  1. Use Agile methodology for development & maintenance so issues can be identified and resolved quickly.
  2. Conduct thorough automated regression testing to ensure business rules are appropriately applied throughout the application
  3. White list allowed IP ranges to access the server and application backend
  4. Regularly run malware checks (contact us if you need help with this)
  5. Plan and stick to a disciplined and structured data backup regime to recover from an attack
  6. Conduct regular penetration tests before all major releases
Users of the CMS system can also help to assure the security of the Magento / Drupal / Joomla / Wordpress application by:
  1. Never clicking or open suspicious links and reporting such links to their teams when found.
  2. Ensuring that they only access the application backend on trusted networks.
  3. Installing and maintaining updated versions of reputable anti-virus and anti-malware applications on their computers.
Open source CMS's and platforms like Wordpress, Joomla, Drupal and Magento are incredibly complex, flexible and powerful applications. However, their most sought-after advantages can also become their Achilles Heel.

If you need help in finding cybersecurity vulnerabilities in your application or with effective and constant security monitoring of your CMS, speak to us understand how we will be able to help you. Right now, we're offering a free strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Suresh - 13:17

11 July 2017

Why we love test automation (and you should too)

Test automation technology is a couple of decades old. In this period, we have seen several waves of technologies sweep through the industry. These waves have transformed many industries. Information driven innovations continue to disrupt businesses and continue to surround us all around.

Test automation has, however, not become mainstream. A lot of testing still is done manually. I wonder why?

One common statement I hear is that we should automate repetitive tests. True. But is that all? I contend that test automation, if done smartly, can help us run much more comprehensive tests. We can generate combinations of conditions and leverage automation to run these over the test system tirelessly. Try running these tests manually and you will know how laborious it becomes. The result, when done manually, we skip many conditions, thereby compromising the effectiveness of tests.

Product development is becoming iterative with Agile and Lean start-up models becoming mainstream. These would simply lose almost all advantage if not complemented by a strong test automation focus. Download our Ultimate Guide to Test Automation for a step-by-step process of implementing automated software testing. The Ultimate Guide includes the same steps that help us cut testing time from weeks to days for our customers, while reducing bugs in production by over 70%.

Manual tests become very person dependent. The expertise of the tester determines how well a test case is run and whether the results are meaningful. Some testers do a thorough job of reading the test cases, understanding the core idea and enhancing the tests as they run. Many others, just repeat the documented steps and finish the job assigned to them.

Is there a better way?

I have seen companies that assigned every test case in their catalog to at least 3 testers. Till date, I have not understood the idea behind doing so. A test once executed, should be adequate – unless off course, you hope that at least one of the testers will do a thorough job, or you believe that the test case is not well designed.

Companies spend a lot of time and resources writing ‘idiot-proof’ test cases. Writing and updating these test cases can be extremely time consuming. I wonder therefore, why write tests in English (or for that matter any other language)? Why not write the tests in java (or python, or cucumber) and make them run over computers?

Manual testing needs to be done, well, when people are available – during normal business hours. Automated tests, on the other hand can run over night, over weekends - 24/7. Cloud infrastructure and parallel computing allows us to run the tests fast. Tests that would take humans weeks to complete, are run by machines within hours!

So, if you do not have much time to test, opt for automation. If you do have enough time to test, even then let machines do the job – you focus on your next big idea.

If you need help in solving these challenges, or in cutting software testing time and finding more bugs before your application's users find them, speak to us understand how we will be able to help you. Right now, we're offering a free strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Asim Virani - 11:32

6 July 2017

A proven software testing company can solve 5 painful challenges for you

Proven software testing companies can overcome 5 painful challenges
Many a software testing company will claim to do everything and anything under the sun for you. But only proven software testing experts will be able to prove to you how they can solve your most painful software quality challenges, like speed of testing, speed to market, support costs, process optimisation and others.

The challenges you are facing in your software development and delivery pipeline are unlikely to be unique. These issues usually stem from a mishmash of approaches and methodologies that are ill-suited to modern applications and their development practices. Even though software development techniques and industry participants have changed dynamically to suit the needs of users and enterprises, the software testing world has, for the most part, remained rooted to ineffective ideologies and practices.

The fix for these ails is not easy, but it is achievable. As a specialist software testing company we created our own testing tools and infrastructure platform and methodologies to help our customers get out of the rut of failed IT projects. The problems we solve and those I'm going to tell you about here are commonly repeated to us by our prospects before they become our customers. The same problems are also described in research conducted by reputable global organisations.

Hang on, what do you mean by "proven software testing company?"

This is an easy one because a proven or specialist software testing company combines three elements to deliver value and solve customers' pain points, specifically those that I will describe below:
3 components of a successful software testing & test automation services
The best software testing services companies bring a unified approach that comprehensively addresses each of the three factors above. Other service providers who use software testing services as a "bolt-on" up-sell strategy usually end up creating situations that do irreparable damage to otherwise competent professionals' reputations or disasters like this:
The practice of asking your developers or your development service company to test the application they are building is like asking Volkswagon to test the emissions of their cars. You may snicker quietly, but it astounds me how prevalent this practice still is:
If you just had a eureka moment or are compelled to let a rueful "d'oh", take advantage of our free software quality strategy sessions where one of our experts can help you devise a plan to get you back on track. In times like this we often fall back on these words of wisdom from a legendary British war-time leader:
Success is not final, failure is not fatal: it is the courage to continue that counts.
Winston Churchill

Painful Challenge #1: My requirements keep on changing

Dynamically shifting requirements and scope creep have been the eternal bugbear of every development team that has ever formed on this planet. It has resulted in messy legal brawls and media outbursts that have only served the purposes of highly paid lawyers and media barons.

A recent study has noted that this is a significant problem for senior IT executives responsible for software testing too:
Frankly, it surprises me that this number is so high. Isn't it the role of software testing to conform to dynamic user journeys and ensure that a high quality product is released, particularly with the increased adoption of Agile and BDD? We certainly think so and anyone in our team who complains about this quickly understands that the care factor for such complaints is south of zero.

I think such complaints from testing teams is a creative take on two similar complaints:
  • There is too much work and I can't be bothered with any more; and
  • I got into testing because I thought it would be easy, and this is not easy!
Attitude factors aside, the requirements shifting issue in software testing can also be attributed to a history of using fragmented systems and processes, cobbled together from competing vendors and kept in place by nothing stronger than masking tape. Such systems do not allow the creation and enhancement of purpose-built testing frameworks that are flexible enough to adapt to change. This symptom likely explains this observation, albeit that it was made within the context of test automation:
Integrating multiple tools just for test automation doesn't make sense
Proven software testing companies will clearly explain to you about their process for adapting to changing requirements and how the technology platform they use allows this to happen. Without a solid process for doing this, software testing specialists such as ourselves would be dead in the water. Effective processes that enable adaptation are also a reason that product companies trust us to do undertake their entire gamut of software quality work, from unit tests to end-to-end functional test automation.

Painful Challenge #2: I can't find and keep testers

This was one of the top 5 challenges in software testing faced by senior IT executives, but I find the percentage who complained about this, incredibly low. From my experience of talking to prospects and customers alike, this number should be well above 50%:
My friend and Qsome co-founder Meena Kumar wrote this about finding and retaining high quality software testers:
Finding good software testers is a hard task. Retaining them for a decent length of time is even more difficult. The churn that comes with frequent turnover in your team will cripple any otherwise effective application delivery program if you are not able to give your testers an engaging work environment where they feel valued.
Meena Kumar
Most good software testers have a software engineering background. This usually implies that they had dreams of becoming a software developer when they started their tertiary education. Along the way life happened (and probably a few stock market crashes, too) and they turned their talents to software testing instead. No amount of success in the testing field will extinguish the desire to be known as a badass developer for many such testers.

The other element to the software tester retention problem is one of monotony, especially in manual testing-only environments. How long can you expect a human to religiously ply through the same regression test scripts without falling victim to the twin evils of boredom and concentration lapses?

Proven software testing companies solve this dilemma in a number of ways. By taking a consulting-centric approach and making our software testers part of value generating methodologies, we can not only attract the best brains in the business, but also retain them longer than most of our competitors.

This subtle difference in how we are able to engage and motivate our teams is one that is often missed by our competitors who use software testing as a bolted-on up-sell approach to the customer.

Want to see how our test automation tools use analytics to cut testing time to hours or minutes?

Painful Challenge #3: We (want to) release fast & testing can't keep up

This perception is a combined effect of the first two pain-points and the fact that most IT executives either don't believe in test automation or have been pouring money into test automation that does not work. Both extremes have led to a stagnation in the perceived efficiency of software testers and a growth in the school of thought that believes test automation is an expensive mirage.

One of the reasons fuelling these two perceptions is this:
There is a lot of noise in the software testing tools space and much of it is being made by "influencers" who take cover under buzzwords and fads to promote underwhelming testing tools. Unfortunately, this creates mayhem in the minds of IT decision makers who end up blaming their software testing teams:
Proven software testing companies well understand the power of test automation. More importantly, we design our testing methodologies to ensure that every test that should be automated, is automated. This allows our customers to execute regression testing early and often and enables software testers to devote greater time to tasks such as exploratory testing, which serve to reveal the fringe situations where a user journey may break down.

Completing the feedback loop so that automated and manual regression testing suites are updated to include testing for new-found defects or knowledge is vital to building a cohesive and efficient software testing practice. We disregard this last step in the process at our and our customers' peril.

Painful Challenge #4: High maintenance, unstable & complex test environments

This is an all-encompassing problem and one that is not easy to fix:
Most medium to large organisations are tied into multi-year licensing agreements with legacy software testing tool vendors. These vendors have not been able to enhance their testing tools to keep pace with modern development methodologies and delivery requirements. Because of such lock-in contracts, customers are unable to take advantage of new on-demand testing tools and testing infrastructure which is purpose-built to enable faster application delivery with greater coverage across browsers and devices.

I also observed with keen interest the increasing reliance on free and open-source "testing tools":
Open source has many advantages: it's free, there is usually a large body of knowledge available online and users don't have to start from scratch. It also has some disadvantages that are conveniently forgotten: it is not usually a complete product or system, configuration can be very time-consuming without prior experience and you have to support it yourself.

These drawbacks alone are enough to rob you of any cost savings you were hoping to make by getting a "free" testing tool. The most common example of this syndrome is Selenium. We use Selenium as the automation engine for web app test automation in the Qsome Technology Platform. It is great for that purpose and suits us and our customers well. Download our Ultimate Guide to Test Automation for CXOs to peruse the comparison charts of different enterprise-grade testing tools as well as automation engines for web and mobile testing.

The problem is that many in the industry consider Selenium to be the panacea for all their test automation woes. What such people are missing is that Selenium is not a software testing tool. It's a set of APIs to control a browser. The essential elements of any good testing tool, eg. test management, test infrastructure, test analysis, etc, still need to be built or cobbled together from other vendors.

Such practices only serve to confuse customers and create inefficiencies in software testing processes. Proven software testing companies understand this and will explain why their preferred software testing tool is more suited to achieving the desired goals.

It's for this reason that we only provide our software testing services if the customer agrees to use our functional testing and load testing tools.

Understand how an on-demand software testing tool and testing infrastructure could help you release faster & higher quality applications.

Painful Challenge #5: The Uber effect on users' expectations of application quality

It has been proven. Today's application users, particularly employees and vendors, are demanding higher quality applications:
I call this the "Uber-isation of enterprise IT". Most of us have used Uber instead of traditional taxis and have been spoiled by the near seamless user experience that Uber treats us to when booking our "personal driver." The bad news for senior IT executives is that their colleagues are demanding similarly seamless experiences in the applications that drive their daily workflow.

Satisfying this expectation is nigh on impossible if you can't find and retain testers, have the wrong testing tools, don't have the right testing frameworks or have cobbled together your testing environment using free code from the internet.

Proven testing companies not only have turn-key solutions to such problems, but we are also able to convert our learnings from one project into more effective and efficient service delivery of our other customers' projects too. Replicating this cross-pollination of ideas will likely be difficult for your teams.

Call me and I'll be happy to tell you how we used the knowledge learned from automating tests for time-delayed or asynchronous user journeys from one customer to help with delivery of our Salesforce testing services for other customers.

If you need help in solving these challenges, or in cutting software testing time and finding more bugs before your application's users find them, speak to us understand how we will be able to help you. Right now, we're offering a free strategy session to help set you on the right path to achieve your goals.
Or contact us on +61 8 8312 1287 or solutions[at]qsometech.com
Publisher: Ayush Trivedi - 15:12