May 20, 2019 in Software Testing News
The quality of a product or service plays the all-important role in differentiating a successful enterprise from an also-ran one. In the highly competitive digital era, the choice for enterprises to stay relevant, competitive, and customer centric is clear – offer superior quality products (and services) at equally high speed. The days of legacy systems and old paradigms seem to be numbered, for now, the thrust is towards incorporating new technologies and reimagining the business architecture to deliver the best customer experience. However, ensuring quality across the digital ecosystem comprising a multitude of device platforms, frameworks, operating systems, browsers, and networks, can be challenging.
The rapidly changing user preferences and the need to keep with the latest technology trends can overwhelm any enterprise worth its salt. Also, a significant section of the industry has adopted Agile and DevOps methodologies to achieve the above-mentioned objectives. The challenge, therefore, is to incorporate shift-left testing in the SDLC underpinned by test automation to achieve objectives such as – maximizing the test coverage area and offering Continuous Integration and Delivery solutions. Since the traditional model of quality assurance is found to be wanting in meeting these objectives, especially in the Agile-DevOps driven ecosystem, the need to adopt software quality engineering becomes inevitable.
What is Quality Engineering?
The digital transformation initiatives undertaken by enterprises to be with the times encompass simplification, modernization, and securing of the legacy systems and aligning them with the cutting-edge technologies of today. In this endeavour, quality needs to have a 360-degree approach that straddles the end-to-end spectrum of the SDLC. This is where enterprises need to employ independent quality engineering services driven by intelligent and automated processes. Thus, the process of quality engineering (QE) ensures the quality of software application is validated, enhanced, and analyzed throughout the SDLC.
It vastly differs with the traditional waterfall model where QA takes place in a silo at the end of the software development process. Moreover, QE rises above the shift-left QA process as well by performing both functions – detecting and preventing the occurrence of glitches. In other words, quality engineering is comprehensive, descriptive, effective, and vastly superior to the existing QA practices.
Importance of Software Quality Engineering in the Agile-DevOps driven world
In the Agile and DevOps models of development and testing, quality is optimized throughout the SDLC. Here, every stakeholder is made accountable to ensure the quality of the software application, which in practice, can suffer from infirmities. To put this conundrum in simple terms – since it is everyone’s responsibility to drive quality through rigour and discipline, no one seems to take ownership. In the absence of a disciplined mechanism to monitor quality, the exercise to shift towards Agile or DevOps becomes meaningless. Thus, even though the product may come out of the development cycle fast enough, its overall quality may leave much to be desired. Let us understand how enterprise quality engineering can help remedy the situation.
With QE, there is greater collaboration between developers and testers with the latter tasked with setting up the basic testing architecture to be relied upon for future testing exercises. QE can give a software quality engineer the requisite flexibility and wherewithal to increase the speed of testing by a long margin. This is done by incorporating test automation at the core of QE. It helps in not only executing both functional and non-functional testing but validating (and integrating) each layer of the application. Since the bulk of testing is executed through test automation, QE offers manual testers the much-needed flexibility to be innovative and exploratory. Moreover, on the lines of DevOps, QE engenders changes in processes, tools, and people’s approach (and skills). In addition to Agile and DevOps testing, the services offered by a quality engineering company would include test automation, service virtualization, security testing, performance testing, monitoring and analysis, and test data management.
In a day and age dominated by changing market dynamics reflected in mergers and acquisitions, emerging security challenges and the consequent emphasis on risk and compliance, data analytics, mobile commerce and others, customers as well as business stakeholders are increasingly relying on IT. To deliver the best customer experience across the value chain, testers are moving beyond shift-left testing. Software quality engineering helps enterprises to strengthen decision making, improve the delivery of quality services, and deliver business value to the end customers.
August 21, 2018 in Internet of Things
Mobile application testing is an elaborate exercise that involves selection of right automated tools, frameworks, devices and simulators, as it is essential to meet the user expectations. Today, a mobile phone is not merely a tool for communication anymore, for it has been transformed into a multi functional device. A device that straddles various technologies, platforms, networks, browsers, and operating systems. Even though mobile phone applications have made the world into a smaller place with better networking and quicker provisioning of information/products/services, they have put the task of developers (and testers) under strain.
With digital transformation making rapid ingress into the lives of people, mobile phone applications have become its many levers. The thrust towards accelerating the time to market with better quality apps has meant conducting rigorous mobile application testing. This is where, as mentioned before, the task of developers and testers has come under strain. The reasons can be many.
- Mobile applications need to be tested on a variety of devices, networks, browsers, platforms and operating systems.
- The mobile application testing process should be comprehensive and foolproof.
- Mobile apps delivered to the customers should be above board and must meet various security regulations.
- Mobile app development life-cycle should be shortened to deliver more
- The criticality of functional (unit, smoke, sanity, integration, regression, etc.) and non- functional testing (performance, security, penetration, usability, etc.) is equal where one cannot override the other.
- The advent of DevOps culture means the quality of an app should be maintained throughout its life-cycle.
To address the above mentioned challenges the need for mobile test automation has become imperative. And to that effect, the selection of mobile test automation tools is fraught with challenges. The challenges relate to the tool’s ability to perform across technology stacks, networks and platforms. To get an idea of the challenges involved, consider a mobile app to be tested across operating systems viz., Android, iOS and Windows, 15 odd devices, and similar combinations.
The number of tests needed to validate the mobile app against such a backdrop can be overwhelming. Thus, selecting an appropriate tool, be it open source or licensed, should involve a sound mobile testing strategy. The strategy includes knowing the test objectives and the costs involved. The cost is related to the price of automation tools, frameworks, resources and training the resources. Moreover, the relevant automation strategy for mobile testing should aim at achieving the desired test outcomes.
Building a relevant automation strategy for mobile testing
Identification of devices/frameworks/simulators
Since the automation framework runs on devices and simulators, its selection should uphold the quality of testing and optimize cost at the same time. A balance should be established between the use of simulators and devices. The simulators help in testing a variety of variables and parameters against desired outcomes and real devices provide suitable testing platforms to check usability and touch response. A mobile testing methodology involves conducting simulator testing followed by real device testing.
Know the application to be tested
A thorough analysis of the application to be tested should apprise testers of the type of tests to be conducted and the ones to be automated. This way, the specific requirements for automated tests as well as the kind of automated tool to be used can be determined. These can help in cost optimization, realization of ROI and for enhancing the test coverage area.
Choosing the right automation tool
The choice is dependent on a number of factors as listed below. However, care should be taken that once an automated tool is finalized all stakeholders should come on board.
- Cost of the tool. If open source tools do not lend themselves to all areas of testing, the use of licensed tools can be considered.
- Type of mobile operating system viz., Android, iOS and Windows.
- Possibility of reusing the script.
- Compatibility with various devices, browsers, platforms, languages, IDEs, and frameworks.
- Convenience of writing an automated script.
Choosing the right automation framework: The selection of an automated tool is followed by the kind of automation framework to be needed viz., keyword driven, data driven or hybrid. This is guided by the type of business scenarios and the size of the application to be tested.
While choosing the type of tests (functional and non-functional,) plan KPIs (coverage area, type of defects, etc.) and test scenarios that the application can face, such as fluctuations in user traffic, network conditions, device configurations, and much more.
As Gartner has stated, ‘The widespread popularity of mobile applications is creating opportunities for mobile application testing service providers in all segments. Technology business unit leaders must identify where rapid advancements in the market are occurring to compete in this crowded market.’
Selecting the right testing infrastructure (frameworks, tools, platforms and strategies) for mobile app testing leads to better test outcomes. This goes a long way in achieving market competitiveness for the product and ROI for the business.