Showing posts with label software testing. Show all posts
Showing posts with label software testing. Show all posts

Thursday, 9 April 2020

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.

Friday, 24 January 2020

How To Approach The Testing of ERP Application



ERP applications have become critical for the smooth running of enterprises. Since these comprise myriad modules, functions, and processes, the need to validate them becomes critical.
Enterprises are realizing the need to leverage the SMAC (Social, Mobile, Analytics, and Cloud) model to accelerate growth. However, overhauling core processes administered by legacy ERP applications is equally critical. ERP applications help enterprises manage various functions, departments, and processes, including the data generated therein.
These applications help enterprises to run as one single unit and, in the process, generate outcomes such as improved productivity, better efficiency, reduced waste, enhanced customer experience, and increased ROI. In view of the criticality of ERP applications for organizations, they should be tested and validated. Testing ERP applications can ensure the smooth functioning of multiple tasks within organizations. These may include tracking inventory and customer transactions, managing finances and human resources, among many others.

What is ERP?
Enterprise Resource Planning aka ERP is a comprehensive software that integrates the various functions of an organization into a single system. The software has a shared database containing all information pertaining to the various functions or units of an organization. The ERP system helps to streamline the processes and access to information across the organization 24×7.
Why is ERP software testing needed?
ERP software is cost-intensive and requires a lot of investment in time and effort. Every ERP software comes with multiple versions and requires customization to suit specific business requisites. Moreover, since every element in the application is connected to some other module, upgrading them can be a challenging task. For example, creating a sales order would need access to the inventory management module. If any of the modules does not function to its optimum, the entire ERP application may be impacted. This can have a cascading effect on the performance of the company as well as create bad customer experiences. Hence, testing ERP applications shall ensure the correct implementation of the software and prevent crashes.
ERP software testing, besides checking the software’s functionalities, should ensure the generation of reports and forms accurately. By identifying and removing bugs during the testing phase, testers can avoid facing post-implementation blues. Moreover, it can lead to an early adoption of software and ensure its smooth running. ERP application testing services validate business processes, functions, and the rules governing them. They help reduce operational risks within the constraints of available resources and time.
The importance of automated ERP testing
Since the ERP system contains huge volumes of data, testing the manual procedures can be time and cost intensive. Automated testing can help to validate all the features and functionalities in minimum time and cost. Also, since multiple business units of an organization can have different processes or procedures, automated testing can check the accuracy of their output against specific parameters. Further, the ERP system needs to be updated periodically with the advent of new technologies like Cloud, Big Data, and Mobility, among others. Such updates help the organization to validate transactions in real-time, which is not possible manually.
Best available ERP testing tools
Since the ERP systems are available in multiple versions targeting multiple domains, units, and customers, the best testing tools available are:
·         Microsoft Dynamics NAV – For SMEs
·         SAP Insurance – For insurance companies
·         Microsoft Dynamics AX – For large scale enterprises
·         SAP Banking – For the banking sector
Approaching the testing of ERP applications
It is imperative for enterprises to set up a robust testing strategy. The strategy should prioritize the testing of processes depending on the short and long-term goals.


Setting up KPIs:
At the outset, testers should setup the KPIs or performance metrics and evaluate how they will impact the overall organizational goal as well as departmental objectives. Thus, establishing the KPIs will help derive the right ROI for the organization.
All-encompassing:
ERP implementation for a large organization with many departments and processes can be a complex and challenging job. However, it is important that all stakeholders are taken into confidence and involved in the process. The process also includes making the necessary investment in training. When everyone is involved in ERP implementation, there is more cohesiveness in the administration of the software.
Data migration:
An organization can plan its strategic moves if it can make use of its data emanating from various processes over a period. To ensure real data is not lost or distorted in any way during ERP validation and testing, its proper migration process should be planned beforehand.
Selecting the right automation tools:
As ERP software can have myriad variables interfacing with various processes, they need to be validated. This requires choosing the right test automation tools – open-source or premium ones. Automated ERP testing can validate many variables for various processes against expected outcomes. The right automation tool will help testers to write and execute test cases.
Identifying test cases:
Since it is not possible to test every sinew of an ERP application, proper test cases should be written to ensure the maximum test coverage. Thus, testers should identify the test cases for each test and document them as well. Also, since ERP processes are linked to each other, and even to third-party applications or modules, they should undergo automated ERP testing.
Conducting performance, regression, and security tests:
As an ERP system helps to run the operations of an enterprise as a single unit, it should run some critical tests. These include regression, performance, integration, security, and usability tests. This way the enterprise can ensure continuous monitoring of the system, save time and cost, and prevent any sudden downtime or latency.
Proper documentation:
Post testing of components in the ERP system, the documented glitches ought to be analyzed to preempt any failure in a real environment. Moreover, the reports can be used for future reference.

Conclusion
To sustain in the competitive business environment of today, businesses need to take digital initiatives such as implementing an ERP solution. However, to ensure the successful running of such a solution and derive benefits out of it, enterprises should carry out ERP testing. The approach for such a testing should involve automation and carrying out various types of testing.


This article is already published on softwaretestingmaterial.com