Thursday, 30 April 2020

The Do’s and Don’ts of Software Product Testing




Software products have become an integral part of driving the whole global digital ecosystem. They bring with them attributes like convenience, speed of operations, security, and privacy, among others. As customers became choosy with their preferences and the competition among providers got intense, quality became the core differentiator that helped an organization stay ahead of the competition. To ensure the delivery of superior-quality products from the build pipeline and pre-empt customers from facing any issues with their performance, the former should be subjected to rigorous software product testing. Over a period, quality assurance has come to be associated with standard processes, practices, and methodologies. These should be followed in letter and spirit to enhance quality, streamline workflows, improve efficiency, and be responsive to customer feedback. However, a few QA practices have become dated and should be updated with the new trends. To understand these better, let us discuss some dos and don’ts about software application testing.
The do’s of software product testing
Quality Assurance (QA) is a critical requirement in the product development lifecycle to identify and remove glitches. It helps to make a product competitive and allow it to meet the customer’s expectations. If QA is not part of the SDLC, the consequences for the entire value chain can be severe.
·       The product would be left with glitches thereby impacting its performance.
·       Hackers can exploit the inherent vulnerabilities to steal sensitive business and customer information.
·       Security protocols can go for a toss with the business inviting censure and penalties from regulators.
·       The brand suffers immensely as adverse publicity through word of mouth can go viral.
ü  Choose specific test cases for automation: Automation is the key when it comes to performing repetitive tests such as regression. However, care should be taken to choose the right test cases for automation as test complexities can render such testing infructuous. To automate everything is certainly not the way to go about in a software product testing strategy. There should be a proper selection criterion in place to choose a test case for automation. If done the right way, test automation can deliver benefits that far outweigh the costs.
ü  Upgrade skills for automation: Even though automation is a potent software product testing method, the skills required to execute the same is not always available. For any team going for test automation as part of the software product testing strategy, the QA team should be well-versed with any one of the programming languages such as Ruby, C#, JavaScript, or Python. Besides, the team members should have the expertise of handling automation test tools like Selenium. The bottom line is that more the testers have skills for automation, better will be the outcome of software product testing.
ü  Quicken the pace of testing: In a non-Agile test environment, testers are wont to leave some of their difficult tests at the end of the SDLC. However, this practice is flawed as testing the quality of applications at the end of the development process hinders delivery. Rather, the testing team should adopt a risk-based approach towards software product testing and execute the high priority cases first.
ü  Manage the testing environment: Testers seeking deployment no longer holds, for today, it is more about managing the test environment by configuring the CI tool or Selenium grid. There should be cloud, containers, and virtualization, and the ability to write appropriate test scripts.
ü  Shorter tests: The test suites should be made shorter to enable better and quicker detection of glitches. Not everything should be tested in a test scenario, for it would make troubleshooting difficult later.
ü  Follow shift-left: The QA team should align itself with the development team through shift-left testing. This way, they can make a better impact on the quality of software and deliver it faster through the value chain. Also, shift-left helps developers to quickly mitigate any glitches in the code and move to the next sprint.
The don’ts of software product testing
In addition to the above-mentioned ‘dos,’ testers should follow some don’ts as well to enhance the quality of testing and not leaving anything to chance.
·       Tracking defects in many places: Keep a single log of defective cases or glitches instead of documenting them in various places – excel sheets, tracking tools. A centralized repository for documenting glitches can help in their quicker tracking and better monitoring.
·       Focus on negative scenarios: Testers should not spend their energies on testing negative test scenarios that are less likely to be used by the end customers. Even though these should be tested during the test cycle, the priority should be set for scenarios that are most likely to be used by the end customers.
·       Avoid regression testing: Any change made to the application can impact specific areas of it unless regression testing is carried out. Often testers are of the view that regression testing can be avoided as the features or functionalities to be tested had been done earlier. However, any assumption in this regard can be fraught with danger as the changes can cause defects in other areas of the application.
·       Automate everything: This follows from the ‘dos’ mentioned above where only specific test cases should be automated. The testing team should leave some space for manual testing as automation does not lend itself to every possible scenario. For example, any wrong code in the test script can harm the testing exercise.

Conclusion
With quality forming the centerpiece in ensuring success of any software application, testing or QA cannot be overlooked. In fact, it should be integrated into the SDLC along with development to identify and fix glitches as and when they happen. However, the QA team should religiously follow the dos and don’ts to avoid any negative fallout of testing. The aim, ultimately, should be to deliver the best user experience and achieve ROI.

Friday, 24 April 2020

How to Accelerate Enterprise Digital Transformation



Technology has reshaped the world with Industry 4.0 becoming the norm for global enterprises and entities to adapt, sustain, and stay competitive. Organizations are under unrelenting pressure to transform them and move into the digital realm. In doing so, they aim at achieving a host of outcomes, such as increased productivity, better efficiency, improved quality of products and services, a seamless value chain, responsive customer service, lower cost of operations, and increased revenue. However, achieving enterprise digital transformation quickly is not only about adopting the technology. It also involves initiating agility - delivering speed and change in the value chain and learning with experience. Also, it is about creating a culture that respects change, for unless the people driving the change on the ground are convinced of its positive impact, the result will peter out in no time.
Building a robust digital transformation strategy should incorporate methodologies such as Agile and DevOps where digital QA is built into the value chain. The focus should be to remain competitive and reduce costs by underpinning the digital transformation exercise on enabling technologies and paradigms. The benefits of following a robust enterprise digital transformation are as follows:
·       If a cloud-based system is chosen instead of a legacy system, it would mean reducing the software and infrastructure costs. Also, the IT infrastructure can incorporate features and bug-fixes even from remote locations, anytime and anywhere.
·       Migrating the IT infrastructure to the cloud will not entail a large amount of time and money. By using delivery methodologies and microservices, the task can be managed thereby ensuring better stability and quality across the production pipeline.
·       DevOps can revolutionize the way an organization develops, tests, and delivers software applications frequently and consistently. It will also entail changing the culture of the organization wherein upholding quality will not be the job of a single team but of the whole organization.
Let us discuss how effectively digital transformation services can accelerate the process with minimum investment on time and cost. However, before that let us find out what digital transformation is all about.
What is digital transformation?
In this process, digital technologies and methodologies are used to build new or modify existing value chains, culture, and user-experiences to address the changing market dynamics and user preferences. It is about reimagining or revamping a business and moving it to the digital ecosystem. For example, a bank decides to modernize its digital interface by incorporating Artificial Intelligence-driven chatbots to reduce customer response time.
Areas to be covered in digital business transformation
To ensure the digital transformation solutions meet the objectives of an enterprise, they need to focus on three areas.
Supply chain: Customers might face difficulties in using a product or service and need a prompt response. A culture attuned to working in the traditional method might not be responsive enough or understand the pain points of customers. Whereas, on following the digital transformation implementation exercise employees will be more alert to the needs of business and customers. This will help the supply chain to be seamless, fast, and customer-friendly.
Customer experience: In today’s competitive environment unless an organization’s customer service is prompt and responsive, customers are not likely to come back. Therefore, the key is to deliver a seamless user-experience to the customers to ensure brand loyalty.
Fast and agile operations: With an agile-driven IT architecture, any organization, big or small, can run its operations fast and deliver quality products and services. Besides, when the situation demands, the operations can be scaled up (or down) to meet the requirement. For example, an eCommerce store selling groceries should be able to meet the rising traffic on special occasions like Black Friday Sales, Christmas, and New Year, among others.
How to accelerate enterprise digital transformation?
Redesign your operational area or value pipeline: Follow a DevOps culture where software development and testing take place concurrently while operations play its role in being responsive to customer queries. The focus should be on incorporating test automation or a responsive customer interface like a chatbot to accelerate time-to-market and achieve customer delight.
Manage data to improve decision-making: An organization with siloed, fragmented, insecure, and incomplete data can impact the quality of its decision-making. However, with digital transformation, organizations can create centralized data repositories to ensure quick access to data and promote integration and collaboration within and outside. Also, organizations can invest in AI, ML, and data science to conduct predictive analysis in real-time to generate crucial insights about the market, customer preferences, and competition.
Enhance security: Even if digital transformation has the potential to generate immense business value, it is also subjected to security risks from cybercriminals. Hence, the process should incorporate methodology like DevSecOps to place security at the core of the whole exercise. Organizations can make use of AI, ML, and test automation to detect outliers and glitches in the SDLC and beyond.
Conclusion
Digital quality assurance and testing can help strengthen the digital transformation process by a long measure. By accelerating the process of such transformation, organizations can derive benefits and remain competitive.

Friday, 17 April 2020

The Criticality of IoT Penetration Testing for a Remote Workforce



The Internet of Things (IoT) is gradually transforming the way people go about their daily chores or how enterprises conduct their activities. It is the harbinger of everything ‘smart’ the world is aspiring for. The days are not far when IoT can make science fiction a reality to a great extent. It improves efficiency, productivity, comfort, convenience, responsiveness, and management, besides reducing cost and waste. The Internet of Things has the capability to transform homes and offices and help create islands of efficiency amidst the presence of legacy systems. The IoT revolution is mostly visible in the way employees of enterprises have been using the IoT-enabled devices remotely to connect with their offices.
Today’s employees who are wont to bring their digital devices like laptops, tablets or smartphones to offices have graduated to bringing IoT-enabled devices like e-readers, wearables, game consoles, or even smart printers and coffee makers. Even if these devices have given convenience and efficiency a new meaning, they bring with them a new set of challenges involving cybersecurity. If earlier the security teams at offices were tasked with securing the company’s assets and the devices brought by employees, today, the challenge is formidable. In the new IoT-enabled ecosystem, security teams have to deal with devices they are not used to handling earlier. These include coffee makers, smartwatches, fitness trackers, and remotes, among others. Thus, the IoT-enabled devices may have attendant security concerns that many enterprises are not prepared to deal with. And if left on their own, these devices can play havoc in the day and age of cybercrime.
The present BYOD (Bring Your Own Device) protocol being run at enterprises needs to be scaled up to include the advent of IoT-enabled devices. So, let us understand how organizations can strengthen their security systems to ensure the safety of IoT devices for a remote workforce. This calls for conducting stringent IoT testing across the digital landscape.
The value of IoT security and how IoT security testing is the key
A study by Gartner, the global research and advisory firm, states that the number of IoT-enabled devices is likely to cross 20 billion by 2020. With the increased integration of IoT into people’s lives, there will be a greater dependence on such devices to derive data and draw inferences from the same. However, this also increases the security risk from such devices - for individuals, groups, enterprises, organizations, and entities. The risks can be varied and annoying. For example, cybercriminals can break into an IoT ecosystem and capture the video feeds as well as block access to the real users of such feeds. Also, in radiation monitoring devices, cybercriminals can exploit any inherent vulnerability to target critical infrastructure. The field of medicine is one potential area where IoT has made rapid ingress with smart wearables to monitor critical parameters. Again, the lack of security testing here can give a long rope to cybercriminals to make good with sensitive patient related data.
To pre-empt cybercriminals from wreaking havoc on the IoT and connected ecosystem, enterprises should put increased focus on IoT penetration testing. This way they can identify the vulnerabilities or glitches within such systems and fix them. For a remote workforce dependent on the successful performance of such devices, stringent IoT testing can take care of any potential security issue.

What is IoT penetration testing?
In this type of testing, an assessment is made on the usage of various components within an IoT-enabled device to make it safer. However, given that such devices have numerous interfaces with third-party devices or software suites, it is indeed challenging to plan an all-encompassing IoT testing approach for devices with so many end-points.
Benefits of IoT device testing
Testing IoT applications, especially through pen testing can have a host of benefits for enterprises.
Strengthening device security: The vulnerabilities within devices can be identified and fixed. Thus, the machinations of cybercriminals can be nipped in the bud and sensitive information safeguarded.
Prevention of unauthorized usage: IoT devices should have multiple layers of security to prevent any unauthorized usage. However, glitches within such devices can be exploited to gain access to sensitive or critical areas or databases causing data breach or worse, endangering the critical systems controlled by such devices.
Eliminating elevation of privileges: The usage of IoT devices in organizations comes with a layered approach having a proper distribution of privileges. At each level, the person entrusted with deriving data and insights from such devices has access that is not available to everyone. This ensures the device continues to function seamlessly and generate the necessary outcomes required of it. However, the lack of IoT security testing can allow cybercriminals to exploit the access privileges and steal sensitive personal or business information. This can have serious security implications in areas where the successful functioning of such devices has extensible security dimensions. A robust pen test can search for vulnerabilities and secure them from further exploitation.
Strengthen data privacy: The IoT-enabled devices must adhere to stringent industry regulations failing which enterprises using such devices as a part of their IT infrastructure can face censure, penalties, or an outright ban. The application of a robust IoT testing methodology can enforce such protocols thereby ensuring data privacy.
Setting strong encryption: The software suite running any IoT device connects to the servers of various third-party applications to exchange data and information. If the data exchanged between devices or servers are not encrypted, they can be easily snooped into and exploited. The IoT penetration testing validates the effectiveness of encryption ensuring the transmission of data among such devices remains safe and secure.

Conclusion
The IoT landscape has become very complicated with myriad devices having sundry end-points conducting data transmission intermittently. This has made the job of developers and security teams challenging. However, ensuring the security and performance of IoT-enabled devices is underpinned on understanding the complexities of device platforms and conducting stringent penetration testing.

How should you Adapt your Medical Devices Testing Approach in the Present Time?



Covid-19 has arguably become the biggest challenge to hit humankind after the Second World War. It has thrown every activity out of gear and forced people around the world to go indoors and maintain social distancing. The immediate challenge is to flatten the curve with more testing followed by quarantining the Covid-19 patients. The challenge requires quick manufacturing and delivery of testing kits, Personal Protection Equipment (PPE), respirators, and ventilators, among others. To defeat the immediate enemy, the novel Coronavirus, the healthcare sector needs a large infusion of the above-mentioned kits and increase the scale of testing. Since the world did not have enough reserves for such equipment, there is a sudden requirement to scale their manufacturing to meet the demand.

This is where there is a danger of companies flouting standard medical device testing practices to meet the demand in double-quick time. As there is a need to deliver a rapid response to the contagion by testing in greater numbers, doing so without proper tested equipment can be counterproductive. So, professionals manufacturing such devices or kits need to pause and follow the established testing protocols in the development and delivery pipeline. During such times, quality matters more than anything else. Let us understand the dangers of not conducting performance testing on medical devices. A faulty testing kit, PPE, or ventilator can wreak havoc if it does not raise an alarm when there is a positive case or vice-versa. The entire response of the medical fraternity in combating the pandemic would depend on the knowledge that such pieces of equipment are functioning and meeting the expected parameters.

Leveraging authorizations and exemptions

The need of the hour is to build strategies that leverage exemptions, authorizations, protocols, innovations, and communication tools to deliver the goods. The medical device manufactures should be quick to confront the pandemic and respond to the evolving situation. The entire strategy should be risk-based and take into consideration the need for obtaining authorizations and exemptions. For example, in the USA, there is a provision where the federal or central governments can authorize manufacturers to scale up the production of devices to address the pandemic. Known as the Emergency Use Authorization or EUA, the provision can empower manufacturers to shore up production and deliver medical devices quickly to the market. During such times even the FDA can expedite its premarket review and be a facilitator in the larger scheme of things. Since the current market demand is mainly for PPE, ventilators, respirators, and diagnostic test kits, it is better to leverage a EUA to scale up your manufacturing process.

However, the EUA does not give any manufacturer a carte blanche to avoid medical device testing. Instead, devices ought to meet a certain standard requiring less evidence. Notwithstanding the relaxation in providing evidence, the FDA would conduct a risk-benefit analysis to ascertain if the device is worth authorizing to reach the market. Further, during a pandemic like situation such as the one driven by Covid-19, the government can ask non-medical manufacturers to get into the act and increase the production of essential medical kits. The standards nonetheless should not be lost track of by such manufacturers in terms of quality, performance, and safety. For example, non-medical manufacturers like automotive and industrial ones may get into manufacturing of medical equipment by complying with certain regulatory protocols as mentioned below.

·       IEC 60601 for medical electrical equipment
·       IEC 62304 for the SDLC of medical devices
·       ISO 10993 to evaluate the biological parameters of medical devices
·       ISO 80601 for medical equipment such as respirators and ventilators

What about international exemptions?

The scourge of Covid-19 has led to a lot of flux in the international markets as far as medical devices are concerned. Rules related to medical device testing seemed to have been relaxed to meet the rising demand. So, should you be a seller or manufacturer of medical devices, the time is to leverage the exemptions and scale up production or delivery of such devices. Some of the important exemptions for the medical devices testing specialists to ponder are as follows:

·       Singapore to do away with the need for registrations for certain devices, namely, PPE, surgical masks, thermometers, and particulate respirators.

·       Australia has exempted devices from registration that are needed for the diagnosis, monitoring, prevention, and treatment of Covid-19.

·       China to facilitate the registration for PPE should they meet the standards prevalent in the USA, the EU, or Japan.

Prepare against pandemic related disruptions

Since the pandemic has led the world to practice social distancing and quarantining, it might come as a challenge for the medical device manufacturers. For example, there would be a significant impact on conducting clinical trials because patients will not be able to travel or there might be a smaller number of trials than otherwise needed for effective analysis. Also, test protocols may change with medical device testing experts visiting homes of patients or using telemedicine. Further, the IRB review and approval may get delayed due to such restrictions.
Social distancing can play havoc with the testing teams working remotely. With less or no access to collaboration tools, typical processes followed earlier might become unresponsive. Let us understand a few instances as explained below:

·       If the team is more into documenting things on paper, the travel restrictions can hamper the process of obtaining physical signatures.

·       In the absence of a centralized communication network, messages and documents will get delayed to reach the right recipients. Also, for any slippage, the rework can push things further and cause delays.

·       Legacy systems can come in the way of a quick, secure, and reliable healthcare software testing. In other words, manufacturers and testers will not be able to collaborate effectively in upholding appropriate security levels.

Conclusion

In the challenging times of Covid-19, the manufacturers of medical devices should adapt to innovative ways in leveraging the exemptions and authorizations. The need of the hour is to arrest the spread of the pandemic by manufacturing Covid-19 related medical devices in humongous numbers. However, in doing so, the quality and safety aspect should not be undermined as it is only with quality kits the scourge can be confronted and hopefully mitigated.

Thursday, 9 April 2020

IoT Testing is Driving the Future of Smart Connectivity



The future of our tech-driven world is going to be exciting. Technologies like Artificial Intelligence, Blockchain, the Internet of Things (IoT), or Robotics shall bring conveniences and improve our quality of life greatly. Among these, the Internet of Things or IoT shall be instrumental in ushering the ‘age of machines’ in the true sense. If we go by Gartner’s prediction, then by 2020, the world is likely to see use of around 20.4 billion connected devices. In fact, the Internet of Things is expected to be a part of every industry segment and bring about a radical change in the way we live in the near future. Since the world would be virtually dependent on these devices, their performance, reliability, availability, and user experience should be top-notch. However, ensuring these at all times can be challenging and warrants the conduct of rigorous IoT testing.
What is IoT?
The Internet of Things is a network of devices, digital elements, vehicles, home appliances, and other gadgets that are connected to the internet to exchange data and information. The enablers for IoT include systems such as motion sensors, thermostats, smart switches, leak detectors, dimmers, doorbells, and smart outlets. Presently, only 0.06% of IoT-enabled devices are functioning globally and there is a great potential to expand the value chain. Today, around 60 technologies and Radio Frequency formats are in use to make IoT a reality. Among these, WiFi and cellular are the prominent ones. With the emergence of new wireless technology standards, enhancements to LTE (Long Term Evolution) and LTE-Advanced protocols, and the advent of 5G, the need for internet of things testing has assumed salience.
The future is going to be defined by smart technologies. These are needed to address the present-day challenges related to the lack of quality, availability, and speed. Thus, to manage the functioning of smart systems a la IoT and ensure they work to their highest levels of efficiency, IoT testing is the way forward. The following examples can emphasize the dire need for maintaining quality in IoT devices.
If there is a fire in a smart home (enabled through IoT devices), the smart systems (smoke sensors) should detect the smoke and send an alert to the authorities, apart from the owner(s). This can only be possible if various devices connected to the IoT grid function at their optimal level and communicate with each other effectively. In the absence of such coordinated functioning of devices, the smoke will remain undetected leading to a fire hazard.
Again, if an automatic vehicle fails to detect an obstruction (a pedestrian, vehicle, or any other object) due to the malfunctioning of its sensor(s), the vehicle will fail to stop in time leading to an accident.
The two examples have highlighted how various connected devices within the IoT ecosystem need to function in a coordinated manner.

Challenges for testing of IoT devices
The ways things are, it is predicted that the Internet of Things ecosystem is going to outweigh and outperform the combined numbers of smartphones, desktops, laptops, and wearables in the world. It will ultimately be businesses, more than governments or individuals, that are going to drive the adoption of IoT. This will increase the scope for IoT testing wherein developers and testers have to consider factors like the available bandwidth, the performance of device circuitry, or the battery level, among others.
Further, in IoT, there would be plenty of unusual device types. These include home appliances, which may or may not have robust interfaces with digital systems like sensors, thermostats, and others. Thus, with the presence of such a diverse set of devices, selecting the best IoT testing approach can be tricky. The other types of challenges in testing IoT applications are

l  Lack of standardization of devices and associated systems
l  Insufficient battery life of devices
l  Network issues
l  Threats to data security
l  Need for omnichannel testing

Testing requirements for IoT enabled components
To drive quality into the IoT ecosystem, the components forming the ecosystem should be validated in terms of performance, reliability, usability, security, and customer experiences. Let us understand the key testing requirements for IoT components.
At the device level: The IoT testing framework at the device level should target areas like device properties, schedules, power modes, serial protocol, and connectivity.
At the cloud level: The testers would look to automate and integrate the components into the ecosystem and check their effectiveness. The areas to look at would include security, performance, scalability, reliability, data governance, and data privacy.
End-to-End testing: This comprehensive IoT testing approach would entail executing automated tests combining applications, devices, and the cloud. Importantly, the testers should test the IoT system in real-time involving multiple conditions.

Simulation of the smart system through service virtualization
Since the success of an IoT ecosystem depends on the seamless interoperability of embedded devices across platforms, networks, geographies, and device states, testing becomes a challenge. However, with test automation and simulation of the above-mentioned environments, testers can identify the issues such systems can face in the real world.

Security testing of IoT systems
Arguably the biggest challenge to confront IoT devices is security. Since humongous sets of data are exchanged between appliances and embedded sensors, any vulnerability can be exploited. In fact, hackers can manipulate the devices to work according to their instructions. For example, a bank’s alarm and cameras may be deactivated by such people to commit a heist. Hence, any IoT device testing should focus on strengthening the security aspect by identifying and removing all bottlenecks and vulnerabilities. The focus should be on encrypting the data transfer mechanism.

Conclusion
The smart world of the future would be based to a large extent on the success of IoT devices. Also, any future challenges involving data security need to be tackled on a war footing through rigorous IoT testing. It is only when every sinew of the IoT ecosystem runs in harmony, the future of smart connectivity can be ensured.

How to accelerate your release cycles with Agile Testing



Agile testing needs to be aligned as per the business objectives of enterprises for accelerating the software release cycles. The processes to achieve the same include proper planning, meeting expectations, and testing early and frequently.

Staying competitive in today’s world of business requires consistent delivery of customer satisfaction through your products or services. If quality has emerged as a differentiator for enterprises to expand their customer base, enabling faster release cycles arguably comes next. With the traditional Software Development Life Cycle (SDLC) encompassing the waterfall method of testing, achieving quality and faster time to market has become difficult. This brings Agile testing into the equation where development and testing take place simultaneously instead of operating in their respective siloes.

How agile testing approach can accelerate the software release cycle

In the Agile form of software development life cycle of iterative development procedure, the requirements generate mainly from the end-customers and testing teams. The Agile software testing methodology is aligned to the customer requirements. The Agile application testing aims at delivering a product free of glitches and quickly to the market.

Further, agile testing services do not consider testing as a separate process but an integral part of the development cycle. Here, developers and testers work in cohesion as a single entity called sprint. These services are distinct from traditional testing comprising logging glitches, checking metrics, and writing detailed test cases. In agile methodology, instead of testing the code post development, it is done early and frequently. In fact, the testing team is engaged with testing and integration of sub-systems and features. It is observed that Agile practices do not always generate the likely outcomes enterprises set out to achieve. It is due to the fact that enterprises often embrace agile practices without adapting them to their IT environments, workflows, culture, or architecture. This means enterprises, while adopting agile, should be guided by their goals. Among the goals, the feedback loop needs to be shortened to fix the glitches quickly.

The agile methodology aims at delivering quality software at frequent intervals, speedily and consistently. This calls for better collaboration, flexibility, and transparency among the development and testing teams. The agile testing experts should ensure quality becomes everyone’s responsibility (both developers and testers). To reach the goal of identifying (and redressing) glitches early, testing should be conducted early and often in the SDLC.

However, since the process needs to be speedy and efficient, test automation becomes the key. It ensures copious lines of codes and variables are checked for glitches and integration against expected outcomes. Test automation prevents the code from showing unexpected results, defects, regressions, and cost escalation due to refactoring later. The metrics tell the detailed scope of testing comprising code coverage, the percentage of test automation coverage area, and the impact of glitches on the end-users. Switching between the old and new codes using toggles must be coupled with forward and backward compatibility. This is to ensure the code is not broken while enabling new functionalities. The entire process requires thorough architecture planning and deep knowledge of the code base.

A Microservices architecture entails breaking up the code into smaller units and assigning them to different teams. The final application can be built using any combination of the microservices provided the interfaces are properly defined and maintained. Since the microservices architecture requires less maintenance, it helps to improve the consistency and speed of software delivery.

How did we increase testing efficiency for a global technology enterprise?


A leading multi-national IT corporation reached out to us regarding severe testing inefficiencies in their Agile cycles. They were facing a serious crunch of the required skillset and were somehow managing with a limited pool of resources. Their business deliverables demanded highest quality in a rapidly changing Agile environment, which was rendered with inconsistent processes across the scrums. They had parallel scrum teams developed at multiple locations, which resulted in challenges in achieving test coverage and agility in communication with virtual teams.

The Agile mess that they had was screaming the sorry state of their Agile testing plan. Evidently, they needed a solid testing strategy to be designed, executed, and integrated with their Agile methodology.

We set up test environments at the developer’s locations to be virtually accessible to our off-shore testing team for revalidation in critical situations. A Quality Control dashboard was developed and maintained with interface to exchange server. The dashboard increased the scrum-level transparency and offered better control. We designed end-to-end processes and defined entry and exit criteria for all stages.

Adopting best practices across scrum teams helped achieve consistency across the parallel testing processes and cycles. A well-defined regression, mini regression, and automation coverage was achieved with the help of our solid test strategy supported by maintainable supporting artifacts. By leveraging automation techniques to cover at code level and capturing key inputs for high volumes of data for dozens of sites, we assisted with better planning. We established a disciplined communication model which ensured a seamless transition of tasks between scrum master and scrum leads.



Conclusion

To accelerate your software release cycles with the agile testing strategy, the entire process needs to move to a CI/CD pipeline. Implementing agile is similar to any change process involving challenges, bottlenecks, as well as, opportunities. If enterprises are sure about their objectives and the way to achieve them, the challenges would become opportunities for learning.

The definition of agile can mean different things to different people. However, it needs to be implemented as per the requirements and working pace of organizations. In pursuance of agile, there can be challenges in terms of aligning people and processes. In case of failures, it is worthwhile to remember that agile can engender failures but the same should be an opportunity to learn. Failures are acceptable provided the process of deployment is iterative and continuous.

Tuesday, 7 April 2020

The Ideal Strategy for Cloud Applications Testing



The cloud forms an integral part of the digital transformation process implemented by enterprises across verticals. It gives them the necessary leeway to cut infrastructure costs, improve productivity, and enhance the efficiency and delivery of software applications. The best part of using the cloud is its ability to expand capacity, accessibility, and security without burning a hole in the pocket. However, notwithstanding the slew of benefits to be derived from using the cloud platform, enterprises should ensure the quality of cloud-based applications to remain top-notch.

This is where cloud application testing comes into play wherein applications are tested for various aspects including performance before they reach the customers. Moreover, the applications ought to be tested for stability, security, scalability, and speed under various load thresholds. If not, the applications may suffer from inadequacies such as system failure, poor usability, lack of security, lack of throughput, functional issues, and many others. However, prior to going further with devising the strategy for cloud applications testing, let us know what cloud computing and testing are all about.

Why Cloud Computing and Testing?
Cloud computing is about using the resources that are available on the internet such as servers, software suites, and databases, among others. These resources can be accessed from anywhere and anytime and used for data access, storage, and management. Cloud computing allows individuals and enterprises to use internet-based resources without having to install costly infrastructure in-house.

Cloud testing is all about testing the quality of cloud-based applications by using internet-based resources such as software, hardware, and infrastructure. It helps enterprises to maintain/boost their competitiveness without hampering any mission-critical operations. Also, given the ability of enterprises to provision cloud-based resources on-demand, the former can shorten the resource allocation time.

Among the characteristics of a cloud environment is its ability to allow multiple users to access similar resources at the same time. This leads to considerable savings on time and faster delivery of the applications to the market. Although testing in a cloud environment is similar to a non-cloud one, there can be differences when it comes to performance testing. Further, the response time in testing can differ as well. Let us discuss the cloud testing strategy in detail.

The ideal strategy for cloud application testing

Alongside the priority toward accelerating the time to market, the applications developed on the cloud should be tested for their quality as well. The strategy should be formed according to the areas/factors where the test should focus on.
·       
Get load time information: Since testing can often be elaborate, it may entail consuming a fair amount of resources. So, before testing cloud-based applications, the information should be gathered from the cloud provider on the load shared by other customers. The info would give an insight into the response time for testing. Ideally, one should test an application when the load capacity is high to check the response time. The tests should run multiple times to ascertain the maximum, minimum, and average response time. The response time would give an idea about the extent to which the application needs to be scaled up when the need arises in real-time.
·       
Automation: When it comes to testing cloud-native applications, automation becomes essential. This is due to the fact that a lot of areas need to be tested simultaneously such as deployments, negative tasks, and functional actions, among others. Also, during cloud-based testing, a lot of variables are needed to be virtualized like end-users, which can be tested quickly and seamlessly with automation alone.
·       
Conduct stress test: Testers need to know the breaking point up to which the application can remain stable, reliable, and performing. Known as the stress test, it offers critical information about the behavior of applications when put under extreme pressure points. For example, eCommerce applications need to be tested for response times and performance when scores of users try to access them at the same time, like in the Black Friday sales event.
·       
Testing the virtual memory: The testers should conduct volume tests with the help of memory monitoring tools to look into the capacity and performance of the virtual memory. This is important to know the capacity of the virtual memory for testing the application.

Conclusion
Enterprises leverage the cloud platform to gain advantages such as speed, efficiency, scalability, and cost-effectiveness. However, the same can only be ensured should the application developed on cloud is tested for its performance. So, to build an ideal cloud testing strategy, various factors need to be considered, namely, the availability of resources and bandwidth, project environments, technology stack, skill sets, and business drivers, among others.