With customer expectations escalating and market competition intensifying, ensuring product performance is non-negotiable. 61% of users experience issues related to software operation at least once a day. 

Organizations that introduce shift-left performance testing can find critical defects in the application’s functioning early on while accelerating time to release, enhancing QA workflows, and ultimately saving costs. 

In this article, we’ll discover why businesses should combine shift-left and performance testing.  

The impact of shift-left on software performance optimization

Shift-left testing 

With traditional methodologies, like Waterfall, testing is often moved to the later stages of software development. This leads to several drawbacks. For instance, fixing defects or implementing changes after testing has begun often involves extensive rework and project delays, leading to increased expenses. 

Unlike Waterfall (which still can be in place), a shift-left testing approach advocates for embracing QA activities at the initial SDLC phases. This helps businesses prevent defects, eliminate high costs associated with post-deployment rework, and accelerate the IT solution’s release.  

Performance testing 

Performance testing focuses on evaluating the responsiveness, scalability, and stability of an application under various conditions. It involves simulating real-world scenarios to assess how the software operates under different loads, involving heavy user traffic or concurrent transactions. 

With comprehensive performance checks, companies identify and fix system bottlenecks before they impact user experience and the overall reliability of the IT product.  

Why is performance testing relevant within a shift-left approach? 

Under the umbrella of shift-left testing, the integration of performance testing emerges as a pivotal component, offering a proactive means to enhance software operation from its inception. Rather than being a mere add-on, it becomes an integral part of the development lifecycle, serving distinct purposes at different stages. 

Firstly, companies can implement performance tests into each iteration of the SDLC to assess the performance of individual features, allowing teams to identify and rectify any issues or inefficiencies early on. Secondly, it plays a crucial role in evaluating the overall performance of the system, enabling experts to optimize its architecture and coding practices for better scalability and responsiveness. Adopting performance QA as a part of the CI/CD pipeline allows teams to assess the operation of the system with each build. Finally, performance QA conducted before software release helps ensure that the IT solution meets performance expectations and withstands real usage scenarios without faltering.  

Reaping the benefits with shift-left performance testing 

Let’s focus on the advantages of performance testing incorporated within a shift-left approach. 

  1. Better software quality due to early detection of performance issues 

Let’s imagine that a company is developing a software product. A shift-left performance testing approach will help identify responsiveness bottlenecks, such as delays in UI responsiveness or slow transitions between application screens. For instance, when the application tries to fetch data from the server, these delays may affect end-user interaction. With early and frequent performance checks at the core, companies can address all challenges, predict set timelines, and release a high-quality IT product, driving higher client engagement and satisfaction. 

Thus, by integrating performance testing into the initial stages of development, businesses identify potential software issues, like slow responses, scalability concerns, and architectural flaws before they escalate into critical ones.  

  1. Decreased expenditure 

Imagine that an enterprise is preparing an eCommerce website for the shopping season, bringing an influx of clients and a huge profit margin. Postponing it may hit the company’s reputation and finances, right?  

Holistic shift-left performance testing equips organizations to mitigate potential issues well in advance of the IT solution release. By integrating this approach into their business strategies, companies avoid the scenario of conducting performance testing as a last-minute check before app launch, which often leaves insufficient time to address any identified bottlenecks. Consequently, they minimize the risk of service disruptions, regulatory penalties, and unexpected expenditures, while ensuring exceptional end-user experiences from the outset.  

  1. Faster time to market 

Hastened velocity is achieved through meticulous planning and continuous monitoring of performance throughout the software development lifecycle. 

Let’s say a company is creating a cloud application that connects to the server with a huge number of users. By having performance testing built into the SDLC, the team can proactively address issues as they arise, preventing the accumulation of problems that could delay the release. 

This ensures that the final performance tests don’t introduce unexpected holdups or require additional time to fix flaws, allowing the company to deliver the app according to schedule and gain a competitive advantage in capturing market share and attracting new customers. 

  1. Refined code quality 

By embedding QA activities, such as performance testing, into the early stages of the software development lifecycle, teams cultivate a quality-centric mindset. This encourages developers to consider performance implications from the outset, ensuring that potential issues are identified and addressed before they become ingrained in the codebase. This approach encourages developers to write cleaner and more efficient code from the start, leading to fewer defects, improved maintainability, and enhanced overall system performance. 

Additionally, early feedback allows teams to iterate quickly, refine code, and optimize performance, resulting in higher-quality software products delivered to customers. 

  1. Improved reputation 

With shift-left performance testing, organizations mitigate the risk of software failures and downtime, thereby enhancing user experience and satisfaction. This commitment to delivering reliable and high-quality IT solutions fosters trust and confidence among customers, strengthening the organization’s reputation and competitive advantage in the marketplace. 

Ultimately, a positive brand reputation not only attracts new customers but also cultivates loyalty among existing ones, driving long-term business success and growth. 

Shift-left testing for better software performance

In brief 

Performance testing within a shift-left approach helps organizations strengthen business capabilities and stand out in the IT market. 

Among the benefits that companies reap are better software quality, decreased expenditure, faster time to market, refined code quality, and improved reputation. 

Want to implement performance testing in the early SDLC stages? Reach out to a1qa’s team for support. 

The pandemic has led to the rapid adoption of new technologies in the banking industry. According to the State of Fintech and Crypto Apps Report 2022, in the 1st quarter of 2022, users downloaded about 1.74 billion financial software apps.

To meet clients’ expectations and improve their digital experience, providers need to maintain a high level of security, stability, and integrity within their mobile and web software. To achieve this, QA is crucial.

Case in point: between 2010 and 2015 hundreds of Wells Fargo Bank’s customers were unable to buy homes because of a software bug that incorrectly denied 870 loans and modification requests. As a result, the company had to allocate $8 million to compensate end users affected by the failure. This example shows that the nature of glitches in eBanking products is devastating to both businesses and their clients.

We want to warn you and propose to take a closer look at 4 reasons why quality assurance is mission-critical for your services and solutions.

Reason #1. Safeguarding confidential data

The financial sector is one of the three industries most susceptible to cyberattacks (along with government and healthcare), having suffered 1,829 incidents in 2022.

QA for financial applications: 4 reasons why it is a must-have

Source: Statista

Every year hackers discover more sophisticated ways to penetrate systems, therefore, banks should integrate security operations into SDLC and perform penetration testing to detect defects related to software fragility.

Let’s see how a1qa’s specialists helped a well-known bank to ensure high reliability and safety of numerous solutions. The QA team started with an assessment based on OWASP API Security Top 10 Project and OWASP Web Security Testing Guide, involving the list of the most recent severe vulnerabilities. They thoroughly tested injections, broken authentication and authorization, security misconfiguration, excessive data exposure, and session management issues.

The next stage included penetration tests to reveal system loopholes and prevent their exploitation by hackers. Thus, they identified a number of flaws that could allow cyber criminals to gain access to a list of users, their passwords, and accounts as well as steal access tokens.

Reason #2. Guaranteeing high quality within cloud-based software

Banks are progressively transferring their apps to the cloud, but face rugged data migrations, server interruptions, and security issues.

As the data migration process involves vast volumes of sensitive information, companies can simplify and speed up its testing with automation. Automated tests allow banks to simulate complex data transfers and validate that all customer accounts, transactions, and records are seamlessly moved from one system to another. In the end, they have high data accuracy and reduce the risk of its corruption or losses.

Reason #3. Excluding server downtime

The last thing you want is the download speed of your IT product to suddenly decrease― this is one of the common reasons why consumers abandon apps (1 in 2 users don’t wait for more than 6 seconds for page loading).

During a project with a similar issue, a1qa’s professionals introduced load validation to guarantee smooth system functioning with the target load for an extended period as well as stress testing to determine the upper limit of the solution capacity. They also analyzed software dependence on the number of concurrent users, requests, and transactions. It helped the client expand operational volume and provide first-rate services to its customers.

Reason #4. Adjusting software for various platforms

In the third quarter of 2023, 70.5% of mobile device users were utilizing Android, 28.8% ― iOS, and 0.7% ― other platforms. As the range of phones, operating systems, and browsers is endless, it’s hard to predict which ones consumers will use. To provide a seamless experience and ensure that the banking solution fits a wide variety of devices, we advise our clients to leverage compatibility testing.

In such cases, our experts collect statistics from a target region for desktops, tablets, and mobile devices. Based on the information gathered, they create a compatibility matrix that reflects the most used browsers and platforms and then test financial apps across them.

All in all

In today’s rapidly evolving financial landscape, quality assurance stands as the cornerstone of excellence in the quality of banking IT products for several compelling reasons.

Firstly, it helps protect sensitive and confidential data from potential security breaches. Secondly, it ensures that cloud-based software functions flawlessly and at the highest quality. Thirdly, QA plays a pivotal role in eliminating server downtime as uninterrupted operation is paramount. And lastly, by relying on QA, companies can adjust their apps for multiple platforms, catering to the diverse needs of their end users.

For professional QA support to ensure first-rate quality within your banking software, feel free to contact a1qa’s team.

No turning back. The world will hardly be the same again.

The COVID-19 virus spread is literally impacting every economic sector and every component of every sector. It enforces private local organizations, big enterprises, and entire industries that transform their processes to survive in these days full of challenges.

The fears caused by COVID-19’s power usurpation continue worsening the tragedy of losing lives apart from an immense effect on businesses on all continents.

In the recent research “Managing supply chain risk and disruption” (compiled by Deloitte), the coronavirus is called the black swan continuing to ambush all industries not feeling sorry for anybody.

And managing the crisis impact is becoming a challenge as the world is changing day-to-day, and we can only assume what will happen in a few months. For sure, coronavirus influence on global economic performance cannot be understated. And in the heart of the breakdown, we also see millions of people naturally living in an online environment. It leads to the natural shift of offline businesses to online mode.

In this blog post, we will highlight how companies can meet their planned business objectives with no health risks involved with the help of QA outsourcing.

Be certain in the uncertain times

How to enable your company to remain strong enough? As the unstable situation triggers acceleration for digital transformation, adapt to the rapidly changing end-users mindset – digitalize your business as soon as possible and give consumers what they are searching for.

Imagine the scope of the audience that is moving to an online landscape: you can attract clients that can become your brand advocates and current buyers if they are satisfied with what you are doing.

It is a well-known fact that companies focusing on boosting CX get revenue higher by 4-8% than the rest ones. By now, consumer behavior is modifying. New demands. Growing expectations. This is why the definition of positive customer experience is changing as well.

Statistics on customer experience

In retail, representatives are acting in a new way, changing the processes that used to become habitual and clear, and optimizing it as soon as it becomes possible. Indeed, some challenges in this sphere are much like extremes especially when you need to rethink the supply chain.

eRetailers in red zones need to make a shift to more essential products and be sure their digital solutions will fulfill their tasks even if a target audience, which has increased by many times, will opt for their goods. They are having the goods delivery happen more often – for this, QA practices can help ensure the client can see the whole goods variety, order an item, and pay for it in online mode with no system interruption.

With the BFSI industry, the impact is more moderate. When banks workforces are mobilizing to remote work, their consumers are searching for more operational flexibility along with expanded digital banking opportunities. Software testing is here to leverage the delivery of top-tier software products.

How can QA outsourcing help respond to the situation?

The unstable conditions clearly showed the importance of having a truly global delivery model. If not so, a QA outsourcer can provide high-quality B2B technical support of the companies in this critical time of need. In addition to digital transformation, new demand in terms of moving to Agile as well as to the cloud is becoming more essential, and a third-party vendor is up to ensure smooth transitioning during the lockdown.

It is also important for the business to stay focused on the core business needs and anticipate the risks while the partner can accelerate the successful release of the software product.

How exactly can a QA outsourcer support a business?

  • Provide an independent assessment of software quality.
  • Ensure the increased speed of jump-starting the project in a couple of weeks.
  • Reach time and budget savings due to wisely implemented QA solutions like test automation.
  • Select the right QA talents with niche and industry expertise.
  • Deliver smart team scalability depending on the current needs.
How a QA vendor can support your business

At a1qa, we deeply delve into the business needs of the client to understand its pain points. This is how we created an Aquality Automation platform for test automation to help decreased QA budget and tests’ duration.

Four characteristics of a well-trusted vendor

Now, the deal of every service provider is to continue delivering high-quality solutions to ensure uninterrupted service delivery and not forget about their own business-critical needs.

QA outsourcing can leverage your appearance in the right place at the right time, rather than drown under the weight of changes.

Here are four factors that can help you choose the right third-party company.

  1. A solid reputation in the market. Mark positive and negative customers’ references, recognition of authoritative sources, niche certificates.
  2. Company of needed size and required competencies. Ensure a vendor is skilled enough to meet your business challenges and has proper QA experience based on the success stories in the portfolio.
  3. Clear communication process. Is your initial communication transparent? Do you feel that people talking to you are qualified? Answer these questions to decide on the communication levels.
  4. Business continuity during this unexpected time. Ascertain that the company can provide continued confidence that the planned operational outcomes will be achieved.

A really well-trusted vendor provides full immersion in your processes, problems, goals and has already done a mental shift to adjust to the “new norm”.

Thinking about making the right decision in almost total uncertainty? Drop us a line to get expert advice from the a1qa professionals and see how we can support your business.

The dedicated team (DTM for short) is an engagement model that is widely used in the world of outsourcing, software testing industry being no exception. By providing decent technology-oriented experts delving into business processes, many clients are getting interested in QA outsourcing.

Today, we decided to raise your awareness about this model peculiarities and summarize some specific issues one should know before deciding on the DTM.

Sounds curious? Let’s start.

What’s the dedicated team?

Just as the time & material (T&M) or fixed price (FP), the dedicated team is the business model. Its essence lies in providing the customer with the extension of their in-house team. The scope of works, team structure, and payment terms are specified in the client-service provider agreement.

Deciding on the model, the client can shift the focus on business-critical competencies by cutting expenses spent on micromanagement as well as searching, hiring, and training new QA specialists.

The team fully commits to the needs of the customer and the vision of business and product, while the QA vendor provides its administrative support, monitors the testing environment and infrastructure, measures KPIs, and proposes improvements.

When choose the dedicated team? 

Before making a step toward DTM, you might ask yourself whether it is reasonable in this particular case. Here are five signs that you need a QA dedicated team:

  1. You aim to keep QA costs to the minimum.
  2. The project requirements are changeable.
  3. You have no intention to train or manage your in-house QA team.
  4. Your project has significant scalability potential.
  5. You are interested in building long-lasting relationships with the QA vendor.

Dedicated team model at a1qa 

Vitaly Prus, a1qa Head of testing department with extensive experience in managing Agile/SAFe teams, knows how to set up and maintain successful DTMs for both large corporations and startups.

Vitaly, is the DTM popular among a1qa clients? 

It is. In fact, the DTM is the most popular engagement model at a1qa. Suffice it to say, about 60% of the ongoing projects are running this model.

DTM clients: who are they? 

Traditionally, the model is more appreciated by the US and Europe-located clients.

From my experience, customers choose the dedicated team when they want to extend their in-house crew but have no time to hire or no resources to train new QA talents.

Comparing to the fixed price or T&M models, the DTM is about persons, I would say. Applying for the dedicated team, most clients seek not additional testing hands, but they rather want to get a pool of motivated specialists who will commit to the project, flexibly adapt to changing business demands, stay proactive, and do their best to make the final solution just perfect.

The client needs a specialist to communicate with. So the personality of the dedicated team members really matters.

And I can’t but stress it that the DTM is used for long-term projects mainly. For example, we currently maintain teams that have been providing software testing services for 5, 7, and 10 years already. You see? The dedicated team is literally about dedication.

Could you list the top 3 main advantages that are valuable for the client?

Besides the commitment (that is the result of the model nature), I would name transparency of the process and opportunity to control all the workflows. At a1qa, we also provide smart team scalability by rapidly adjusting to the clients’ demands of expanding or decreasing the team size.

Through possible modalities for cooperation, our teams can perform their duties on-site by staying at clients’ place. Many of our customers get their dedicated teams operating remotely.

Furthermore, during the global outbreak, we continue helping our customers get confident in the top-level quality of their IT applications. We offer them to apply a work-from-home scenario for the whole team or particular members in order to mitigate health risks that can hinder effective work processes.

We can also combine both models to achieve greater success.

As for the latter, we offer a vast pool of specialists with diversified tech skills and industry-centric expertise (manual and automated testers, security testers, UX testers across telecom, BFSI, eCommerce, and more). Our clients also get an independent software quality evaluation along with a variety of testing means and access to the latest technological achievements.

Drop us a line to discuss whether DTM is the right decision for your business.

What are the key factors for DTM success?

The success of any dedicated team depends on how well a service provider takes care of its resources and on the quality of the infrastructure and environment provided.

At a1qa, we’ve built a well-structured approach to set up dedicated teams considering all clients’ requirements. Our сustomers highly rate the work of our crews.

Clutch: customer's review on a1qa

In addition, we continuously strengthen QA expertise and leverage innovations in proprietary R&Ds and Centers of Excellence. Our passionate a1qa talents are willing and ready to get and expand QA knowledge in our QA Academy providing a unique approach to the educational process. All of this complies with the standards of a1qa culture of excellence taking our processes up to the next level of work quality.

Does it take long to set up the right team? 

Some clients trust our project managers and rely on our choice. Others are more attentive to this matter and take part in all interviews, check CVs of all possible engineers. On average, it takes from a week to a month to set up a team that will be ready to start.

If a team requires 10 engineers, we usually recommend assigning only 2-3 specialists at the very start, and gradually expand the team as the project grows. This appears to be much more effective than to set up a team of 10 software testers from the very beginning.

Besides, we offer to assign a QA manager who will take control over QA tasks and activities to get the maximum value from the DTM.

We can also offer a try-before-you-buy option if a client is not sure that a proposed candidate fully meets requirements. It’s like a test drive for QA specialists: if there are any doubts, clients have some time to form their opinion and decide whether to continue cooperation with the team players or not.

How can clients be sure that the team delivers the expected results?

At the start of the work, define relevant metrics to track the team’s success. Use KPIs to assure your decent professionals deliver the required results on time.

As I said before, you can take full control over your team in the way it is more preferable. Ask the participants to conduct daily stand-ups and provide regular status reports to tailor the communication process to your demands.

What is the billing process?

The dedicated team is paid for on a monthly basis and the pricing process is quite simple. The billing sum depends on the team composition, its size, and the skillset.

When discussing the model with a client, we warn them about the downtime expenditures: if there happens to be downtime and the team will have no tasks to perform, the client will keep paying for this time as well.

But as a matter of practice, QA and software teams hardly ever have idle time. Even if the team has technical issues blocking the testing work (e.g. test servers or defect tracking system on the client’s side is temporarily unavailable), they can proactively suggest and do some tasks useful for the project, like preparing test data files, etc.

Summing up

Let’s summarize. In short, the dedicated team model can help achieve the needed goals and contribute to business success in the market. When working with your team (yes, it is fully yours), you can get a range of benefits:

  • Full commitment to your project needs and methodology.
  • Adjustment to your time zone.
  • Opportunity to interview all specialists.
  • Complete control over all project flaws.
  • Comprehensive reporting and smooth cooperation.
  • Rapid resources onboarding.
  • Long-term value through accumulated expertise and knowledge retention.
Dedicated team model advantages

Regardless of the industry, business need, or software product, you can have a decent crew working most suitably: be it a remote, on-site, or mixed collaboration. Within global outbreaks, we offer the clients to have their team players operating from home in order not to disrupt the work process because of health issues.

Contact the a1qa experts to get a dedicated team bringing the best possible QA solutions implemented into your business.

Digitalization is pushing many companies to develop state-of-the-art software products faster than competitors do to grow their businesses. And this movement towards the creation of new technical capabilities is bearing fruit. Web services perform hundreds of diverse tasks to optimize production processes, which saves companies’ resources and provides end users with more useful options.

Let’s take as an example world-renowned manufacturers, retailers, and marketers of goods that introduce new technologies allowing remotely monitor the condition of machines creating the products. Experts can study the problem at the factory remotely and make recommendations on troubleshooting. This helps reduce the number of business trips, which saves money for companies.

Other businesses go even further and develop their digital projects to create IT products. They increase the recognition of the company and attract a new audience.

Let’s take a look at one success story. A media company owning a magazine-format newspaper decided to make a successful digital shift to the online space. To align customers’ expectations from the world over and provide them with a quick and stable digital version of the solution, the client turned to performance testing, a series of checks on the system’s responsiveness to high load. The results of these tests helped to adjust the software product to the end users’ needs. By now, the news portal continues to work smoothly after the launch of the online version.

However, this update process could have failed if the newspaper’s website hadn’t withstood the influx of new users. How to avoid such possible incidents? The decision is to collect more information about the work of an IT product in different conditions and under different circumstances.

There is no need to introduce performance testing, which helped achieve the business need in the above-mentioned success story. In this article, we will highlight its main types and discuss, which metrics to take into account for tracking the flawless functioning of the system.

Components of performance testing

As you know, who owns the information, he owns the world. In this case, those who own the information are likely to develop the web product more successfully.

The stable and smooth functioning of the software depends on an understanding of the state of the server, systems, and infrastructure. Up-to-date performance data allows the QA team to respond quickly to software problems and solve them.

What software indicators are analyzed throughout the performance testing process?

  • Behavior under expected load
  • Work with different configurations
  • Stability over time
  • Scalability features
  • Productivity with increasing data volume
  • Capacity limits

Now we are moving to discuss each of these indicators in more detail.

  • Behavior under expected load (load testing)

Implementation of this performance testing type helps evaluate and predict the behavior of the system under real-life load conditions when multiple users utilize it simultaneously.

If you don’t know how your web product works under a specific expected load, then how can you be sure that it will function as required every day?

  • Work with different configurations (configuration testing)

A web service can be run on different devices and platforms. Configuration testing helps predict the behavior of the software product operating with complex combinations of software and hardware configurations. It will allow timely detecting defects in the web service and eliminate them before go-live.

  • Stability over time (stability testing)

This verification type can allow you to evaluate the stability of the software product over a certain period. Indeed, if now the system does not fail, it is not a confirmation of the web service impeccability. Stability testing defines the ability of your software product to work over a long period of use and not to crash at any moment.

  • Scalability features (scalability testing)

The goal of scalability testing is to reveal that a system can adapt to changing conditions while increasing the processing power and changing the architecture. Scalability checks verify that your application is ready for critical situations like when the user traffic is scaling up or down.

  • Productivity with increasing data volume (volume testing)

This type of performance testing is necessary if you are wondering how the web service can behave when stored user and system data volumes in the database are increased. Volume testing is perfect for long-running projects and is conducted to ensure the system can cope with a large amount of data used. It also reveals such bottlenecks as insufficient memory resources, incorrect storage and loss of data.

  • Capacity limits (stress testing)

The main goal of this type of verification is to figure out the maximum load that a system can handle without failures. You can also evaluate whether the system is available when processor time, memory, network channel width are changing under the increased load.

Stress testing also allows defining the time that the software needs to return to the normal state after stress conditions. In addition, one can make sure that valuable data is saved before crashing, and this crashing does no harm to the tested system.

Information analysis methods

All these performance testing types help identify possible defects and eliminate them promptly. And this is what is also important to know about your software product – system bottlenecks and the real level of software quality.

When choosing indicators for assessing the quality, you can focus on the following factors:

  • Conditions for the information collection and analysis
  • Accuracy of data analysis
  • Importance of specific criteria.

The real assessment of software quality is based on metrics, which are the particular characteristic measurements. For example, value indicators for web services are speed and completeness of page loading, factors for evaluating user convenience, and more.

We suggest considering these valuable indicators:

  • Response time
  • Concurrent users
  • Requests per second
  • Transactions per second
  • Error rate.

What does each of these indicators mean, and why should it be considered when evaluating the quality of a software product? Let’s specify.

  • Response time 

It is a measure of the time during which the server completes a user request. A lengthy page or image loading may indicate poor web service performance. The optimal indicator of this parameter depends on the characteristics of the product and other external factors. The average rate for a request should not exceed 3 seconds.

When evaluating the response time, it is worth considering not only average indicators but also the peak ones that can help identify not obvious system bottlenecks.

For example, the average page loading time for a mobile application is 2 seconds. This is an acceptable indicator. But a large image increases the download time to 10 seconds. This is a peak indicator that identifies the performance bottleneck of a web product.

Realizing such details will help you better understand the capabilities of the software product.

At the traditional summer professional conference, our performance testing experts covered the topic of optimized page loading speed. You can see at the picture below the cherry-picked points from the presentation.

Page loading a1qa
  • Concurrent users 

Do you know how many virtual users can use your web service in parallel?

This metric allows you to identify problems with the inability to work under high load. It is important to consider this indicator on the eve of the planned influx of users. After all, the inability to cope with the requests of many users can lead to disruption of the regular operation of the application. And possible freezes or incorrect query execution can cause the opposite effect – the outflow of users.

  • Requests per second 

The number of successful requests per second is another important measure of web application performance. This metric takes into account all possible options for the interaction of the user and the software product (information search, loading or unloading of data, etc.).

After all, low rates of the number of requests processed per second might be a result of unsatisfactory server operation.

  • Transactions per second

In this case, we are talking about those operations that, when executed, turn into a single chain. An example of a transaction is the transfer of money from one account to another, adding a product to the cart, or subscription to the news.

This indicator reflects the number of completed transactions for a specific time. The metric reveals the maximum user load.

For the user, a low transaction rate per second means a decrease in the speed of specific tasks. The timely detection of defects in this area will make the software product more flawless.

  • Error rate

The error rate indicates the frequency of errors in the working software product. This metric depends on the number of concurrent users and queries.

An increase in the number of errors during the testing process indicates a problem state of the system. This takes the software product beyond stable operation.

The error rate is not a universal and accurate indicator. We can say with confidence that an error rate that is close to 0 confirms the high quality of the software product.

These are significant but not the only factors for evaluating the effectiveness of a software product. It may seem that a greater number of measurable factors can make the project better. But it’s not.

There are two extremes:

  • Attempts to measure every issue of the project
  • Ignoring quality indicators.

Both approaches in their pure form are ineffective. It is important to control the software product quality and refer to the necessary and relevant indicators.

Summarizing

Evaluation of software quality is a key requirement for its successful development. A series of tests that assess the behavior of the service under high load or load scaling can form a complete picture of the product. Metrics help evaluate the system’s performance and accurately identify system bottlenecks that may entail difficulties in using the IT product.

Do you know everything about your web application performance? Get a free consultation with the a1qa experts on your software quality issues.

In today’s post, we’ll raise your awareness of how good quality can be defined and achieved. This material will be useful to project managers and company owners who are running software projects either regularly or on a one-time basis.

Let’s start.

Every project manager knows that when planning a project, it’s essential not to leave any issues up to chance. And it’s not about the software only. When planning a trip, house repair works, or a wedding, it’s vital to take all but tiny issues into account.

When speaking about IT projects, it’s highly important to plan for the scope of work, for the budget and timeline, select the right tech stack and skills that every team member will bring to the table.

However, there is one thing that is often taken for granted. Quality. Believe us on the say-so: high quality is not a matter of course. Quality is as important as budget, deadlines, and toolset. And if you don’t plan it, you still leave it up to chance.

Quality plan: what to include?

For every project, there is a project plan. The point is that for every project, there should also be a quality plan. Unfortunately, very few of us know what it looks like. Right?

A quality plan is not the same as a test plan. A test plan outlines a testing strategy, while a quality plan helps to assure that you will deliver the flawless system.

To excel, make sure you have the comprehensive step-by-step quality plan in place. Mainly, planning to produce a decent software product of high quality is a three-step process, and we’ll list all the steps.

So what are the steps your team should take to deliver a high-quality product, free of flaws and vulnerabilities, and satisfying both the stakeholders and your users?

1. Agreeing on “good” quality

For those who have no or little experience in setting quality goals, this step may be rather daunting. But once you set your first goals, it will be less challenging for you next time.

The simplest way, to begin with, is to analyze what has made us or our clients, or management judge the system to be of unacceptably poor quality before. What made the client go crazy or why the users left bad reviews you’d prefer to delete from the store? Was the software too buggy to be used successfully? Was it slow? Was it insecure?

Try to make a list of all quality dimensions that turned out to be critical in the past.

2. Setting measurable quality goals

Sounds quizzical? Indeed, the budget is set in terms of money, deadline – in terms of calendar dates. How can one measure quality?

Once you’ve completed the list mentioned above (with various quality dimensions that matter), think how you can measure each of those dimensions.

For instance:

  • If you care about the number of defects, then apply the “defect density” notion. (Defect density = total number of defects detected in software for a certain period of time/product size, where size is measured in some concrete way, i.e., lines of code).
  • If the final performance parameters are important, then you can speak about the time of response (measured in seconds), throughput (bytes per second), or load (simultaneous users).
    Once you’ve identified the key quality attributes, it’s high time to figure out what your reasonable quality goals are.

Previous software development and testing projects will be much of help. However, very often, the quality on the prior projects fell short of expectations. If this is the case, still measure the goals achieved and set new ones with improvements.

3. Planning quality-related works

Defining measurable quality goals is not the end. In order to achieve them, you or your team must do something.

There are three main types of quality-related activities you should plan: detection, correction, and prevention. Let’s specify each of them.

Defect detection activities are designed to isolate defects. “But we have a QA engineer who’s responsible for reporting bugs to the developers”, you might say. You’re right, but are you sure that testing doesn’t happen too late on the project? To answer this, reckon up the costs of the bug fixing activities. How much effort does it take?

You can improve quality by doing more detection activities earlier on the project. The results will astonish you.

To do this, try the following:

  • Introduce code review in the early stages of the project.
  • Consider implementing a test-driven development approach. Writing the tests first requires a software engineer to consider what he wants from the code.

Defect correction activities are focused on verifying that the bugs that have been detected and fixed haven’t introduced any more flaws or vulnerabilities to the system.

The last (but not the least) kind of activity is defect prevention. If conducted properly, it will provide you with the biggest payoff. Remember a wise saying assigned to Benjamin Franklin? “An ounce of prevention is worth a pound of cure.” The essence of the defect prevention is to consider the problems you faced before, and try to enhance tools, methods, or approaches to keep them from happening again.

Of course, some experience is required to perform defects prevention. Otherwise, it is likely to take too long to search for all possible bottlenecks. We would advise addressing specially trained staff, be it business analysts or QA consultants, to do this work and avoid high rework costs.

Bottom line

In today’s post, we’ve focused on planning for quality. Now you know that alongside the project plan, there should also be a quality plan in place. Have we convinced you?

We’ve also specified how to choose quality parameters and measure them. The three activities you must plan if you don’t want to leave your quality goals up to chance have also been mentioned.

Now you know the route to successful project delivery.

Any questions? To get a free quote, drop us a few lines.

We’ve rounded up 8 most common questions regarding the cooperation with a1qa and the specifics of a project performance asked by our clients at the very beginning. Let’s answer them all!

How to start cooperation?

The cost of services and our testing approach constitute the list of most wide-spread questions within the outset of each project. What testing activities will we implement? What QA solutions will we provide the clients with?

The answers to these questions are unique in each particular case.

However, it’s possible to divide all requests into two types:

  • the ones that require fulfilling specific works of a fixed volume
  • those that presuppose forming a dedicated team.

The first type of queries is connected with performing tasks for a fixed price, the second – with the assembling a dedicated team.

Let’s discuss both scenarios.

The first option: a fixed price model

In this case, the client’s issue can be solved by means of particular testing service, be it an ad hoc functional or performance testing when the test coverage is previously defined.

If the software under test is a publicly available product or we can compile the desired data without an NDA (non-disclosure agreement), then the preliminary cost estimation will be created without signing additional papers.

To get an exact estimation, NDA is required. We gather the necessary data for preparing a commercial proposal and calculate the price, that can differ from the estimated total by +/-20%. After the cost approval, we conclude a contract, an MSA (Master Service Agreement), and an SoW (Statement of Work). E-signature allows the client to sign the contract online, and the project starts in the course of two weeks after receiving the prepayment.

The second option: a dedicated team model

This variant is more preferable for long-term projects with inaccurate project requirements.

We study the demands set for a software testing engineer of a certain qualification, define the cost of one man-hour, and start forming the team. The client can join the process by examining the CV of each specialist and conducting a face-to-face interview or meeting all project members after concluding the contract.

The legal process is similar to the above-mentioned scenario. The team is put together in two weeks or even earlier after receiving the prepayment.

What if the team is required ASAP?

Providing the team will take some time due to an obligatory legal registration of each deal. However, we are always ready to accelerate the process.

For instance, we may start clarifying the requirements for a team alongside signing the contract. Swift alignment process on the client side will help speed up the project launch.

How to choose the proper model?

If the project scope and deadlines are accurately defined, it’s better to opt for the fixed price model.

Conversely, if you can’t determine the requirements or the time frame of cooperation, we recommend choosing the dedicated team, managed either on the client side or by a QA manager as a part of the team. The tasks can either be transferred to the team or formed in the scope of work. The second alternative is more common for projects based on Agile practices. Thus, progress is tracked. The a1qa specialists will keep the client informed regarding all possible improvements on the project.

The team is selected. How to integrate it into the ongoing development process?

a1qa possesses vast expertise in providing specialists for remote work. If the development stage has already started, the engineers are integrated into the current context. The first vital aspect to consider is the choice of the proper tools – task management, version control, bug tracking systems, and many more. Working with the toolkit applied by the client is a big deal, as it helps seamlessly fit in with the team on the customer side.

One more aspect to keep in mind is the integration into the client’s infrastructure, be it test benches or virtual machines for running automated tests.

Furthermore, the active participation of the a1qa team in communication with the client’s specialists matters.

In order to establish effective communication at the beginning of the partnership, we visit our clients and organize the knowledge transfer to the engineers or team managers.

Then the expertise is accumulated within a particular project so that the client can get the answers to all the questions at any given time.

Multiple communication models – e.g. a lead software testing engineer-a dev team/QA engineer – are observed. Thus, transparency of the working processes ensures seamless interaction with each specialist.

How to monitor the progress of the testing team?

The timeline for the fixed price projects is always set strictly. In the scope of work, the client has real-time access to all the defects detected and test documentation, which allows studying all parts of the code covered by tests.

The dedicated team provides weekly reporting that covers the workload fulfilled, the time spent, and the overall team performance.

During sprint planning within the Agile-based projects, the client can independently manage tasks and establish priorities. However, these activities can be carried out by the QA manager if necessary.

Can a different time zone affect the process?

No matter what the time difference is, the core solution applied by a1qa is shifting the working hours of our teams to reach the maximum overlap in time. Such situations prevail in the IT sphere, and its’ better to tackle them individually.

Meanwhile, if the client is located to the west, we are ahead of time, which is a major asset. By the beginning of the day, the client receives the scope of the fulfilled tasks and logged defects so that the workflow is accelerated.

Having efficiently functioned for more than 15 years, a1qa has never experienced any problems with the time difference. What matters most is the setting of the working schedule, which later can be optimized if needed.

End-user personal data is under GDPR. Will you ensure its safety?

GDPR compliance is legally determined in a1qa. Alongside concluding the contract, the client signs the documents that assure data protection.

Depending on the type of personal information, we apply various data protection mechanisms, from data depersonalization technology to randomized information of unreal people.

Are the processes delivered transparent and measurable?

a1qa is committed to build long-term cooperation with clients and meet all their requirements. Such an approach implies ongoing improvement and optimization of processes within the company, a modern system of qualification and training tailored for its employees, accumulation of technical knowledge and practices within R&D centers.

The majority of clients choose a1qa upon the recommendation, which signifies a high level of trust.

The company is often contacted to provide complex software testing support. Company’s rich experience allows us to deliver consulting services to optimize current testing activities and build efficient QA processes from scratch. a1qa’s broad expertise is the key to estimate the quality of the existing processes on the client side.

With more than 700 FTEs on board and 15 years in SQA business, the company continues to grow steadily. The quality management system is certified according to ISO 9001.

One more indicator of the company’s maturity is the level of industry recognition. a1qa is widely represented in various ratings, we regularly participate in software testing events, our specialists attend industry-specific and cross-disciplinary conferences the world over.

We are glad to share our expertise and go into details of the services, which are of particular interest to you. To get a free consultation, drop us a few lines.

Nadya Knysh – Managing Director at a1qa – on how to decide on the right amount of QA and choose the right test strategy.

Is it possible to choose the single right amount of quality assurance? The simple answer here is NO. And here is why.

There are multiple factors that impact the scope of testing and your testing strategy.

#1 Solution scope

In my experience, about 80% of software projects are delivered using Scrum as the project methodology.

Scrum (like most Agile frameworks) is all about change. New requirements are coming in every sprint, priorities are changing, development is following business needs…

What does that mean for QA?

Well, your planning horizon is pretty limited. Of course, you’ll define your team capacity after a few sprints.

However, you cannot be 100% sure of what skill set may be required in the next sprint – are we testing APIs or UX? Will we have new devices in the office by the time we need to test against them? Will the development team’s capacity impact the deliverables dates? All these questions impact your ability to plan and predict how much QA you’ll need and when. That doesn’t mean you shouldn’t plan, though.

#2 External factors

Imagine you have a one-year roadmap to deliver a brand-new solution to the market.

It’s December 2018 when you start developing, which means Apple has already released its 2018 updates while Samsung is still working on its presentation for February 2019.

Oh, and by December 2019, when you plan to release, Apple will have delivered another presentation on 2019’s new features, hardware, screen sizes, and who knows what else.

So, when planning QA, you should look at up-to-date statistics on what devices your target audience is using to interact with your software.

By the way, the iPhone 7 is still pretty popular, so your first thought might be to include it on the list of supported devices.

However, when thinking from a strategic perspective, by December 2019, the iPhone 7 will be three generations old. So the question is – do you care about it? And what if you do all your development and testing around the Apple Watch and then, a few months before the release, Apple recalls all the devices due to some critical issues?

So, my recommendation is: plan but be flexible. It is not the strongest of the species that survives, nor the most intelligent. It is the one that is most adaptable to change.

What are the most important quality aspects to be tested?

That’s a very good question! But I have found a very simple answer.

A long time ago, I was talking to a solution architect who was developing the architecture for a SaaS solution: highly secure, customizable, and with (hopefully) high performance.

When he was walking me through the architecture ideas (in other words, a draft version), he was explaining why he needed this feature and that feature here and there through quality attributes – a concept well defined in ISO 25010.

The full list of quality attributes is now available all over the Internet. So now, when defining a QA strategy for any of our projects, I recommend reviewing this list again and asking a question: is that important for my product now? In most cases, your answer will be YES in terms of functionality and UI/usability. That’s why you’ll plan functional, UI, compatibility, and usability tests.

Compatibility is the one that is often overlooked.

Always remember that you cannot make your audience use the same browser or smartphone that you do. You have to accept their choice and support whatever they like.

Side note: check your audience geography; people in China use very different smartphones from those used by people in the US.

Let’s say you develop an internal accounting solution for your CFO and two to three other analysts or accountants.

In this case, if one report that you only generate annually takes five minutes to generate, you may not care that much about the solution performance. But what if your solution is a stock market software? Performance is critical here: the market changes in nanoseconds and five minutes will cost you a fortune.

Security is another big topic. Do you store personal information (like SSN and DOB) or your customers’ credit card details? Oh yeah, security testing is a must.

And believe me, you’d rather be compliant with HIPAA, FDA, PCI-DSS, and other regulations than go to court against your customers.

Summing up

To test or not to test isn’t a question in our digital age. Now the focus has shifted toward choosing the right testing strategy that will meet the requirements of the software developed, end-users, and business stakeholders.

Flexible planning and setting priorities related to your product is what will help you make the smart choice.

A lot has been said about the benefits of test automation. It allows to deliver high-quality software solutions faster at a lower cost. Automation of the testing process assumes that tests will be performed continuously and with a lower probability of errors as the human job will be done automatically.

However, it is worth remembering that the introduction of automation is a serious step that requires significant financial and time investments. Before you start looking for a team of professional test automation engineers, you need to define its requirements, set goals, calculate profitability, clarify the automation expectations of all team members.

If you are thinking about automating the testing processes in your company, but hesitate what to begin with, we suggest that you answer six questions below. It is possible that in the process of finding answers you will decide on whether automation is appropriate in your particular project.

1. Is your software product stable?

Before you start developing an automation solution, make sure that your product is stable and ready for intensive testing.

As a rule, the introduction of automation in the early stages of developing a software solution causes great difficulties. Scripts that are suitable for testing of one version of the product may not be suitable for testing the next one.

Accordingly, and the cost of testing will grow. Therefore, the set of automated tests should cover the stable functionality of the product.

2. Will the project require regular launch of the same tests?

For maximum effect, automated tests should cover the most frequent scenarios of the product use. What’s the point in automating the test that will be launched only once? This scenario can be tested by a manual engineer.

Automation, in its turn, should release the time it takes to run tests regularly, for example, regression ones. Regression is one of the most resource-consuming tasks for testers, and it is where most of defects are hidden: a new feature was developed, an old one was broken. The automation of labor-intensive regression testing is one of the most popular solutions on projects to develop and assure the quality of software today.

3. How many times will the script be launched?

To make the invested money pay off faster, it is important to calculate in advance how many times the developed scripts will be launched. Typically, the return on investment for automation is better if the scripts for one build run at least 15 times.

4. Do you have a team of test automation pros?

The framework for automated testing can be purchased or a customized turnkey solution can be developed. Both options are not low-priced. And you need to trust automation only a professional team.

Otherwise, having spent a lot of money, you risk not to feel the solution advantages. If you do not have test automation pros in house, take care of finding a team that can take into account all the needs of your project, develop a convenient solution that your specialists can later use on their own.

5. Are you planning to replace manual testing by automated 100%?

If this is so, then quit this idea right now. 100% of testing automation cannot be achieved. Yes, some kinds of tests can be automated completely, for example, load testing and regression testing. But without the participation of experts in manual testing, you still won’t do. Otherwise, who will analyze the tests results, register defects and prepare quality reports? All these tasks are performed manually.

To achieve better results, it is more effective to use the combination of automation – covering common repetitive actions – and manual testing for complex cases. However, do not forget about the rules of interaction. Manual testers and automation engineers should clearly distinguish between their responsibilities.

6. Why did you set your mind on automation?

Sometimes this simple question turns out to be the most important. Have you thought about automation because the headings to automate were jumping at you every time you went googling? Or maybe you want to stay in trend? If these are the only reasons, then once again read about the automation objectives and possible challenges.

If you are driven by the desire to receive information about your software product faster or to optimize the cost of testing, then you are on the right track, and automation can help you.

You can also contact the specialists of the a1qa Test Automation Center of Excellence. They will evaluate your project, help you make the decision on automation, and also develop a solution that will meet all the requirements of your business.

Before a software product release, it’s vital to perform a series of tests in order to check its quality. However, often project managers don’t consider one crucial testing type, which is accessibility testing.

Accessibility testing is the process of checking whether the product is suitable for disabled people.

In this post, we will elucidate its relevance as well as core standards and guidelines applied for such a process.

Why is accessibility testing vital?

First and foremost, it can help your business grow. If the app is truly accessible to both able-bodied people and those with disabilities, for sure it will increase loyalty towards a brand. Only in America 67% of all disabled people (56 mln) obtain digital experience. Can you feel the ongoing scale?

Moreover, the income will enlarge proportionally to the number of audience.

Who can benefit from accessible content?

  • People with deafness / hearing loss
  • Blind and partially sighted people
  • People with dyslexia and other cognitive issues
  • Individuals with multiple combinations of disabilities
  • Aging people who undergo lucid changes.

WCAG 2.0: ACCESSIBILITY TESTING FRAMEWORK

The basic recommendations for the testing of accessibility are stated in a special document called Web Content Accessibility Guidelines (WCAG) 2.0.
It’s not a stand-alone paper and is supplemented by a number of guidelines. They provide additional information in order to introduce a full outline on accessibility testing.

WCAG 2.0 standard is intended to provide accessible content to people with numerous disabilities, from visual to neurological, including their innumerable combinations.

Content accessibility deeply depends on four key principles: perceptibility, operability, understandability, and robustness. Let us have a closer look at each point.

Core principles to bear in mind

To be esily accessible by the audience, the web content should be

1. Perceivable

The content and UI should be presented in the most suitable way for perceiving depending on this or that disability. Perceptibility can be reached on four levels.

Text-alternatives

Each non-text element should be presented as a text and elaborated into the appropriate form (Braille, special symbols or voicing). For instance, CAPTCHA, a tool that helps to identify human beings. This point is of high gravity. The more alternative types of this tool appear on the page, the easier people with different disabilities will perceive it.

Media

Diverse scenarios for media content will help people with hearing loss encounter fewer hurdles, especially if a sign language is used for prerecorded content.

Adaptable

This point is about using content that maintains sense and structure after transformation in various types. For instance, if the meaning depends on the content sequence, it’s vital to ensure that the order is set up correctly.

Distinguishable

People with disorders for sure will benefit from the ability to see and hear the content clearly, for instance, if there are no text images. They may be applied exceptionally, when they are necessary for layout or play a key role for preserving sense.

2. Operable

This principle presupposes that disabled people should encounter no encumbrances while using and navigating the app. This section also covers several points.

Keyboard accessibility

The whole app functionality can be operated by means of a keyboard, thus significantly simplifying user’s activities.

Enough time

Tool that allows disabled people pause certain update or scrolling will assist them study the content without any haste.

Harmful design elements

Here it is possible to talk about certain elements on a web page that spark three or less than three times a second. It’s a completely lucid requirement, as people may confront inconvenience or even mischief to their eyesight.

Navigation

If app users have an opportunity to skip some content blocks they encounter on other pages, navigation won’t be a serious bottleneck any more.

3. Understandable

The majority of bottlenecks can be offset if people with disorders fully understand the content and UI. The list of requirements here includes three vital points.

Readable content

This point, for instance, presupposes the use of a special mechanism that allows users to receive an expanded version of each abbreviation.

Predictability

For instance, if any context changes are run only after user’s approval, disabled people will unlikely get confused.

Input assistance

Content handling will be much easier for users if they obtain an opportunity to automatically locate and rectify existing input errors.

4. Robust

The crux of this matter is that the content should be compatible with the existing user applications.

WHO IS PROFICIENT ENOUGH TO PERFORM ACCESSIBILITY VERIFICATIONS?

In order to carry out accessibility testing successfully it’s vital to find a professional and experienced team who:

  • Strives to introduce quality
  • Knows necessary tools specific to each mobile platform (for instance, Android, iOS, Windows Phone)
  • Always has an eye for state-of-the-art techniques implemented for such kind of tests.

SUMMING UP

Accessibility testing is a vital constituent of a prerelease product preparation. The more attention is dedicated to such tests, the more users will strive to use your product regularly.

Do you want to check your application accessibility in accordance to the WCAG 2.0 standard? Address the a1qa specialists who will make sure your product hits all target audience.

In the era of digital transformation, any enterprise that doesn’t want to run out of business should fully leverage the opportunities of digital technologies.

Digital transformation is about changing the facet of every company, from back office operation to customer relationships. However, it all starts with a series of IT projects. And here the question is: who will supervise the process making sure that all business requirements are implemented?

Very often business approached one IT vendor who provides a full range of services: from business analysis to the solution development and testing.

However, this solution provokes several bottlenecks.

What are the possible problems of assigning all project tasks to a single contractor?

  1. The IT contractor always puts its own interests first. The executor’s analysts are more likely to think about future labor inputs and the technical feasibility of the platform / technology used by his/her team. Part of the laborious requirements can be omitted deliberately.
  2. Secondly, the customer will not have sufficient expertise and time to monitor the quality of the requirements specifications from the business analysts of the executor. Consequently, business users can obtain an IT solution that is completely different from the expected one.

How to avoid additional costs and get the best IT solution?

One way to solve the problem is to organize your own staff of business analysts and other IT professionals.

However, searching and hiring of personnel, maintaining costs, the need to motivate and retain staff may cause certain bottlenecks.

Taking into account all these factors, the organization of the BA department cannot be considered as the best option.

Although there exists a simpler solution. It presupposes hiring an independent business analyst.

Functions of an independent business analyst

External business analyst is involved into a project as a separate contractor, but not in conjunction with the development team (executor).

The functions of an independent business analyst do not differ from those of the in-house. During the work, the specialist will do the following:

  • Define the goals and scope of the development project
  • Elicit and document business and user requirements
  • Elaborate and document functional and non-functional requirements
  • Maintain the project at all stages
  • Solve all issues related to the requirements for the IT solution together with the development team
  • Take part in testing the developed functionality of the IT solution.

What are the pros of hiring an external business analyst?

  1. An independent business analyst first and foremost observes the interests of business users, rather than developers, as he doesn’t belong to their team.

Business users are the ones who have an impact on the assessment of the business analyst performance.

The analyst will strive to dive deep into the customer’s domain, understand business needs and elaborate the image of the future IT solution, taking into account the real users’ issues and the domain’s specific nature.

The external business analyst is not interested in elaborating unnecessary functions and modules, as well as disregarding the users’ wishes if they demand high labor efforts.

  1. The business analyst is responsible for communicating with the executor on all matters related to the requirements.

An independent business analyst becomes a liaison between business users and developers. It is he who will account for the requirements to the executor and ascertain the details with the business users.

Firstly, it removes a huge burden from business users. It is always easier to discuss detailed requirements with one person who understands the business context.

Secondly, the risk of requirement misinterpretation by developers is significantly reduced. Business requirements are worked out in advance and presented for technical specialists in an understandable way.

  1. The business analyst is a professional in an IT sphere.

During testing and IT solution functionality acceptance, the external business analyst tracks the function implementation, UX, the design quality, the correspondence of the function developed to the users’ initial requirements.

Thus, he/she reduces the burden on business users, as well as does not allow the executor to take advantage of insufficient customer expertise and “push” the design solutions that are far from being suitable.

An external business analyst values the experience in a customer’s domain rather than detailed knowledge of various IT platforms.

Therefore, from the perspective of long-term cooperation, an independent business analyst increases competence in the specific nature of the customer’s work.

(S)he can also be involved in a wide range of IT projects in future, regardless of different technologies / platforms / programming languages.

Whereas, the customer often cannot obtain the development of all the necessary IT solutions from direct executors, as they just do not have the appropriate technical expertise.

Book a non-obligation talk with the a1qa Business Analysis specialists and find out how they will help your business on the way to digital transformation.

The external analyst’s involvement yields benefits to the developers as well

It may seem that the involvement of external business analysts negatively sways the executors. In reality, the situation acutely diverges.

If the project lacks a business analyst, the corresponding functions are conveyed to one of the developers or software testers.

The issue is that such specialists possess neither specific knowledge in the field of business analysis, nor a sufficient incentive for performing such work.

This situation causes bottlenecks in communication with business users, misinterpretation of their requirements, errors in describing the business logic of the future IT solution.

Such flaws result in tremendous expenses, as fixing these issues often requires a radical change in the business logic or architecture of the IT solution.

Undoubtedly, the executor will have to bear enormous cost. That is entirely unsustainable.

Summing up

Duly elicited and fully implemented product requirements constitute the basis for a successful IT project.

One should always bear in mind that working with requirements lies within the work scope of a business analyst.

BA is the one who fully understands the domain and the wishes of future users, as well as formulates requirements to technical specialists in a clear and easy-to-understand manner.

For more than two years, a1qa has been engaged in the project of the payment system development for a huge banking organization. At the very beginning of the project, the a1qa engineers were responsible for testing the system. However, some time ago the customer asked our team to plan, perform user acceptance testing (UAT), and present the results.

In today’s post, we’ve decided to build the basis for effective user acceptance testing, shed light on its nuances, and answer all possible questions that the QA team may have.

What is user acceptance testing?

When it comes to any new concept, it may be useful to analyze its name first. In technical context (as that of the quality assurance) the name will be literal and will give you the first understanding of the issue.

UAT stands for user acceptance testing. Let’s explain the definition word by word.

1. Acceptance = approval, validation.
2. A user = either the end consumer of the product or the customer who ordered the product development.

UAT literally means that the software will be tested by the user to find out whether it can be accepted for further development and production.

Indeed, long before the product is released to its end users, in most cases the customer wants to know that the product has been developed considering all the requirements and specifications and will work correctly in its real environment.

UAT must be an indispensable part of the projects where poorly developed software can cause huge financial losses.

Thus, the objectives of UAT are the following:

  • Check that all preconcerted requirements have been satisfied and the product fits for business purposes.
  • Detect last-minute mistakes that could have occurred at the development stage.
  • Verify that the product is production-ready.

Who and when performs UAT?

Usually, UAT takes place right before the product is delivered to end users and after the QA team have finished their job. However, in some cases, the customer may want to follow the product development (especially, when the project is too costly and any mistake may result in great financial losses). Then, UAT may be performed twice or thrice per project to validate the right course of work.

During UAT, the product is tested either by end users who provide their feedback or someone who has built the software through an independent software vendor.

As for QA, their involvement may differ and come down to one of the following options:

  1. Not involved (a very rare case).
  2. Assistance in UAT – QA engineers may be asked to teach users how to use the software, submit defects, etc.
  3. Directly involved – The QA team evaluate the software and present the results to the customer who decides whether the product has been developed as expected.

If your QA team undertakes the responsibility to perform UAT, then start with selecting those specialists who possess excellent knowledge of the product and business objectives. He or she should be able to think of the software as a guest user.

After the responsible team member is selected, start with preparing a thorough acceptance test plan (ATP). It will regulate and facilitate the process of acceptance testing planning and performing.

Acceptance test plan: main sections

Usually, the specially trained personnel draft the document. Technical writers, for example. However, the QA team needs to fill it in with relevant data and keep it updated.

Let’s look through the contents of the typical ATP and briefly outline the contents of each section.

Introduction – the name of the product under test, background information, and product functionality.

UAT objectives – generally, these are the ones we’ve stated above.

Scope of requirements – the list of environments that must be verified during the testing procedure.

Pay attention that the requirements that are enumerated in this section must be demonstrated during the testing procedure (or at least, they should be planned for). If 100% of requirements have been implemented but only 70% can be demonstrated, then the customer will consider the remaining 30% as non-implemented, until the opposite is proved.

UAT tools and procedure – the list of all technical software and hardware tools applied during testing and the procedure. We recommend to specify all the tools that will be applied during the acceptance testing: databases, consoles, log files, automated tests – all this should be mentioned in this section. Otherwise, you won’t be allowed to use them during the acceptance testing process.

UAT methods – specifies how the demonstration is conducted, what methods are used to verify the implementation of a particular requirement and the expected result for each verification.

Main sections of acceptance test plan

UAT exit criteria

As a rule, the criteria that must be met to formally end acceptance testing are determined at the stage of contract signing. One of these criteria can be the percentage of successfully passed test cases.

For example, if 100 test cases have been implemented and the pass rate is agreed on 80%, then 80 test cases must be successfully passed. Otherwise, the product won’t go through UAT and won’t be admitted to production.

However, most often the success of UAT is evaluated by the set of criteria. For example, the percentage of implemented requirements and the number of defects of certain priorities. Based on these results, the customer will judge the readiness of the product.

This ends the necessary theory that the QA team should be aware of before committing to UAT. Jump to this article to learn about 4 main challenges you might face and ways to overcome them.

Next week we’ll tell you how our team demonstrated the results to the customer and ensured the product successful release. Stay tuned!

a1qa has made a 14-year journey in software testing and quality assurance market. The company’s core services include full cycle of testing, test automation, QA audit.

Although software testing plays a central role in a1qa business, it’s not the only viable service after all. The company invests in development of new services as well, going beyond software testing.

One of such services is business analysis. To find out why and how the SQA company has grown to establish its own BA Department, we’ve talked to Anton Trizna, Head of the Department.

Anton, tell us a bit how you got to where you are today.

I started my career as a software testing engineer at a1qa testing applications with complex business logic. Sometimes, I documented requirements and prepared requirements specification for the software. To join the BA team at a1qa, I underwent professional training and obtained diploma in BA. Years later, I was promoted to the Head of the Department.

If you were asked to outline the business analysts’ role in a software development project, how would you do this?

We talk a lot (laughing). In fact, we bridge business units with IT departments to make sure the developed software will meet the requirements. I’m proud to note that despite its novelty, our service at a1qa has already earned positive reputation with such clients as Gazprom Neft, Aeroflot, etc.

Do all the clients realize the importance of BA in the project?

Unfortunately, many clients underestimate the value of BA in a project, but building up accurate requirements is the basis for implementation of high-quality software. The fuller specified requirements to the system are, the less rework leading to extra costs will be required on the last stages of development.

How many BA specialists are there onboard at a1qa?

Currently, our BA team consists of 12 people and we are planning to expand the staff soon. Our new BAs come through the educational program during their probation period and pass the final exam to meet our standards. The training program is based on real-world BA tasks that are modelled to evaluate the knowledge and skills of a candidate, to teach basic BA technics and to see the progress of the candidate.

What business domains do you specialize in?

We’ve gained vast experience across multiple domains, including such specific areas as oil mining and production.

What are the strong sides of your team?

Among a1qa business analysts main advantages are quick adaptation to client’s conditions and close interaction within all stages of the project delivery. Our specialists often go on business trips to have onsite meetings with a client, investigate business processes, and elicit requirements establishing effective communication with stakeholders.

Let’s touch upon your work. What will the client get ordering the BA service at a1qa?

The most common scenario of engaging our specialists looks like this: the customer wishes to solve some business problem by developing an IT solution. They possess some idea of how it may work but that’s it. Here come BAs. We conduct requirements elicitation, analyze them, document, and test them. Upon the client’s demand, we can also participate in user acceptance testing and verify whether the solution has been developed as required.

Speaking precisely, our activities usually include the following steps:

  • Requirements elicitation, analysis and specification
  • Creating static and dynamic UI prototypes
  • Analysis of “as is” state of the business processes and modelling of the “to be” state
  • Consultations on the selection and implementation of an IT system that provides an optimal business solution
  • Requirements implementation control on all stages of the project
  • Requirements management: evaluating change requests for IT solutions and documentation update
  • Maintenance of reworks on the development and testing stage
  • Review of a project or technical documentation, requirements testing

Could you please elaborate the requirements testing service?

Our BA Department offers assistance in software requirements testing. Requirements testing is a process of requirements validation against such quality criteria as completeness, correctness, consistency, feasibility, unambiguity and so on. The purpose of such activity is to find bugs in the requirements specification in order to prevent their leakage to production.

Based on our experience in preparing requirements specifications, we identify potential defects that may be found in the documented requirements and devise the approach to the requirements testing.

When testing, QA specialists provide customers with regular reports on the delivered work and state of quality. What about BA? What artifacts do you prepare?

Among the artefacts that we prepare are the following:

  • Vison & Scope Document or Business Requirements Document that covers all business objectives and high-level business requirements and defines the scope of the future solution.
  • User Requirements Document describes user requirements using Use Cases or User Stories.
  • Software Requirements Specification/Requirements specification of different levels of detail in which functional and non-functional requirements are described.

If agile methodologies are implemented, BAs create Epics and decompose them to User Stories that are prioritized in the backlog and provided to the dev team.

How do you keep up with latest trends and practices?

Our BA team aims to keep up-to-date with new BA technics and tools. Tools that are new to the market are applied to check their efficiency and applicability in communication, modelling, prototyping, etc. Our BAs visit specialized conferences and seminars to improve their knowledge and skills and try their strengths in sharing their experience. Every year our specialists participate in the International Conference named Analyst Days, the largest one in Eastern Europe on System and Business Analysis.

Thank you Anton.

Get in touch with a1qa today to learn how the combination of software testing and business analysis will take your business to new heights.

If you are not happy with how well your e-commerce store is selling and you have no idea in terms of what shall be done about it, here is the list of issues composed by Head of Web Testing Department at a1qa, Elena Yakimova, that are likely to prevent your customers from making a purchase.

1. Your website is underperforming

According to the study conducted by the University of London, 90% of users would stop using an app if it is underperforming. Performance – whether it’s pages taking too long to load or browsing being slow and difficult, or maybe the pictures won’t display – is the top frustration of respondents.

2. The functionality of the website doesn’t respond to the customer’s needs

Despite the large variety of e-commerce websites and products they offer, all of them share the core functionality: search, list of products with the detailed description, product range filters and sorting, shopping cart, customers’ reviews. If any of this is missing or doesn’t work as expected, the customer will stumble and feel dissatisfied.

3. The payment process takes long and orders can’t be easily returned

Do you ask your customers to register before making a purchase? How long does it take them to complete the transaction? Is there a try-before-you-buy option? Do you offer various payment methods?

All these issues are very important and should be taken into consideration when developing a customer journey mapping. Keep it in mind: today’s users aim to get things done as quickly as possible.

4. The content of the website isn’t adapted for the target audience

60% of consumers will stay more positive about a brand after consuming content from it. Obviously, if the content isn’t localized to the customer’s region, it will pose extra difficulties and user experience will be damaged.

5. The website doesn’t work in the client’s browser / device / operating system

Customers will use different browsers (Chrome, Firefox, Opera, IE, etc.), devices (desktops, laptops, smartphones, etc.), and OS (Windows, UNIX, Linux, Mac, etc.) to access your e-commerce website. To satisfy them all you have to make sure the website runs smoothly in any combination.

By the way, mobile users are five times more likely to abandon the site if it’s not optimized for mobile. 83% say a seamless experience across all devices is somewhat or very important.

Obviously, the stakes are high for any business that depends on its website or mobile app. Addressing professional testers may help to get rid of the numerous shortcomings. Tech-savvy testing engineers will perform comprehensive testing to make your website deliver maximum value.

How can solid testing help? 

  1. A few seconds between clicking on the link and presentation can impair the use of the website. Performance testing will help answer the following questions:
  • Is the product ready for launch?
  • What is the maximum load the system can stand?
  • Why is the system’s performance low?
  • What are the bottlenecks?
  • Can the system stand the everyday workload?
  • How many concurrent users can the system handle?

Specialists will use performance testing tools to measure the average performance, detect all reasons that prolong the final presentation of your web page to the customer, and find out whether your website will survive the peak loads. By the way, in case you’ve missed it: here is the article on testing e-commerce before the peak loads. It’s well worth a read too.

  1. Every user covers his or her way before clicking a Pay button. To make this journey successful, a UX testing specialist will get into the customer’s shoes to complete all the steps and check them for inconveniences or ambiguities. 
  2. No e-commerce website functions without payments. After all, this is what allows users to purchase the desired items. Different payment types should be verified, e.g. Credit Card, Bank Transfers, Paypal, etc. Also, QA engineers should check whether the credit card details are stored securely and there will no data leakage occur. 
  3. Localization testing is an indispensable part of the e-commerce testing. If you think that localization is translating, you’re only partially right. Taxes, product returns and refunds, financial transactions, currencies must all be localized. And again, software localization testing specialists should take the responsibility. 
  4. Complex cross browser testing and adaptation for mobile are highly important for the e-commerce project. The professional software testing team will set up the right environment to test the product against relevant software and hardware combinations.

As you see, there’s a lot of work required to create and maintain an e-commerce website that will generate income. To make your customers come back, it’s vital to provide them with a user-friendly, fast, and informative e-commerce. Don’t neglect testing. It will help reveal all the drawbacks and timely eliminate them.

a1qa has a great experience in assuring the quality of websites. For example, this is the case study of how a1qa team assured the quality of the UK biggest fashion and home goods online store.

Contact a1qa today to make your e-commerce endeavor successful!

In the previous article Ekaterina Bazyleva, Manager at a1qa, encouraged our readers to actively use JIRA to manage agile projects. Today Ekaterina shares her professional secrets: she lists the JIRA functionalities that can make the manager’s life so much better.

1) Add flag

When there are many tasks on the Board and you plan to discuss one of them during the daily Scrum meeting, what do you do? Most probably, you put a sticker on your monitor not to forget about this very issue. However, there is another option, which is more convenient: flag an issue on the Board and it will be displayed in yellow. All flagged issues can be found with the JQL query Flagged = Impediment.

2) Burndown gadget

To find the Burndown Chart you have to open the Agile Board and go to the Reports. If you need to track several sprints and several teams, you’ll have to constantly switch between them. There is a way out. Add the Burndown Gadget to your dashboard and get the opportunity to monitor teams’ work. The more teams you have, the more Burndown Gadgets you have to add.

dashboard-jira-burnd

3) Card layout

Customize the cards for your boards and you will help the team members to see the right information at one glance. You can add up to three additional fields to be displayed on cards. It can be an issue assignee (if you have a big team, it’s not always easy to understand the responsible person by his or her small photo) or the Fix Version (good option if you have many different environments). The number of fields to choose from is really huge.

4) Workload by assignee

There are many teams that plan the workload on the sprint planning stage. The Workload by Assignee table will show you whether the work is evenly spread between the team members.

5) Kanban board

Besides the Scrum Board, there is also a Kanban Board available in the Agile Plugin.

It will suit, for example, the QA outsourcing projects where the situation changes on a daily basis. There are no team limits and issues change their status as soon as they are completed. The majority of the settings are the same as for the Scrum Board. The manager’s task is to update issues priority when needed.

The Kanban Board doesn’t involve a lot of planning and will go well for those issues that can’t be planned such as production bugs, users’ requests to the support service, background tasks.

6) Hot keys

Hot Keys are typical of any application. In JIRA they are ingeniously simple. These are my favorite:

  • GD – Will direct to the most recently opened dashboard;
  • GA – Will direct to the most recently opened Agile Board;
  • GI – Will direct to the Issue Navigator where you can search for various issues;
  • c – Will direct to the dialog box to create an issue;
  • e – Will open the Edit Issue dialog box;
  • a – Will open the Assign dialog box.

I hope these tips & tricks will be of help to you. Remember them tomorrow when you get down to work.

What JIRA features do you use regularly? Share them in the comments!

Ekaterina Bazyleva, a1qa Manager, Scrum Master and SAFe Agilist talks about JIRA tools that help to plan, manage and track agile projects completion.

JIRA tools that can help the team to be agile doing any job

“Job” in this context refers to any task: preparation of test documentation, running regression tests or arranging training in a remote center of excellence in the course of software testing outsourcing.

This article will mainly be useful to those who:

  • Manage multiple tasks on one or several projects;
  • Want to offer Scrum or Kanban implementation with JIRA to the customer but don’t clearly understand how it will work;
  • Already use JIRA Agile plugin or have a slight idea about it and want to go deeper.

Sounds like you? Then keep reading.

Every manager definitely has a Todo-list or lists with multiple work tasks. These tasks may belong to one project or to different projects. It’s not a rare case when the tasks are postponed and new ones are added. Managing these issues (I say “issue” here to move closer to the JIRA terminology) becomes a real headache. We regularly look through the list and promise ourselves to review it tomorrow or maybe next Monday. Familiar?

To be productive when solving the emerging tasks is one of the agile methodology principles. But don’t wait till your customer will ask to apply agile management methodology to complete the project. Take your current project and implement it using agile principles.

You’ll need to take five steps to become agile managing the project. They are the following.

STEP 1. Create and configure the agile board

Create a Board (Jira-Agile-Getting Started) to track the tasks (issues) completion.

This is the default view of the Agile Board:

Now let’s configure it according to our needs.

First let’s set up the columns. They will cover the issues lifecycle. You may choose any number of columns and name them as you wish. Preferably, the titles should map with the stages of the issues lifecycle (To Do, In Progress, Done).

You may also add different types of swimlanes to your board to categorize the issues. You may base the swimlanes on epics, assignee, queries or stories. The last option is especially comfortable if you work with sub-tasks. The swimlanes may also be based on your own filters or there may be no swimlanes at all.

Configure Quick Filters to (sorry the pun) quickly filter the issues appearing on the Agile Board. To add a new filter, enter its Name, JQL, and a Description.

Finally we’ll have to choose estimation to track work progress on the project. The most popular options are story points or original time estimates, which may be specified in minutes, hours, days or weeks.

STEP 2. Prioritize the issues in the backlog

After you’ve created the Agile Board you’ll get access to the easy-to-use Backlog interface.

  • Create Epics in every of your projects to cover the main types of activities, for example: processes optimization, test documentation upgrading, regression testing, etc.
  • Set deadlines for every issue.
  • The tasks from the todo-list will become user stories related to the main activities.

Now all your tasks are put in order in the Backlog. You can drag and drop issues to rank them, assign them and many more.

So now when the Agile Board and Backlog with all issues ranked are configured we go ahead to plan our first sprint.

STEP 3. Planning the sprint

A sprint is a short period (usually of two weeks) during which a team accomplishes the most important issues from the Backlog.

Let’s plan our first sprint.

  • Choose the sprint duration. Will it last for a week, two weeks or any other period of time?
  • Calculate the team’s capacity.

Capacity is the amount of issues that could and should be accomplished during the sprint. When calculating this number you should take into account the resources’ availability. Consider the fact that communication also takes time.

Example of the capacity calculation:

The team size is 2 full-time specialists.

The sprint duration is 2 weeks.

Total number of working hours is 160. You also know that one engineer will take training on web services testing (16-hour long). Communication will take about 20% of the working time.
Summing up, the capacity for sprint issues will be calculated as following: (160-16)*0,8=115,2 hours.

  • Based on the team capacity, we allocate the issues from the Backlog to the sprint.
  • Determine the sprint’s Start and End dates and press the Start button.

STEP 4. Completing the sprint

Now it’s time to accomplish the issues taken from the Backlog.

  • As the first step of our tutorial we’ve created the Agile Board. Now it will enable us to track issues completion.

You may assign an issue to an engineer when creating the issue. If your team is self-organized, its members may choose the issues they’d like to fulfill. As soon as a user put an issue In Progress, he or she becomes the issue’s assignee.

  • If you are used to regularly logging time and tracking the total remaining time, use the Burndown Chart. It will show your progress and the likelihood to achieving the sprint’s goal on time.

The grey “Guideline” shows the ideal course of the sprint. The vertical axis indicates issues and the horizontal – time. On the image below the red line is the scope of opened issues, while the green one is the total time spent.

Let’s analyze a couple of Burndown Charts.

This team is facing some problems: the volume of the accomplished issues is smaller than it was planned. If they don’t make a push in the last days of the sprint, they’ll fail to complete all the issues on time.

On the contrary, these guys are moving ahead of schedule and have to look for some extra issues if the trend preserves.

STEP 5. Ending the sprint, conducting retrospective

Agile is not about boards, stories and sprints only. It’s about process optimization and bottlenecks detecting.

That’s why after pressing the End Sprint button, you’ll have to spend time and figure out why something (if anything) went wrong.

Pay attention to the following:

  • When you complete a Sprint in JIRA Agile, you will be shown the Sprint Report. It will contain the list of issues that were planned for the sprint; those that were actually completed and were not.
  • Analyze the Burndown Chart to figure out the moment when your team broke a schedule. Learn the reasons.
  • If you chose major issues for Epics, for example “Run regression tests for the entire application at the minimal acceptance testing level”, the Report will show how much work is still to be done to accomplish this task.
  • You may also estimate the team’s Velocity.

Velocity is a measure of how much of the backlog can be done by the team during the sprint. It can be calculated in story points, hours, issue count, or any numeric field of your choice.

These are the five steps to complete our Agile-project. Let’s numerate them again:

  1. Create and configure the Agile Board.
  2. Organize all issues in the Backlog.
  3. Plan the Sprint.
  4. Complete the Sprint.
  5. Conduct retrospective.

To end up with I’d say that JIRA may look scaring at first sight and too complicated to deal with. However, it will take you only a couple of days to learn its settings and customize it to your needs. Time invested to configure the Board will save you days of efforts.

In the next post read about some tips and tricks that can make you work with JIRA more productive.

The year 2017 is just around the corner. We guess it’s high time to remember the most common QA requests in 2016. Based on them we give our recommendations to software testing vendors to run successful testing in 2017.

Embrace test automation as integral part of testing

Test automation is still the best way to speed time to market, quickly test changes and not delay deployment.

“Today we observe the booming growth of test automation as a trend. How does it manifest? Well, obviously, clients have become more aware of the automation goals and advantages. The number of automation service requests for projects with QA in place also grows up continuously.

For the last six months we’ve received a significant number of requests to automate testing of the desktop applications (mainly for Windows). They are still not as many as the web apps testing requests but the number is very close to it. The driving force is the emergence of high quality toolsets that enable to solve complicated issues that were hard to solve before.

Mobile apps test automation has also grown in demand and this trend will likely keep gaining speed.

Open-source project Docker is used more often to speed up deployment of test environment. Docker offers to scale automation of various activities related to the software development, deployment and testing.

And the last but not the least important factor for test automation popularity is the opportunity to provide complex high quality solutions without being limited to the sets of automated tests only.

Now we offer automated solutions that are integrated with testing and bug tracking systems and enable to analyze test results. Summing up, test automation is becoming an integral part to continuous testing.”  – says Sergey Hamzatov, a1qa Test Automation Engineer.

Develop new service lines

Alongside with traditional services, we do constant research and develop new services to meet specific QA demands, for example, Baseline Testing. It enables to evaluate the current quality level of any IT product and propose a roadmap to its increasing.

Another non-conventional service is QA consulting, which is rather popular among those customers who need to develop QA processes or improve current testing strategies not to outsource testing needs on a regular basis and manage distributed teams.

Instill out of the box thinking approach

More and more often we have to deal with assuring quality of various IoT developments. They require testers to become real users for some time and try the most unthinkable scenarios. What we recommend is to start thinking out of the box.

How can a professional manual tester who runs routine tests regularly become more creative? There are some useful pieces of advice that might be of help to any tester:

  • Find out what the software under test is not expected to be doing. Try those things out.
  • The ‘what if’ should become the leading question of the software research. So you are finding yourself in the middle of Apple Watch testing. How will it act if an iPhone it is paired to runs out of battery, etc.?
  • If you can do anything in the system (meaning it allows you to) do so without question and despite everything telling you shan’t do just that.
  • If possible, get the system (or device) under test out of your working premises and try it in real environment.

Get ready for testing Big Data applications

Large companies often ask for comprehensive strategies to test big data systems that are too big in scope to be processed in traditional ways. And here again test automation comes to help us. Automation is one of the best means that can be used for testing big data apps.

Give priority to security testing

Security has been and is probably the most important aspect of any IT strategy. Nowadays we are getting ready to handle increase in systematic testing of all applications (mobile, web, desktop).

The cost of mistake also increases as users now are less forgiving of broken security. To stop the vulnerability trend, users, mobiles apps developers and testers should join their efforts. Users shouldn’t share their personal data and have to become smarter downloaders; developers must ensure the 100% code security, while testing engineers should identify threats to the app and help develop countermeasures.

We hope that our recommendations will help to shape your future plans and start efficient and productive 2017.

The product quality often suffers on fixed-price projects. We have previously discussed potential challenges that you are likely to face when it comes to fixed-price projects. But still there are cases when both sides are satisfied with the result. This article describes the ways to make both sides benefit from the fixed-price project.

How to make both sides benefit from the project

Nevertheless, there are conditions when the product can be tested appropriately and bring a profit for clients and contractors.

QA has pretty simple conditions of accomplishing tests – testers should solve the tasks they received and not go beyond the budget limits. In its turn, the product they test should be stable without fails, once they did their job.

What do you need to fulfill tasks? The basic thing is discipline and constant budget control, the team smooth growth by the end of the project enough for the last stage.

From the testing team perspective, the project can be started if you have following conditions:

  • The start of the project is approved by all sides.
  • Testing network is adjusted and everyone has authority for access.
  • All data required for testing is ready.
  • The newest version of software is received.

If you have successfully started, you can move to management. To avoid failing on this stage, you have to follow a simple rule: control the budget and make sure everyone is meeting deadlines.

Managing business processes should be synchronized with software testing. If it doesn’t happen, planning responsibilities should be given to the development team. It’s not that easy, but there are some examples of how the development team did good managing.

Control and requirements management should be completed by business analytics, although quite often they can’t get the same pace as development team and fall behind. Requirements should be always updated, while their changes should also be approved by the development team.

Risk control is a science, but many project managers ignore it. There is a risk to have the time for testing cut because of the development stage that takes longer than expected.

Labor costs should be evaluated before any integration is started. If you fragment all work and check all points before each integration stage, you’ll have a better idea whether you have any problems with budget. At the same time, you’ll have testing strategy being updated in action.

What are the conditions of the fixed-price project success from the development point of view?

This model fits the development team if:

  • The release time is the key factor of development.
  • All technical requirements cannot be accomplished by the beginning of development.
  • The project assumes development of a complex application with multiplex functioning.
  • The project is short (less than 1 month).
  • There is a confidence that specifications won’t be changed.
  • It’s easy to manage the budget and cash-flow, when any sum of money could be provided.

As the client supposes, strict deadlines and requirements would stimulate the team to work better. Another reason to finish the contract on time is the fact of signing the contract and an interest in being paid.

Even though the fixed price projects are not considered to be the best idea in comparison with other types of projects, there are always conditions to make both sides win.

A fixed-price project is a stumbling block between clients and contractors. While clients always strive to secure themselves and not to overpay, contractors are stressed with fear of failing such projects.  This article highlights advantages and disadvantages of the fixed-price projects on the example of quality assurance.

As in any business, those who apply for QA consulting always want to get the lowest price for the best quality. However, fixed-price projects are not considered to be the best choice for the testing team.

Imagine that you need to estimate the time you spend on breakfast. 10-15 minutes? Good! And if you’d like to drink another cup of coffee? A couple of minutes more. And if you don’t have coffee? Five minutes less. The same thing happens when you try to estimate software testing. There is an average amount of time for each type of testing, but you never know whether something unusual could happen. As a rule, it always does.

What the client thinks

Let’s analyze the situation from clients’ point of view. They assume that they’ll save a good amount of money if they can have a fixed-price project. Since the price is negotiated in advance, it will be easier for them to manage the budget. Moreover, the testing team will be concentrated on accomplishing their tasks on time, so they will not waste money on unnecessary things.

In this case, as the client supposes, the testing team is the one to take all risks. Budget overspending, downtime, other problems – this is what the testing team should concern. The contractor is not interested in spinning out and losing out. Therefore, the client thinks that testers would adhere to implementation period.

In addition, if the client is not acknowledged with IT sphere and doesn’t understand how software developing and testing is operated, they don’t realize whether the task is clear enough to be fulfilled during the necessary time. Quite often clients put testers in strict conditions to be sure they don’t overpay and no one cheats them.

What the client should know

Knowing how unpredictable testing is, clients should be ready to get their project overvalued, since QA team does not take responsibility for all risks free of charge. If the development team has unclear requirements, they realize how expensive reworking could be and they include possible loses in the project price.

If clients are not competent in testing, they are in danger of having their business requirements unfulfilled, although all obligations according to the contract are met. For example, functional tests have been done, but performance testing has been ignored. Thus, the client might receive the software that corresponds to all functional requirements, but can’t be used because of its slowness.

Testing team can miss the set deadline for a variety of reasons. For instance, you have to gather the team again after a long break. If you can’t engage the specialists, who had worked on the project earlier, you are going to spend some time to get newcomers introduced to the project.

Fixed-price model doesn’t allow keeping a separate team for the project, because very often testers are involved in several projects at a time. If there are dedicated team or time & material projects, they are considered to have a higher priority while fixed-price projects are treated as secondary ones.

Why you are most likely to lose

Because of such projects’ complexity, usually just one side wins when the project is completed. For example, the win-lose case happens when the client is able to make the team carry out all conditions they agreed about, even if the testing team had some obstacles and can’t make it in time. Then the testing team loses.

The lose-win case is about accomplishing client’s functional requirements in time, but missing the business purposes of the product. The team reports they have done all tasks, but the software is not mature enough to be released. Hence, they offer extra services for extra money to be done. Now clients lose money. They have calculated investments and hope to have success on the market, but realize they need to increase the budget. The project doesn’t look as attractive, as it has been before.

Anyway, fixed-price project can turn in collapse for both sides. The lose-lose situation happens in those rare cases, when the testing team fails by the end of the project, refusing either to continue or to rework, since they find the project unprofitable. The client also loses both money and time.

How to make the both sides benefit from the project? Learn some tips to reach a win-win situation in the second part of the article.

The article by Nadia Knysh was published on RCR Wireless News. 

The park of mobile devices is at the core of the whole application testing process. If configured correctly, it provides the best coverage of the target audience.

Analyzing trends to strengthen the app development process

Usually, the park of mobile devices includes popular gadgets operating on the latest mobile OS versions. It is the consultant who analyzes the trends, popularity and usage statistics in the target region to configure the park.

First of all, the consultant draws attention to these:

  • Popularity of mobile platforms
  • Testing focus on popular OS versions
  • Announcement of new devices and analysis of their potential popularity
  • Popularity analysis of the current devices
  • Specific analysis of new OS versions and devices

The main point of analyzing these trends is that the earlier the development team knows about the novelties, the better the app will be. Close cooperation between the consultant and development team allows for providing the first users with an application of the highest quality.

Conclusion

In a nutshell, mobile testing consultants are becoming essential to the app development team. Even though some may doubt this – given a consultant is being brought in from outside and thus less familiar with the project – there are more pros than cons when bringing in an independent testing consultant.

First of all, the viewpoint and decisions a consultant makes are not discussed, because it is agreed upon throughout the team that the consultant is being brought on as the expert in mobile testing and has the most experience of those involved in this area. Second, the consultant serves as a kind of walking reference book or a synchronization point, if you like. The consultant shares the knowledge, which is important for successful app development and testing. Third, as a person from outside the project, the consultant is objective – the set of fresh eyes that every team needs. Finally, oftentimes, engaging the mobile testing consultant actually accelerates the release of the application.

Read the first part here.

The article by Nadia Knysh was published on RCR Wireless News. You can read the full story here

Launching a new application in the market is always a risky business. The app should respond to user needs, and be innovative and easy to use. Still, through the development and testing processes, engineers often tackle issues that are beyond their expertise. Seeking a beneficial solution, software development companies often decide to engage independent testing consultants on projects.

Today, this trend is exceptionally popular. Independent specialists can take a fresh and unbiased look at the testing processes and improve the entire approach. More importantly, they can and should cover a certain scope of specific testing duties that are unfamiliar to the testing team.

My story of an independent testing specialist started with the role of a mobile testing consultant on a telecom project. I had been working a lot on mobile testing projects, so when a client addressed our company with a request for consulting services, I happened to be the right person to contact.

Our client – a mobile operator – applied an OSS/BSS as a standard system for delivery of telecom services. However, the more easily and quickly users can interact with the services’ provider, the higher their loyalty level and the bigger the target audience. To help accomplish that, the company decided to develop a mobile app.

While OSS/BSS and Web application testing was definitely the development team’s cup of tea, mobile testing was something out of their usual realm. To overcome this pitfall and get moving, a project manager decided to involve an independent specialist – a decision that ended up saving the project. The independent consultant was expected to correct the testing strategy and play the role of “he-knows-everything-about-that” for the team.

The role of the independent mobile testing consultant

It is not a secret that telecom projects are always quite comprehensive. They possess complex business logic and architecture; thus, if the team has shallow knowledge about the system, testing will not succeed. However, for effective management of activities, the consultant does not need to plunge deep into all of the business logic details, which helps to quickly hit the ground.

Still, the consultant cannot forget about those components of the architecture that are integrated with the mobile client. Nothing must be missed. Each and every detail of these components should be thoroughly investigated starting with the structure of databases and ending with communication protocols.

I cannot say that my duties on the project were huge and incomprehensive, mainly because the team had an opportunity to test the administration module independently from the functionality of the mobile client. Still, there was no time to lounge.

But let me give you a better description of what exactly was expected of me. Besides playing the part of the one-to-be-obeyed, I was responsible for delivery of the high-quality application to the users. Meaning I needed to understand and analyze the mobile client’s functions, architecture, specifics, incoming/outgoing calls and messages transferred from the mobile client to the administration module forwards and backwards.

Along with that, I was entitled to develop a number of test scenarios. While the team was in charge of functional scripts, my responsibility lay on those aimed at testing the app on various mobile devices. A bit of team management was also in my hands – tracking the process, working out specific tests, defining the priority of tasks and the team’s efforts, etc.

The process of data transfer between the mobile client and the administration module was one of the most difficult parts of the project. Any of the outside factors, like different mobile networks, level of signal reception, or a switch between modes, could bring damage to the app, and consequently, to the potential clients. Thus, I tried to consider all of these factors and include them in the test cases.

As I was the only one who possessed the unique knowledge about mobile testing, I selected the necessary test utilities and wrote guides that described testing steps along with tools in detail.

Read the second part here.

Software is increasingly becoming an integral part of modern telecom equipment, which has put a greater emphasis on companies finding qualified employees to keep up with this growing demand. Software is increasingly becoming an integral part of modern telecom equipment, which has put a greater emphasis on companies finding qualified employees to keep up with this growing demand.

RCR Wireless News: Can you provide an overview of a1qa’s current workforce?

Svetlana Pravdina(SP): Since its inception back in 2002, year after year a1qa has been experiencing rapid growth. For example, in 2011 we grew by almost 182%. Currently, a1qa has around 450 full-time QA engineers. They are spread around our global locations in Austin, Texas (headquarters); in several representative offices across the U.S. (Connecticut, Massachusetts, etc.); and in Europe, the Middle East and Africa.

RCR Wireless News (RCRWN): Can you provide some details into what a typical day is like for an a1qa employee?

SP: We realize that a flexible schedule increases labor effectiveness and helps to respond more effectively to our customers’ needs. Thus, for a long time, we’ve been following the approach where our engineers are free to work any time they feel most productive, as long as they consider our clients’ timetables. They have no strict schedules unless communication with clients requires them to be in the work place during certain hours. All working processes are organized in a way to allow every person do their best job. Everyone from interns to top management have their own schedules.

Nevertheless, the daily routine is pretty much the same: getting assignments from project managers; performing manual or automated bug tracking; communicating within a team; writing bug reports; and reading professional websites to ensure they are up-to-date on the latest happenings within the industry.Manual testers and “automators” have almost identical conditions in their working day organization. The only difference “automators” might have is that they are usually not assigned to do several projects at a time.

RCRWN: How important are employee-training programs for a1qa?

SP: a1qa considers employee-training programs to be extremely important. The way we see it, an employee cannot achieve optimal professional growth without the proper support from the company. Therefore, we’ve decided to support this view in quite a fundamental way by establishing seven “Centers of Competence” within our company – covering proficiencies and competencies in the testing of mobile, integration, security, usability, test automation, etc. Each Center of Competence manages its own timetable of events, providing seminars, workshops, roundtables and master classes. Each a1qa employee can join any event to extend their own testing skill set and obtain deeper knowledge. Launching those centers was definitely a challenge for us, and it is also a challenge to keep them functioning on a proper level. However, the positive feedback we receive from our employees makes it worth the effort.

RCRWN: What issues have been the most difficult for a1qa to deal with in terms of attracting/keeping employees?

SP: During the last decade, we all witnessed a growing demand in qualified QA engineers and testers. Still, software testing and QA is not a part of an academic education (B.Sc in SQA sounds good, right?). The point here is that at certain point we found ourselves in a closed loop of hunting for testers that basically got us nowhere. That’s when the idea of establishing our proprietary QA Academy was born. The main goal of the academy was to ensure a constant inflow of QA specialists to a1qa – and, of course, to contribute to the SQA industry in general. Two years ago, our QA Academy opened its doors for the first students, offering a variety of courses in domain-specific testing, software test methodologies, agile testing, security testing, mobile testing, tools and instruments, communication and teamwork, SQA in distributed environment, metrics, personal efficiency and more. Now we select the top graduates of the QA Academy, offering them a three-month internship with a1qa. This helps to recruit new employees who already have at least basic QA and testing knowledge. Besides the QA Academy, we also offer generous benefits, such as gyms and pools, family support, medical insurance, business trips and a chance to make a good career within the company. But still, the company is not protected from losing good specialists. If someone is intending to leave, potential losses are estimated, and if the specialist is really valuable to the company, we do our best to address their retaining requirement.

RCRWN: What workforce positions has a1qa found the most difficult to fill?

SP: Our QA Academy was established to ensure company growth and to fill vacancies. While general QA engineers are taught there, automated testing always needs “special” engineers, able to both test and code. This is the rarest type of tester you can expect to easily find on the market. In the past, the company experienced a lack of those specialists. As the company grew, it started developing automators in each department itself. For that reason, the company established internal courses on automated testing, which now provides us with the automators we need.

RCRWN: What impact has the rise in telecommunication operators looking toward software solutions had at a1qa?

SP: We have witnessed this trend for many years, and indeed the rise has been significant. Like many other businesses, we have been keeping an eye on the telco market situation. Anticipating the industry growth and everything it implies, we started building up our own telecom testing team, signing our first telco-testing contract with European telecom operator EMT back in 2005. Our telecom team has grown to be the biggest department within a1qa; it consists of about a quarter of all our engineers. After offering testing for the telecom industry for nine years, our service portfolio in this domain has expanded. Now, in addition to pure testing in this domain, we offer consulting, assistance in building effective QA department for telcos, professional training and more.

RCRWN: It looks like a1qa has a rigorous hiring policy? Can you explain the reasoning behind the process and the importance of that process for the company?

SP: We care a lot about the image we’ve been building for the last 12 years. One of the main values of a1qa is to put quality of services above all else. So yes, we focus a lot of attention on the kind of specialists we hire. Regardless of where the potential employee came from – from another company or from our QA Academy – they still have to go through our six-stage selection process in order to become an a1qa employee. Even if the company lacks some specialists, we never fill vacancies with random people. Quality of service always begins with the quality of people delivering that service.

The interview was published on RCR Wireless News.

An expert in Software Quality Assurance at the software testing company a1qa, Dmitry Tishchenko discusses a comprehensive decision-making process to use when selecting a third party service provider.

Responsible for key performance indicator optimisation and business process automation at software testing specialist a1qa, striving to make informed decisions that mitigate the risks of failure and unexpected results is a part of my everyday routine. Thus, I analyzed each case when our company is or isn’t selected as a partner in quality assurance consulting, and have observed first-hand a pattern for successful decision making that some of our prospective and existing clients have used while going through the process of selection.

And the fact is that this approach could be applied by any IT-related business, and be of assistance to Chief Information Officers across many industries, when faced with the need to choose a third-party IT vendor. Moreover, I have witnessed, when these steps are followed throughout the decision-making process, just how good the results of collaboration with a vendor can be.

Is the price right?

The first question you need to ask when evaluating a potential vendor is whether the price you are required to pay is equal the value you will get; quite simply, what is the return on investment (ROI)?

At this point in the process, it isn’t necessary to go too deeply into details such as technical expertise, product management capabilities, and so on. Assuming the question of price vs value is resolved positively, this comes later. If not, you have already saved a great deal of time and effort.

To answer the question of ROI, you need a clear understanding of what value you want to gain – for example, faster time-to-market, maintenance of business continuity, mitigating the risks of your product/service underperforming, optimisation of your IT budget, and so on.

Preferred models

If the ratio of price vs value is negative, you should move on to evaluating the next vendor in your shortlist. Assuming the vendor has been able to demonstrate the capability to deliver the value you are seeking at a price you are willing to pay however, the next step is to tell the potential vendor your preferred pricing model – eg fixed price, time and materials, or contract; and collaboration model – eg dedicated team, or hybrid (on-off-site mix). The majority of third-party vendors offer a full spectrum of collaboration and pricing models, so this step should be relatively easy and fast to complete.

Middleware

The next stage is to drill down to the ‘middleware’, ie investigating how this vendor can deliver the value you are expecting. What level of skill and expertise do they have in your domain? Are they knowledgeable about your industry vertical and business processes? Talk to the vendor’s technical experts, to ensure the service they offer can realistically cover the existing gaps. In so doing, you will finalise your evaluation of the vendor’s communication abilities and mean response time, their commitment to deadlines, and scope of presented information.

Should the vendor successfully pass all these stages, it is time to research their maturity. How long have they been in the industry? What position do they hold in your industry niche?

When talking about bugs and defects detecting, the two most common problems are:

First, when you read the bug description and can’t understand what it means. These unclear defect reports can come from users, customers and beta testers, saying things like, “I pushed the button and everything collapsed.”

Second, how do you handle it when the real challenge is not in fixing the bug, but in “decoding” the report about it?

I have provided some step-by-step instructions below that can help any automated testing company in such situations.

Write your own algorithm

First of all, let’s think about the nature of all those defects with indistinct descriptions. Why does everyone write bug reports in his own way? Well, there are many reasons – the most common being “underqualifying” or “overqualifying.” On the one hand, it could be a tester who is new to the field and didn’t describe the bug correctly. On the other hand, a tester could be so experienced that he treated the bug as an unimportant one. You could also have meticulous developers and project managers reporting bugs.

In all of these cases, bug reports are written inaccurately in one way or another. The best solution, therefore, is to create clear regulations for dealing with bugs – a detailed algorithm on how to describe and fix bugs. Any form for that algorithm could be chosen; most importantly, it should include the three following points:

  1. A list of attributes that must be filled (in other words, which graph and how should the graph be filled);
  2. A description of the defect life cycle, accepted by all project members;
  3. A list of parameters and samples for every stage of the life cycle, if possible.

Do not be afraid to spend a couple of hours on this writing detailed regulations step, since it will save you time in the future. Also, if you have well-structured regulations approved by your team, you can always refer to them when you find yourself in the middle of a controversial situation that requires a fast decision.

However, it is not enough to just write the regulations. The second step is to persuade every team member to follow the regulations you developed. To achieve that, you should develop an agreement with everyone involved to move all bugs that do not match your regulations to the “better definition required” status. Since the automation of that stage is impossible, the project manager is the one who will ultimately be the judge on all controversial defects.

Automate bug registration

Once your team agrees to follow the bug reporting regulations you have defined, it doesn’t mean all bugs will be reported automatically. We can’t forget about the bug reports from customers and users, as well as from beta testers, none of whom are part of the team that has agreed to the regulations. While you are not going to teach them how to report on bugs, you can create an algorithm for reporting. How, you ask? Consider the creation of a reporting form that excludes loose descriptions. Also, every field should have as many preinstalled parameters as possible, describing possible problems.

Another approach is to automate bug reports. Let’s say a user has a button he can push to report the bug he found (configuration parameters, logs, screenshot or even a video showing last activities of the user). A good example of this type of bug reporting function was used by Microsoft – useful when they released the first versions of Office and Windows.

Quite often, users don’t even need to push a button. Android and Apple apps offer to send a bug report to developers once it has collapsed. Even more, platforms like Ubertesters allow users to test apps themselves, which helps developers and testers to automate the bug reporting process.

Nevertheless, you should be really sensitive when thinking of installing the bug-report button, because it has the potential to scare users. Imagine when a user installs an app and sees that button. He may be under the impression he has installed a bugged product. Also, you must keep in mind limitations on a user’s confidential information, such as direct reporting from his own device.

In prior posts, I have discussed test models as a package of test scenarios. Each scenario has specific requirements. The development of software for the telecommunications industry deals with large systems like OSS/BSS, and requirements creation is the initial phase of the project.

This phase is critical, as requirements errors can result in wasted time and increased cost. Analysis shows that the later readjustment phase can consume 30 to 40 percent of the total effort expended on a software development project.

Researchers have even indicated that about 50 percent of the bugs can be caused by requirements errors; thus, requirements errors may lead to between 70 to 85 percent of all project readjustment costs.

As you can see in Figure 1, the correction of requirements defects can cost up to 110 times more if found in operation than it would if the same defect had been discovered during the requirements definition phase.

Figure 1. Requirements cost to correct a requirement defect depending on when it is discovered. Source: M.P.Singh and Rajnish Vyas

We as QA consultants advise that two main parts of the requirements creation phase should be separated – into requirements development and requirements management.

Figure 2. Difference between requirements development and requirement management.

The requirements development phase aims to collect information, make analysis, review and approve requirement. As a rule, it results in documents package creation. These are documents about image and product borders, software requirement specifications, data vocabulary and a corresponding analysis model.

The review and approval of this package defines the base requirements version (i.e. the agreement between developers and customers). The requirements management stage includes all actions supporting integrity, accuracy and timeliness of renovation of the agreement on requirements during the project.

Management of requirements includes:

  • Management of changes for the base version of requirements;
  • Maintenance of project plans actuality according to changing requirements;
  • Management of versions of separate requirements and the documentation of requirements;
  • Control of a condition of requirements in the base version; and
  • Management of logic connections between separate requirements and other materials with the project.

The best practices and characteristics for requirements management are as follows:

  • Completeness – Each requirement should completely describe the functionality that will be implemented in the software. In other words, it should contain all information necessary for developers to create the fragment of functionality.
  • Correctness – Each requirement should describe the desirable functionality precisely. Connections (links) with sources of requirements is necessary for correctness.
  • Practicability – Possibility to implement each requirement under certain conditions and restrictions imposed by the system and operating environment. Here it is needed to provide interaction of developers with experts in marketing and analysts the ability for extraction of all requirements.
  • Necessity – Each requirement should reflect what is really necessary for users or necessary to meet external system requirements or standards.
  • Setting of priorities – Setting of priorities is necessary to cope effectively with budget reduction, infringement of terms, loss of personnel, or the addition of new requirements in the course of development.
  • Clarity – All readers of requirements should interpret them the same. All special and potentially confusing terms should be provided in a glossary.
  • Verifiability – Requirement management helps to identify the incomplete, not agreed upon, impracticable or ambiguous requirements.

IT management needs to first have a solid understanding of budgeting concepts to effectively use the IT budget as a management tool. Then, they must focus on business needs and how the IT organization can address these needs through the use of IT. Finally, IT management should communicate the approved IT budget to all stakeholders to share the information about available resources throughout the organization.

Two IT budget allocation strategies

  1. IT budget is formed as a percentage of revenue or on the basis of costs per employee; in this case, IT budget usually ranges from 2% to 4% of total income.
  2. IT budget is formed on the basis of the RGT (Run, Grow, Transform) model. This means the whole IT budget is split into three parts depending on the project development stage of run, grow, or transform. The model has drawbacks, but its advantages outweigh the disadvantages when it comes to IT budget planning.

According to industry analyst firm Gartner, companies spend up to 66% of their IT budgets for project launch initiatives (i.e., on what needs to be done to implement new IT systems). The remaining funds are split 50/50 between maintenance and new research and development (R&D).

This means most companies can allocate only 17% percent of their budgets for R&D needs. When you consider that companies typically generate 70% of company income as a result of R&D efforts, you can see a clear imbalance.

Dynamic market conditions, changing technologies, and continuous improvement require more IT financial transparency than ever.

Demand-side drivers of higher IT spending as a percentage of revenue include:

  • Highly integrated IT components in the product suite
  • Higher service levels for mission-critical systems
  • Higher usage of knowledge workers
  • Decentralized IT environment.

IT management is constantly under pressure to understand how to free funds from an already allocated budget. They are reallocating resources within the budget through traditional process automation, cost optimization, service management, and externalization.

Therefore, the question becomes: How can we increase the share of R&D in the IT budget of a company without changing the desired value of deductions from the IT budget – thereby achieving the highest efficiency of R&D and increasing the company’s income? The answer lies in increased attention to the quality of IT projects at and before their launch. Incorporating testing and requirements analysis early on will help to reduce unnecessary spending, allowing companies to use funds for other important projects.

The article was published at NetworkComputing, you can also read it here.

Have you ever found yourself in a multi-tasking environment dealing with a range of small IT projects at the same time? Chances are, yes. If that is the case, keep reading, as it is my goal with this article to provide recommendations that will help better set priorities, allocate tasks and balance the workload among the participants, using the example of small-scale projects in software testing.

Most people think that working with small projects in QA is quite simple, because they are short-term, small and do not require too much effort. But they are quite mistaken. Imagine 15 small QA projects “in the task list” for one tester in one month. You might say 15 different tasks can be “stacked” within one large project, nothing unusual. But let’s have a look from another angle.

Each of those projects is headed by a project manager, which means you have to deal with 15 PMs monthly and about 45 software developers, each of whom has various questions, desires, plans and personal interests. This is when managing the workload and still managing to be effective can become challenging.

And it’s no wonder when each of the 15 PMs requires his/her project to be tested as soon as possible; many may say they “want it done yesterday.” In order to control the flow of spontaneous desires PMs express, and have a clear plan, you need to use a Query Forecast for the near future. This instrument is considered to be indispensable in these types of circumstances.

You can “shape” it with any convenient form (MS Outlook, Jira, or any other tool that allows you to obtain systematic information). What is most important is that you not waste your time questioning each of the PMs, and make it clear to the development team that they must provide planning info up front.

Once a plan is in place, PMs tend to get “on fire,” and they all want to test the projects the same day; no one is willing to concede. This is when the “live line” principle is applicable – the team that sent info earlier and chose a free day captures the tester’s attention. This encourages project managers to not postpone things until the last minute and promptly respond to such requests.

The “live line” principle certainly has value when it comes to improving proper management; however, some other circumstances should be considered. Some urgent projects may have a release date right around the corner. Quite naturally, such projects should come in line before less immediate ones. Builds are also different in size. One may need four hours of testing, while another may need 32. There is no need to make a small build wait a week. Sometimes plans change; imagine the build, planned for instance, from Monday to Wednesday, has been canceled. Accordingly, with these three days freed, we can admit another project (the “free cash” principle).

When a project manager is a former developer himself (which occurs often) and burning with desire to check bugs just after fixing, he may focus on one bug when handing it off to the tester while not mentioning 50 other existing bugs, which is unfair to the tester. In order to prevent a nervous breakdown for yourself, be clear with the PM that the build will be accepted for testing only when all active defects have been corrected.

Incorporating “risk” time into the testing timeframe you promise to the PM is generally acceptable. If you end up completing the project ahead of the estimated time, of course, the PM will likely be grateful.
Regarding timeframes, another consideration is that developers are rarely punctual in providing builds for testing. For example, you were promised to get one at 9 a.m. The developer arrives at the workplace at 10 a.m. and says the build will be ready in a half hour. Midday arrives, and you are informed that the developer is already in the process of writing the notification, but in the evening, the developer says something went wrong and the scope of work will be provided the next day.

Now we have two problems. The first is that you already have another project planned for tomorrow, and the second is that you ended up with no workload during the day. The solutions to these two problems are flexibility of staff planning and a “pool of tasks.” Thus, employees are able to solve the problem by taking the task out of a pool, or offering assistance to an overloaded colleague.

Testers usually deal with projects containing two hard limits: overall timeframe and time spent for a particular project during each day. For such projects, you always need a pre-planned strategy, and the approach of “we’ll see how it goes” does not work. So, set a time limit – for example, a half hour on research and an hour to create test documentation.

Another situation that could arise is when a lot of different testing combinations are needed. For example, a webpage or an application form of any kind may have five drop-down lists, each containing 50 unique values. To check all the unique combinations, you need a lot of time, which is not always acceptable for small projects. In such cases, the test matrices are applied in order to check optimum combinations for a limited time.

In conclusion, one should say that working with a large amount of “small” projects is not so simple. The advice presented in this article could be useful while managing several small IT projects as well as bigger one with many tasks. You will find you have a significant advantage if you learn how to incorporate the aforementioned techniques.

Nowadays outsourcing in testing industry has become a tendency and it gets more popular due to a great number of freelance testers. Still, what advantages have software testing companies over the freelance testers? And is it beneficial to cooperate with freelancers?

The main factors that cause outsourcing:

  • Lack of infrastructure;
  • Poor in-house team testing knowledge and experience;
  • Few testing specialists in staff;
  • Cost cutting.

Outsourcing of testing services to QA companies provides certain benefits; among those:

  • Risk mitigation. Applying to a software testing company customers sign a contract, discuss the requirements, deadlines, responsibilities and budget frames. The approach allows avoiding losses and provides risk mitigating solutions.
  • Financial guarantees. When signing a contract companies state the penalties for both sides in case of agreement violation. As a result, both are interested in agreement compliance. Depending upon the project type the contract can include some additional financial guarantees like compensation of lost profits, free task performance in case of low quality, etc.
  • Competitive selection. Looking for a freelancer is usually held on specialized web sites where included ratings, reviews, online quests, everything to choose the one you need; while looking for a QA vendor is a completely different procedure. First of all, the proposal is put out to tender. Considering various QA companies you get the company rates and the projects` schedule, which gives client an opportunity of choosing an appropriate company and project analysis before the start.
  • Experience. The QA companies have extended testing experience, you can check it looking through the company ratings, client`s testimonials, case studies all these is quite valuable information for making a choice.
  • Qualification. Often they say that it is more beneficial to hire freelancers as the client has a chance to talk to them personally and see the resume. Still, the practice is widely applied in QA outsourcing companies. If a client wants to talk to team members or choose the team basing on their CVs, qualification and work experience, no one would say “NO” as it is OK.
  • Dedicated team. Development of complex systems that include a number of solutions, integrations, large scope of tasks and performance of different test demands for a well-coordinated dedicated team, which freelancers cannot provide, at least because they work remotely in different cities or even countries. Avoiding the risks in such cases companies prefer cooperating with QA outsourcing companies that offer dedicated team and testing services on a high professional level. This scheme is often applied Telecom companies.

Still, hiring a freelancer also makes sense:

  1. Cooperation with freelancers is beneficial for small companies: it saves costs.
  2. When the project is small and not complicated, there is no need in big project team. In fact, startups are the projects that are often outsourced to freelancers.
  3. Often tasks that are non-typical for the main business activity are outsourced to freelancers. Though, it actually depends on task complexity, solution scope and team`s size.
  4. The way of hiring freelancers and company`s staff is different. Hiring a freelancer gives more opportunities for search and they need less time for adaptation.
  5. When the testing service is needed on one/two projects stages or from time to time, it is more reasonable to hire a freelancer than a QA vendor.

Apart, from these all there is a peculiarity of cooperation with governmental companies. Usually, governmental projects demand for standards and development of specific documentation. Budget of these projects is fixed, which means the contract terms should be strictly followed.

One of the most important parts of these projects is verification product quality criteria. Freelancers cannot perform that. Thus the companies put the contract out to tender to find qualified software testing companies that can provide high quality of product in fixed timeframes and budget.

On the whole, when choosing between a QA company and freelancers, you should understand what kind of team you need. The bigger the team the more reasons to cooperate with a QA company. Hiring freelancers is more beneficial for small IT companies, which allows them to cut costs and increase competition with big companies (100-1000 employees) on the market.

Still, large IT companies prefer cooperating with independent software testing companies on long-term conditions to launch ambitious projects.

As testing is a critical part of any software development project, it’s essential to think about it upfront as soon as you start out. At the early stage of roadmap planning, you should be asking yourself: how are you going to test the software?  Basically, there are only two options: you can test everything in-house, or turn to a specialized software testing company, that is, to choose QA outsourcing over in-house testing.

The first option, in-house testing, can be your choice if you want to keep all the teams and their activities under one roof. However, this approach can be prone to such risks as financial unsustainability, workforce qualification shortages, and project delays due to understaffing. That being said, if you’re up to having a fully staffed team of testing professionals with near-zero onboarding efforts required, the testing-as-a-service (TaaS) model can be well just for you.

Why go for TaaS

TaaS is an outsourcing model that describes the process of delegating every testing responsibility to a third-party vendor. Sometimes, TaaS can be bundled with the actual software development activities all carried out by the same provider, but not necessarily.

As a model of IT services delivery, TaaS is extremely flexible. It can either feature the entire pack of testing activities (all through performance to integration testing, manual and/or automated) or include just one type of testing required for this precise project. Either way, TaaS is the way to set up quality assurance control through the entire product lifecycle.

Such quality assurance is possible due to TaaS providers’ distinctive expertise in the testing domain. Third-party QA teams are equipped with the unique knowledge they generated in other, quite diverse projects, latest tools, associated software licenses, and devices that are instrumental to high-quality testing. To get all of this together in-house and train a proprietary testing team on an ongoing basis seems practically impossible, especially if you are there only to release an app or two.

What’s more, cooperating with an independent testing provider allows focusing on your main line of business without wasting time on supporting tasks like installation of hardware, tools, and a testing environment. Along with that, delegating software testing to a testing vendor cuts your expenditures on hardware and electricity, which otherwise can add up a substantial chunk to your project budget. The TaaS approach also mitigates financial risks (as there are no delays caused by team understaffing) and relieves the in-house team of a significant extra workload.

Another obvious advantage of TaaS is that it saves time and helps to deliver the product faster. It’s often the case that a primary development company and a testing vendor are located in different countries and timezones. In this scenario, new builds can be deployed faster as they are tested during the developers’ off-the-work hours so that the software development cycle can really turn 24/7.

Moreover, QA outsourcing is the ideal way to get an unbiased audit of your software. In most cases, the independent testing team starts with reviewing the code and coming up with recommendations for improvements, which are only further deepened by the actual testing practices. This way, the development and testing teams get to cooperate from day one.

Summing it all up, we can surely vote for TaaS. Being independent, not prejudiced, qualified, and time-saving, TaaS is a sure-fire way to control the quality of your software and retain it throughout the product lifecycle.

Setting up a test framework is no easy task when it comes to choosing the right approach. In the article below, we discuss the object-based design as the one helping to cut required resources and time.

Object-based design, or object-oriented design, is called for to validate object-based code, which includes testing of requirements, software design, code itself, and integration. This approach helps not only to create a simple-to-understand and easy-to-use hierarchical structure, but also assists in development of more flexible systems. Object-based design typically helps to get a higher level of abstraction that could increase understanding of the complexity and costs.

In addition to that, it significantly decreases the time of test development and support. So, in some way this could work, but how to cut both time and money spent? To explain this, we should mention other approaches widely adopted in QA outsourcing – the one based on behavior and the other based on keywords.

In the behavior-driven approach, testing is carried out based on how the system behaves, and together with other approaches to designing test frameworks, can give a more comprehensive overview of how system objects interact with each other and whether they meet user expectations. In the keyword-driven approach, testers simulate user actions too, but all of their activities revolve around certain keywords such as ‘closing a window’, ‘clicking the contact button’ and the like.

Object-oriented design can be opposed to behavior–based (or keyword-based) design, although it wouldn`t be correct. Just like with the behavior- and keyword-driven designs, you can use object-based design along with almost any other approach to test design too, for example, unit testing. For those testing professionals combining a few approaches, it could possible to get rid of negative effects thanks to the basic structure resulting from the application of object-based design, and the simplicity of keyword-driven testing.

Also, object-based design is in some way based on hierarchical patterns. Your test framework should use the class hierarchy to maximize the test coverage and to re-use tests or even test suites in subclasses. This approach is also the key to testing abstract classes. The hierarchical testing is based on the substitution principle, which means that an instance of a subclass can be used anywhere as an instance of its super-class. This is generally considered to be one of the main rules of object-oriented programming, so using this in a test framework can even encourage better object-oriented design.

One important notion to keep in mind is that the object-based approach isn’t always applicable. For example, if the tested system cannot be split apart into simpler objects and is purely functional, it’s better to consider another test design, as it is likely to serve better.

We’ll keep covering various testing methodologies, in particular, keyword-driven testing along with its advantages and drawbacks, so stay tuned.

The article is prepared by Yan Gabis

In the age of high technologies successful operation of business domains seems impossible without innovative solutions and quality of domain-specific software. Creating domain-tailored OS is crucial for setting up and serving the workflow in the industries with large IT share, like Banking, Telecom, and development of fixed software products.

Since the software is either the critical instrument or the product forming business relationship in the domains, quality assurance occupies a really important role. Moreover, when held by experienced engineers, QA presents most efficient results.

Every complex project executed in the specific domain is peculiar by company`s business logic, environment and architecture, which obviously makes it sensible to involve experienced engineers. The more similar projects the engaged engineers have executed the better understanding of the domain they have. Along with knowledge and professionalism, well-versed specialists guarantee workflow velocity, saving 20% of QA budget means.

Having executed multiple projects and being involved in independent software testing for more than 10 years, we have noticed that participation of qualified engineers on the project cuts budget expenses on the stages of:

  • Analysis and knowledge exchange
  • Product testing: concerning the defects and software specifics definition
Domain-Centered QA Approach at a1qa blog

Apart from that, the approach decreases the project execution time. Engaging skilled engineers saves approximately 1000 man-hours on the project of average 5000 man-hours length.

Professional engineers practicing exclusively in specific domains can easier enter the system, find potential bottlenecks and better detect high severity defects.

Though, the software utilized in the specific domains never stays unchanged, which means the engineers have to improve constantly. Besides, constant practicing, knowledge accumulation goes at the centers of competence created in large testing companies. The centers keep the competency on high level providing the opportunity to extend professional skills along with the expertise.

Developing the expertise and being constantly engaged in testing of online banking, crediting, core banking and ESB testing allows skilled engineers easily enter the project. There is no need for them to waste time on learning the systems and specs of operating processes. Technical documentation is like an open book for experts, every single line is transparent and full of information.

As per said above, appointing engineers with extended domain expertise to testing of specific software – telecom CRM systems, OSS/BSS solutions, data base replication systems – accelerates the process and presents a better result. The approach pays its way and seems really sensible.

Last time we went through the first phases of installation testing, typically used in quality assurance consulting. This post provides the overview of the three left ones. When finally one third of the process is over, the tester gets to more comprehensive one: actual set up, licensing test and other actions test.

Actual set up process can be made locally, remotely and via the internet. Each method should be carefully checked. When the installation set up is made locally the tester should pay attention to User Account Control (UAC) doesn’t have a negative influence on the installation. For that very purpose it is necessary to check both triggered on and off states. Besides, installation program behavior should be also carefully checked in case of insufficient rights. So that on ordinary user wasn`t allowed to act as an administrator rights by chance.

Along with that checking local set up the tester should verify the simultaneous installations mode, installation types, license agreement, current disk usage and installation paths setup.

When the application provides possibility of remote installation, the tester should go through the specifics like connection issues, possibilities of blocking the remote installation and program sufficient rights.

If the installation program downloads some files from the Internet, the two common scenarios are of your concern. Either the user downloads the required files and the set up is run in the same way as a local one; or the user downloads a small launcher, goes through all setup steps, clicks Install button, and all required files are downloaded and installed.

Next phase is licensing test. The main aim for the tester on this phase is to verify that incomplete licenses corresponding features are blocked. Remember to check the correct license code or file is accepted, while the incorrect one isn’t. Finally, it is good to use virtual machines to test trial product versions or time-limited licenses to make sure that time synchronization with a host machine is disabled.

Being over with aforementioned phases the tester moves to some other actions necessary for finishing the installation testing. Among those upgrade and update, repair, modify and remove.

Upgrade is the operation that applies a completely new version of the software over an old one, while the update is the operation that applies a new build within the same version of the software.

Upgrade is usually performed using the same setup program as a fresh installation, whereas updates can be distributed as a small program which makes only specific changes or downloaded automatically by maintenance service. Remember, that the update should influence application work as little as possible. Generally, update changes only a few files, while upgrade usually replaces all program files.

Repair action should solve such issues as individual corrupted files without full re-installation. Therefore, the tester should check that the repair is accessible from the section of Control Panel and from the maintenance form of the installation wizard. Mind that repair should correctly replace the corrupted files.

Modify action allows the user to remove and install individual features such as specific programming language support or protection modules. Check the list of features, the changes made and that the process runs according to the user`s choice.

Remove action discards all changes made by the application except for files created by user and user settings.

First of all the remove action should be available. While executing the action all shortcuts, registry entries, virtual devices, drivers should be completely wiped, unless the wizard provides the ability to choose what to keep. If there’s an option of removing all prerequisites, the tester checks that they are uninstalled correctly. And lastly if the reboot is required at the end of uninstallation, verify that user really has a choice whether to reboot now or later.
Fulfilling all these phases means that the installation testing is finally over, now the “successfully installed” message means “the end”.

Installation testing is widely used in QA outsourcing, as it stands for checking up if software is successfully installed and is working as expected after installation. Though the process of installation testing doesn`t end on receiving message “Installed successfully”. The process goes through the phases like:

  • Environment setup
  • Installation wizard GUI test
  • Prerequisites handling test
  • Actual setup test
  • Licensing test
  • Other available actions test

Let`s pay attention to each one of them and get into some details. In this post take a look at phases of Environment setup, Installation wizard GUI test, Prerequisites handling test.

Environment setup

All the installation tests should be run on a clean machine. Usually, it means the machine with the minimal software package installed. However, if the application will be used in the standardized environment, a tester should reproduce it.
Start with preparing a virtual machine for each supported OS. Using snapshots is a good way to control the process. They provide the ability to unroll the changes. For example, if you test the application requiring .NET Framework and MS SQL Server, the snapshots like these might be necessary

  1. Clean machine (just after Windows installation)
  2. All Windows updates installed
  3. .NET Framework installed
  4. MS SQL Server installed
  5. Additional snapshots for hardware requirements test

On this phase, try not to rely on the application uninstaller to go back to the clear machine state as most uninstallers leave some files/folders/settings unremoved. It is always better to use VM snapshots instead.

Installation wizard GUI

Simplicity and transparency are really important for the installation process. The tester should check that installation wizard forces user to set up only the parameters required for the installation and the first application run. E.g., UI language can be chosen in the wizard, while color scheme selection should be deferred to the program’s first run.

Installation wizard usually has the following screens:

  1. Welcome screen
  2. License agreement
  3. Several screens for different options setup
  4. The last screen informing of successful installation

The screens should be combined and should have the areas of step name, short step description, navigation area and UI elements to input required information.

Apart from that, during the process user should be informed about the results of operations made by the installation program. However, the information should be presented in an understandable way using progress bar and a list of executed operations, error messages and so on.

Prerequisites

Prerequisites handling uses two common scenarios. Either the installation program installs all prerequisites by itself or prerequisites are listed and provided with download links.

The stage requires for checking the installation program correctly recognizes already installed prerequisites. Plus, if the prereqs need to be downloaded from the Internet, mind that the redundant downloads significantly increase the installation time. Remember to check that previous versions of prerequisite software are not recognized as correct.

In case some of the prerequisites have versions newer than those listed in the installation wizard test, if it’s possible to install the application along with them and if there are any issues with that. Moreover, if the application has some “negative” prerequisites, i.e., known issues when installed along with some 3rd party software, e.g., antivirus, user should be warned about this before installation starts.

Applying these simple techniques allows the tester to check and improve every single step. Next time we`ll get through the other 3 phases.

Installation testing is performed by quality assurance consultants to ensure that application can be installed and run correctly. It may also include compatibility and licensing tests, along with check of installation process impact on the operating system and the whole environment.

In the process of installation testing, lots of functional defects get detected. Among those defects can be caused by absent modules, incorrect paths or versions, non-registered libraries or corrupted registry entries.

Standard workflow for the installation testing includes the following phases:

  • Environment setup
  • Installation wizard GUI test
  • Prerequisites handling test
  • Actual setup test
  • Licensing test
  • Other available actions test (upgrade, uninstall, repair, etc.)

However, before proceeding to the detailed description of these phases, it is really necessary to pay special attention to Results validation part.

Results validation

Installation test doesn’t end on receiving “Installed successfully” message. You should thoroughly check if the installation was indeed successful. The check consists of several steps.

First of all run the application and check some basic functionality, do not miss errors like “Module is absent” or “Library.dll not found”.

Afterwards, make sure that all created shortcuts actually work. Depending on the installation settings and OS version, they can be placed at Desktop, Start menu, Quick Launch toolbar, Taskbar (Windows 7) or Tiles (Windows 8).

Next step moves you to Control Panel. You need to check whether the installed application is displayed in “Programs and Features” (“Add or Remove programs” on Windows XP), and, of course, all necessary virtual devices, for example printers should be installed. Do not also neglect checking process description in the Task Manager “Processes” tab (“Details” in Windows 8).

In case the application installs some services, go to “services.msc” to check service name, description, startup type, “log on as”. You need to know what the application does using this service, its purpose and all the additional information about the app to fix it.

Afterwards, pass to checking the application registration in OS. Being on this step go through required changes to the registry, shared settings for all users and personal settings for each user, shared DLL registration and reference count increment.

Checking the components’ versions note that DLLs, and especially 3rd party components such as Microsoft runtime libraries, may have versions other than the application does, that’s absolutely normal. All the other application parameters set in the installation wizard should be used correctly to ensure that application runs accurately.

In the next article we`ll go through the details of each installation testing phase.

There are a wide variety of billing providers, and choosing one for a particular project can be a complex process. No matter which provider you choose, the most difficult step is actually implementing a new billing solution once it is complete.

Billing-solutions development companies started offering full-circle business solutions some time ago. However, this doesn’t spare telecom companies from turning to specialized customization and quality assurance consulting to fine-tune a billing solution and make it meet their particular needs.

When a telecommunications company starts a large-scale solutions implementation, such as an OSS/BSS replacement, the cost of failure is enormous. After all, such an undertaking involves the risk of not only sticking to the budget and meeting important deadlines, but also keeping customer loyalty intact.

A telecom company’s expectations when undertaking such a project include:

  • ensuring it receives a quality product;
  • getting implementation done as soon as possible; and
  • realizing an advantage in the commercial marketplace by implementing a new solution and offering new services ahead of its competitors.

The process of implementing a billing solution is complex, and may be the largest project that a telecom company can undertake. The scope and scale require a mutual effort and cooperation amongst the company’s management (so-called internal customers from various business units), IT department, and billing solutions integrator (perhaps more than one integrator). Everyone must work together to build and launch a new billing system.

Our experience in similar projects has shown that to guarantee a successful (and on-time) launch, testing needs to be effectively included not just during the implementation process, but it must be a fundamental part of the entire project.

It is important to pay attention to the potential difficulties that may arise at the acceptance stage of such projects:

1. Acceptance testing may take longer than expected.

  • Deadlines can be missed.
  • When the project is drawn out, the budget goes up.

2. Acceptance testing may fail, which means one or problems must be fixed, and testing must be repeated.

  • The launch of the new billing system must be postponed.
  • Another round of testing means freezing marketing initiatives indefinitely.
  • Staff must be retrained to operate the system.
  • Staff must be retrained for the rollout phase.

To reduce these risks at the initial stage of the project implementation, you should ensure well ahead of time that:

  1. You have determined how internal customers will accept the system.
  2. You have prepared and delivered an acceptance testing process.
  3. You have determined who will perform acceptance testing.

The main stages that can impact the performance of acceptance tests are:

Expert advice

  1. During the planning stage of the project, define the timing of the acceptance testing phase, as well as the criteria for its start and end. In some cases, we recommend you schedule pre-testing before acceptance testing to improve the quality of the solution, and reduce the risk of unsuccessful acceptance testing.
  2. When defining system requirements, carefully check all the details of the new system’s requirements, and make sure they are all well thought out and necessary. It is important to go to extreme detail here. Otherwise, this work ends up being performed at the testing stage, when the solution has already been developed by the integrator.
  3. Before testing, define main testing KPIs. Begin with your internal customers’ business expectations and prepare clear business criteria.
  4. Connect the KPI for the business to the test results. The test results must be associated with the calculation of KPI. If this aspect of the test results is neglected, the results may be misinterpreted for internal customers, and this can complicate the final decision on the system.
  5. The time it takes to prepare for testing may take as much or more time as the actual acceptance testing. The quality of the system requirements developed earlier can greatly affect how difficult and how long this preparation phase can take.

Conclusion

Our company’s experience with implementation projects supports the methodology proposed in this paper. After performing so many of them, we came to this conclusion: For an acceptance test to be successful and timely, and lead to the launch of high-quality solution, the test team should begin work far in advance and go through several stages of planning and preparation before the actual testing begins.

When you consider that the first phase should begin when requirements are prepared, it is likely that the team will start their initial tests a year before the acceptance tests themselves. This early start will help pre-empt many of the potential risks and problems involved in such a complex project, and help reduce the severity of others.

The author of this blog post, Alexey Porodzinsky is a Leading Expert of Software Quality Optimization Department at a1qa. Alexei has 2 bachelor degrees and a master`s degree, fluently speaks English and German. Having started his career with web-application testing and become IBM Certified Specialist (Cognos 8 BI), now he manages technical aspects of projects on the pre-sale stage. Being a high-level professional he offers expert analysis of budget-planning strategy that would be of great interest.

Effective budget allocation is a top issue in any company, and depending on the way the budget shares got allocated a company may gain or lose benefit. Having made profound research and performed detailed analysis, we`ve come out with quite curious results.  The insight into topic has brought us here.

There are 2 IT budget allocation strategies:

  1. IT budget is formed as a percent from revenue or on the basis of costs per employee; in this case IT budget usually ranges from 2 to 4% of total income.
  2. Budget is formed on the basis of RGT (Run, Grow, Transform) model. It means the whole IT budget is split into 3 parts depending on project development stage, be it RUNGROWn or TRANSFORMed. No doubt the model has its drawbacks, though it is beneficial from the viewpoint of IT budget-planning.

According to Gartner research conducted at the end of 2012, companies spend up to 66% of their IT budgets for IT projects launch initiatives, i.e. on what needs to be done to implement new IT systems. The remaining funds in 50/50 ratio are spent on maintenance of already implemented systems and infrastructures and to support new development projects i.e. R&D.

Total for the moment, companies can allocate only 17% for R&D needs (i.e. the development of new directions) – here it is necessary to pay close attention – namely, to the increasing budget share for R&D, because 70% of the company income is generated as a result of R&D work.

So, how to increase the share of R&D in the IT budget of a company without changing the desired value of deductions from IT budget and thereby achieving the highest efficiency of R&D and thus increasing the real income of the company? The answer lies in increased attention to the quality of IT projects upon and before their launch. It will free up the necessary funds and direct them to the realization of R&D projects.

This is a common vision to address the issue of maximizing the company’s profits and improve the overall ROI of business assets. The next question is how it is possible to free up the necessary funds? Based on our expertise and years of experience in the area of independent software testing, we assure that this can be achieved by involving independent QA services. The earlier in the development cycle it will be done – the more budget share for R&D will become possible to free up and to achieve the goal of maximizing the profits of the company as a whole, increasing the ROI and R&D activity due to the growth of new directions.

To sum it up all let’s find out how exactly we can increase company’s ROI by involving independent testing services into the project implementation cycle:

  1. QA services enable to cut time for project stabilization thus reducing number of implementation stages as well their duration;
  2. Independent software testing helps IT projects meet the deadlines. It enables companies to mitigate the risks, connected with penalties for delay;
  3. Requirements analysis on a prototyping stage excludes the risk of excessive or unnecessary development;
  4. Performance testing provides the data on the required system configuration, which helps build the optimal architecture chain of design facilities. It saves the expenses at a starting phase and enables to form the strategy of a gradual facilities build-up as a project grows and transforms. Knowing exactly which facilities are required, we lay out money on optimal capacity and do not overpay for innovation facilities;
  5. Test automation service saves your money (during critic functionality testing) and time (in long-term development of complex systems);

As a result, it got clear that independent testing services raise the quality of IT projects and help free up about 10% of IT budget funds. It will enable to increase budget directed to R&D by up to 27%, which will in turn boost the profit on the whole by 47% (see infographics).

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.