Friday, 24 July 2020

Why you shouldn't skip Compatibility Testing for your Applications?



Software applications lie at the core of any IT infrastructure and help the latter to function as per expectations. These help organizations and enterprises to achieve their digital transformational goals including the delivery of superior customer experiences. To ensure such applications deliver value for money and do not run the risk of any failure, they are subjected to several rounds of testing. Importantly, the customers of today access applications on a plethora of device platforms, operating systems, databases, browsers, and networks, among others. They expect the applications to perform uniformly across platforms and can summarily discard them in the event of any malfunction or quality issue. Compatibility testing entails the testing of software applications across digital environments to validate their performance. It is a necessary cog in the wheel for digital transformation implementation.

Why mobile compatibility testing?
Mobile applications have become a rage among people on-the-go. They have brought the fruits of digitization to the people at large and enabled them to buy products, access information, or avail services, quickly, securely, and conveniently. However, the biggest challenge testers face in validating any software is the multiplicity of devices. For example, the number of mobile devices is projected to touch a whopping 16.8 billion in 2023 (source: Statista.) These devices are of different brands, features, hardware configuration, software and firmware requirements, screen size, and network operators, among others.
So, not only the mobile devices have issues of compatibility with their competing brands but can have differences with their brand line as well. This is where a special type of testing called mobile compatibility testing comes into play. It focuses on testing the compatibility of mobile apps across device platforms, software, firmware, operating systems, browsers, databases, and networks, among others. An application compatibility testing process ensures the seamless performance of application across these digital elements.

Types of compatibility testing
Any device compatibility testing allows developers and testers to achieve improved application performance. It consists of two types:
Forward testing: The testing validates the compatibility of an application with newer versions of operating systems.
Backward testing: Here, the testing process validates the compatibility of the application designed with the latest environment version with that of its older version. For example, if the backward testing of an application is conducted for Windows operating system, its compatibility should be tested for both the latest Windows 10 version as well as the older ones like Windows XP, Windows 7 etc.

What happens if compatibility testing of applications is skipped?
Customer experience has become the differentiator for software applications to be adopted or discarded. It is directly related to the performance of any digital company in the market. Simply put, if the customer experience offered by any product is below par, the company can lose its position in the market. And one of the prominent attributes leading to excellent customer experiences is the product’s compatibility across platforms. These platforms could be the operating systems, their newer versions, browsers, hardware configuration of devices, and mobile networks. If device compatibility testing is skipped, the results could be telling for the application and its brand:
Differences in UI: Each device has its configuration for the UI interface to run smoothly. However, it would require a particular look, feel, font size, resolution, and alignment for any application to work. In the absence of any compatibility testing exercise, this aspect of the application can remain unresolved for different devices.
Persistence of quality issues: Compatibility testing helps in identifying glitches in a software application, which otherwise can render it unsuitable to function across devices. Further, if such glitches are not fixed in time before delivery, the cost of fixing them later can be high. This can hit the profitability of any business big time.
Hits user expectations: The success of digital transformation solutions depends, to a large extent, to their compatibility across digital environments. Users are wont to expect applications that perform seamlessly on multiple platforms. If performance slackens due to issues of usability, stability, and scalability, then user expectations can take a massive hit. And in a world of tough competition where users look for fast loading, reasonably priced, feature-rich, and functional applications to meet their expectations, any lack of user experience can sound the death knell for that application.

Conclusion
Digital transformation has become the key enabler for enterprises to stay competitive and meet their objectives. However, the software applications at the core of such transformation need to be compatible across every digital environment. To ensure the same, digital compatibility testing needs to be pursued vigorously across the SDLC.

Tuesday, 21 July 2020

Functionality Testing: The Imperative for your Software Application Quality



The user expectations for any software product are changing fast. Therefore, the risk of releasing any software application with glitches can be detrimental to its performance in the market. To ensure that the software meets all its desired requirements and delivers the best user experience, it should be subjected to rigorous software functionality testing. Here, the QA specialists validate the software for features or functions that were agreed upon by the client. Functional testing services focus on meeting customer requirements/experience rather than customer expectations (non-functional testing.) To cite an example, an eCommerce store selling apparels should offer a comprehensive view of the store and individual items. If the same is not offered owing to glitches, the customer experience can go for a toss.

A functional QA specialist analyzes the individual units of an application and their integration touchpoints with other units. This is of utmost importance as most glitches make their way into an application at the integration touchpoints.

Highlights of software functionality testing
In this type of testing, the QA specialists verify the presence of features or functionalities in the application as per the specifications provided by the client. The highlights of functional testing for web or mobile applications are:

·        The testing should be executed early as opposed to non-functional testing.
·        Both manual and functional test automation can be a part of this testing. However, manual testing is relatively easy to conduct in this type of testing.
·        It tests and validates the functional aspects of the software product.
·        Examples are unit testing, sanity testing, smoke testing, user acceptance testing, black-box testing, white box testing, and regression testing.
Functional testing: the procedure
The process of executing this type of testing is as follows:
·        Understand and analyze the functional specifications given by the client
·        Identify the test data
·        Ascertain the expected results based on the selected input values
·        Conduct the test using test cases
·        Compare the results – expected vs actual
·        Analyze any incongruities and send them to the developers for fixing
Why is software/mobile functionality testing imperative for an application?
In a day and age where the quality of an application overrides all other aspects as far as making it market-ready is concerned, functional testing has become imperative. It delivers a slew of advantages including:
Functional suitability
This confirms whether the web or mobile application executes its basic functions. The testing identifies the functional flaws and highlights the risks of not fixing them. The testing of functions should depend on their risk possibilities and then prioritized. This means more focus on functions that carry more risks rather than omitting them from testing.
Seamless interaction with better integration: The dynamic nature of today’s applications means they should offer seamless interaction with other applications. For example, an eCommerce application should ensure secured payments, which can only be possible with better integration with the payment gateways. What if the customer could not make the payment due to poor connectivity with the payment gateway? No points for guessing, the customer experience will be severely dented.
Interoperability: Another aspect of customer experience is the ability of the software application in offering an omnichannel experience. In other words, the application should be easily accessible on a computer, tablet, or smartphone, and across operating systems and browsers. To check interoperability, the automated functional testing of application should be conducted across devices and other environments.
Early detection of glitches: Functional automation testing helps the QA team to test the code repeatedly. This way, any hidden glitches can be identified quickly and early on in the development process. In the Agile-DevOps model of development and testing, any early detection and fixing of glitches would mean quicker release of the software to the market and cost savings.
Changes not impacting the overall application: An application can undergo specific changes to its features or functionalities depending on the market/client demand. Regression testing can ensure the changes do not impact the overall application. Here, through functional test automation, the specific change area is tested instead of the whole application thereby saving time and effort. 
Conclusion
Continuous and end-to-end testing of applications has become imperative to ensure the quality of any web or mobile application. In this context, functional testing of applications incorporating test automation can help detect resident glitches early and quickly. Its successful implementation ensures the software application meets the client’s requirements and delivers superior customer experiences.

Thursday, 9 July 2020

How to Ensure Flawless Performance of your eCommerce Application



Digital transformation has become imperative for businesses including the ones in the retail sector to remain competitive and deliver superior customer experiences. The growth in eCommerce has seen a phenomenal increase in the past few years with customers taking to online shopping with vengeance. According to statistics, eCommerce has seen a quantum jump from $1336 billion in 2014 to $4206 billion in 2020. It is further expected to reach $6542 billion by 2023 (Source Statista.) Since so much is riding on these companies, they should ensure the customer experience to remain top-notch. And when it comes to delivering superior customer experiences, a host of factors lies behind. These include performance, throughput, seamless navigability, attractive images galleries, and strong and secure payment gateways, among others.
Of late, eCommerce companies have entered into the domain of mobile applications given the huge number of customers using such apps on their smartphones on the go. The convenience offered by such apps has made them highly sought-after by the customers. However, all said and done, these apps are vulnerable to both performance and security issues. Performance-wise, the apps may slow down while loading or transacting, give erroneous counts, become non-responsive across devices, and many more. On the other hand, security has arguably become the biggest issue to plague the apps. Again, if statistics are referred then the average cost of security breaches will cost economies a whopping $150 million by the end of the year 2020 (Source: Juniper Research.) So, the need of the hour for enterprises developing such applications is to invest in eCommerce performance testing.

Why eCommerce performance testing?
Since eCommerce applications have interfaces with various financial instruments like bank accounts, credit/debit cards, or digital wallets, among others, they need to be secured. Also, since these applications deal with inventory management in real-time in both B2B and B2C environments, they should be tested on various parameters. Let us understand why businesses need to employ a performance testing strategy for eCommerce applications.
# Various platforms: eCommerce applications are accessed from various device platforms such as smartphones, desktops, laptops, notebooks, and tablets. Since these devices have different hardware and software configurations, the performance of any eCommerce application will be determined on the strength and capacity of these configurations. However, with the performance testing of eCommerce applications, the seamless performance of such applications can be ensured to a greater degree. And since performance is directly related to customer experience, the more the merrier.
# Different browsers: eCommerce applications contain rich images, social media plugins, product descriptions, and payment gateways, which help in converting visitors into customers. Since these applications containing such elements open in different browsers such as Chrome, Internet Explorer, Opera, Firefox, etc., they need to function seamlessly. With a stringent performance testing exercise, any glitch preventing the smooth functioning of such applications can be identified and fixed.
# Load and stress thresholds: eCommerce applications, especially in a B2C environment, handle a lot of traffic during certain times of the year – black Friday sales, Christmas sales etc. If their performance during such times of high traffic goes down the customer experience invariably takes a hit and brands end up earning flak for themselves. Further, the functionality of such applications can often be affected by the customer-friendly designs (read rich images,) which can only be validated through eCommerce application testing. The testing would confirm whether the functionality of an eCommerce application performs to its optimum when the traffic is very high or there are issues related to network or slow server speed. A robust performance testing approach can bring about parity between customer-friendly designs and performance of the application during extreme load conditions.
# Fixing glitches: In the highly competitive business environment of today where customer experience is arguably the best differentiator, ensuring the performance of an application is critical. If an eCommerce application is delivered to the market without proper testing then the resident glitches can play havoc. In addition to affecting the performance of the application in terms of lowered throughput, navigability, functionality, or usability, they can cause security issues. For example, any vulnerability within the application can be exploited by hackers to steal sensitive financial information like credit card or bank account details. The customers can end up losing money – a distinct possibility. So, if proper security and eCommerce performance testing in the Agile-DevOps mould are implemented in the SDLC, the glitches can be identified and fixed early.
# Brand equity: A glitch-prone eCommerce application can discredit a brand when dissatisfied customers vent their anger in the form of lawsuits or negative reviews. And when the entire strategy of businesses revolves around popularizing the brand, such a situation of losing brand equity can come as a big jolt. It is only through implementing performance testing that businesses can avoid getting hit in terms of brand equity.
What performance testing strategy should be followed?
Testers should consider the below-mentioned factors while planning eCommerce performance testing.
Performance across geographies: Ecommerce applications are accessed by customers across the length and breadth of a country or even continents. Testers should ensure the performance of such applications is not affected by the geographic location of the customers. This involves testing the key workflows and functionalities.
Page loading speed: It is said that most customers (around 57% as per stats) tend to discard an application if it takes more than 3 seconds to load. E-retailers should ensure that the page load speed of their eCommerce applications should not suffer, especially during peak traffic. Using eCommerce load testing, QA specialists can validate the performance of an application by creating virtualized users across geographies, device platforms, and networks.
The steps involved in conducting performance testing are:
·       Building a test environment
·       Selecting the performance metrics to be tested
·       Writing the test automation script, selecting the tool, and execute
·       Reviewing the test result

Conclusion
With growing digitization of enterprises, especially of retail, the usage of eCommerce applications will only grow further. To ensure their performance remains top-notch and security intact, they should be subjected to extensive performance testing. This is important to retain customer trust and enhance brand equity.

Friday, 3 July 2020

What role does Quality Engineering play in your Digital Transformation Journey?



Digital technology has emerged as a disruptor for enterprises, governments, organizations, and entities the world over. It is no longer the ‘add on’ but the much needed ‘core’ to remain visible, responsive, successful, and competitive. If earlier, customers used to be at the wrong end of the stick for businesses, today, digital has given them a user-friendly interface to get their point across. Further, with digital technologies giving customers the power to be choosy with their brands, products, or services, businesses are in a bind. They can no longer ignore the voice of the customer and have to design their products or services as per their customers’ preferences. In the whole scheme of things, quality has become the differentiator for businesses to remain competitive. It is the quality of products or services that ultimately determines whether customers stick with the specific product or service or move onto others. 

Digital technologies have led businesses to go for a paradigm shift in their strategies. So, they not only have to deliver superior quality products at a faster rate but need to keep them updated as per the changing times and/or technologies. No wonder, they rely on Agile and DevOps methodologies to deliver superior quality products in double-quick time. To meet the fast-changing customer expectations, businesses adopt digital transformation with digital quality engineering at the core. To understand more about software quality engineering, one needs to know about customers’ changing preferences. Yes, today’s customers are no longer satisfied with a particular brand or product unlike the ones in the earlier generation. Armed with a plethora of choices, the customers of today want high-quality apps that can be used across devices and platforms. Here high-quality apps would mean fast-loading, feature-rich, secure, scalable, responsive, functional, and navigable. Thus, instead of testing apps or builds on a range of devices and platforms post-development, it makes sense to incorporate quality in the app development lifecycle.

If digital transformation is about optimizing the value chain, improving productivity, reducing defects, enhancing efficiency and security, and ensuring the quick release of builds, then digital quality engineering is the enabler. It allows organizations to streamline their value chain and ensure the development of a functional product.

Role of quality engineering in advancing the cause of digital transformation
With quality no longer remaining an ‘afterthought’ in the production cycle, it needs to be integrated with every phase of development. This ensures early identification and fixing of glitches in the build before passing it to the next stage.

# Better integration: QE services call for better collaboration and integration between teams, especially development and operations, in releasing quality builds within faster turnarounds.

# Better test automation: A quality engineering approach involves the use of test automation to validate voluminous lines of code as per their expectations. The QE specialists should be able to write pieces of code for better integration with tools and frameworks. However, QE driven test automation is not a silver bullet to ‘correct’ every flaw in the code but needs a better choice of test cases and test areas. These include the following:
·        Repetitive tests that are susceptible to manual errors
·        Optimizing test cases and improving test automation by incorporating AI
·        Tests that need virtualization of data sets due to the latter’s unavailability. The unavailability could be due to the challenges of geography, demography, or complexity
·        Tests to be conducted across multiple devices, platforms, and networks
·        Frequently used features or functionalities that may be risky
·        Tests that are difficult to be performed manually

# Test-Driven Development (TDD) and Behavior-Driven Development (BDD): The two approaches envisage the conduct of unit test for the code before initiating any further tests. Both TDD and BDD approaches call for better collaboration among quality engineering services, developers, and business stakeholders. This commonality of approach is to ensure the final outcome is in line with the avowed business objectives. The software quality engineering team ensures quality through API validation when pitted against UI-driven test cases.

# Performance metrics aligned to customer experience: Digital quality engineering ensures the customer experience to be top-notch across device platforms. It does so by setting up and measuring the performance metrics as per expectations. This enforces trust, increases accessibility and responsiveness, improves the omnichannel experience, and enhances brand image. 

Conclusion
The highly competitive world of online business requires enterprises to come up with quality products delivering great customer experiences in short turnarounds. It is only through a quality engineering approach that glitches can be fixed early, testing can be conducted across device platforms and the final deliverable is made to align with customer preferences and business objectives.

How to test the Contactless Retail POS Systems



The footprint of technology has reached everywhere and has made the hitherto complex activities, simple and convenient. One of the areas that shopping establishments grappled with was conducting quick transactions in real-time. In large shopping centres with huge footfalls, facilitating a seamless transaction has been made possible with Point of Sale (POS) terminals. These devices help retail businesses meet the challenges of allowing quick customer disbursal, conducting fast and accurate transactions in real-time, and obtaining the total figures with minimum manual intervention.

These contactless POS terminals take inputs of merchandize through barcode readers and process transactions in double-quick time. These have eliminated the need for entering data manually on an excel sheet. And since the retail ecosystem, especially the customer interface section, seems to be driven by these machines, their accurate functioning has become critical. What if these devices malfunction or generate erroneous data? To address such a possibility, entities manufacturing such devices need to implement stringent retail POS testing in the end-to-end production pipeline. However, before understanding the process of testing the contactless retail POS systems, let us know what they are all about.

What is a POS (Point of Sale) system?
It is a device that is placed where transactions between the customer and dealer/seller take place. Nowadays, such devices have become ubiquitous in places where there are payments involved. These include areas such as shopping malls and retail stores, restaurants, hospitals, and movie theatres, among others. A standalone POS system is an integration of many components or devices including a barcode reader, a wireless payment system, and a printer. To enable the POS system to run smoothly, these individual components must be integrated fully and run as a unit. This is where the significance of retail software testing or POS testing comes about.

Is retail POS testing different?
Yes, it is not exactly the kind of software testing that the QA testers execute through a web app or computer terminal. Retail testing involves the testing of each integrated device and the software running them. It requires a full-fledged setup mimicking a retail store.

Are there challenges in retail software testing?
As the POS systems need customization to meet the requirements of a particular retail store, there are a few challenges involved:
·       The POS system in a retail store may need multiple configurations depending on the day, event, or special occasion. For example, if a retail store wants to run a promotional campaign for a day or a few hours in a day, the POS terminal should be configured to reflect the same.
·       A POS terminal has integrated device components and various software running the latter. So, any retail app testing needs to comply with the various software versions and hardware configurations.
·       Since individual components are part of the POS system, the need for compatibility and integration testing becomes crucial.
·       POS testing should ensure the device is PCI compliant as it deals with customers’ credit or debit cards.

How to test the contactless retail POS systems
As the POS system is a combination of various individual components, the latter should be tested individually.
POS terminal: Since the terminal screen registers all entries related to the transaction and information such as pricing, payment modes, product list, and/or promotional offers, among others, the testing has to be comprehensive. Terminal testing should ensure if all devices are connected to the terminal network and contain the latest software versions.
Barcode reader: It is the barcode reader that makes the whole apparatus ‘contactless’. It scans the merchandize or product and verifies if it exists in the inventory and gets the price. After the product is sold the inventory is updated accordingly. For any retail app testing, any missing product from the inventory should be scanned. Also, products existing in the inventory without any price list attached to them should be scanned during testing.
Handheld device for card payments: This wireless device accepts card payment details post-authentication by the customer through a PIN. Here, the testing should be conducted after selecting the payment mode of a transaction as ‘card.’
Printer: This device helps to generate an invoice or receipt post-transaction. Here, the retail testing strategy should include a range of testing areas - alignment, text size, overwrites, and fonts, among others. Further, tests should be conducted to check response when the printer is not ready, has run out of paper, or loses connection during a transaction.

Conclusion
In today’s digital age the retail industry is increasingly using the POS systems to obtain a range of benefits. However, the benefits can only be accrued if these systems and the individual components running them are validated for functionality, performance, security, and accuracy.