Businesses worldwide are automating their processes to improve efficiency and reduce costs. The primary objective behind Business Process Automation (BPA) is to generalize processes in order to improve process efficiency and streamline workflow. BPA plays a key role in improving process efficiency by allowing organizations to improve their service levels by integrating various services and connectors. BPA is now an increasingly popular concept as more and more businesses are adopting this emerging trend. So, what are the challenges faced by the industry while implementing BPM? Is software testing a challenge while developing applications using BPM tools? And what is workflow testing? What strategy needs to be followed to execute business workflow testing? Let’s find out.
In order to perform software testing of applications developed using popular BPM tools such as Bonitasoft, you need to undertake two types of testing:
- Workflow Testing
- Performance testing
Let’s try and focus on these two types of software testing from a BPM perspective.
As we know, functional testing is a key factor to enhance the quality of software applications, be it web-based, standalone applications or business process software’s. Functional testing is carried out to deliver a defect-free software product, it not only helps us to find out if all software requirements have been met and all functions are being performed as anticipated.
Within the functional testing, we are also witnessing a new software testing trend, which is being termed as ‘workflow testing’. It is a type of functional testing that is being performed keeping in view business process workflow. Business workflow testing not only presents us with a lot of exciting opportunities but also new set of challenges. The primary goal of workflow testing is to ascertain if the functionality of BPM application and process workflow is performing as expected on all supported browsers and operating systems, with all integrations (integration validation) in place. Workflow testing is a specialized sub-testing domain that requires in-depth knowledge of business process flow.
While performing workflow testing, a software tester (workflow tester) is expected to understand the entire process flow and the goals of automation. This would help a workflow tester to have a clear understanding, on the way the process is moving ahead (step-by-step). It also provides an insight on the various rules, events, notification, tasks that are assigned to various roles. A workflow tester should not only focus on the functional aspect of the process, but also on the performance and security aspects of the software application.
Workflow Testing Vs Traditional Web Application Testing
Testing a software application created using a BPM workflow tool such as Bonitasoft is a completely different ballgame vis-à-vis testing traditional web applications. At an elementary level, business process is a combination of single events that merge with other events to develop into a collection of events (workflow). These events are performed by individuals assigned with varying roles within an organization, which are directed towards achieving a common business goal. When a process is optimized, it constantly requires to be tested to maintain its quality.
Apart from validating basic workflow process paths, a lot of other aspects of workflow demand testing as well. Business processes often send data to various systems, integrate with web services, create events, send notifications, and assign workflow tasks that may have their own rules. Businesses need to verify all these tasks from a quality assurance perspective as well. The overall responsibility of work flow testing is to extensively test the software applications and business process work flow before it is deployed in a live environment.
Businesses need to be cautious while introducing new requirements half-way through, as there is always a risk of new bugs being introduced along the way. How can you avoid this? A good amount of regression testing needs to be carried out on a process workflow to validate the changes taking place in a process. All things considered, it is time that quality assurance should shift the focus from traditional testing to business workflow testing.
Generally, the defects reported in a workflow testing process are straight forward and often high severity defects, distinctly varying from the traditional web application defects. The majority of defects results in the following errors:
- Page not found (404 error)
- Service not available
- Connector errors
- Task unassigned
Functional Testing – Phases
Implementing a functional testing strategy in phases is an ideal way to determine the quality of a business process workflow. These phases can be integrated by adopting agile best practices to perform functional testing of process workflow, when application development has been carried out using agile methodologies.
Workflow Testing Strategy
How to Create a Workflow Testing Methodology?
A workflow testing methodology allows better management of workflow testing, it should be segregated into three broad categories:
Phase 1 – Workflow Analysis
- Analyze and understand the requirements by going through the required documents provided by clients.
- Understand the as-is business process.
- Figure out the requirement for to-be process (such as processes, associated business rules, system interfaces, reporting etc.).
- Prepare the business process model blueprint (To Be process).
- Explore the Bonita portal to understand the tools, process and different Features.
- Analyze the test data, which needs to be used to upload into source location.
- Understand and analyze the production data (customer master and company records).
- Analyze the test data that need to be created to run the process successfully without any interruptions for developers and testing team.
Phase 2 – Workflow Designing
- Prepare workflow test plan based on an understanding of the business processes, events and rules.
- Identify rule based scenarios. Below are the different rules that can be used in a business process.
- Workflow Group Users
- Process Manager
- Create detailed workflow test cases based on the defined user story of the workflow.
- Segregate test cases into different types to create the regression suite.
- Business Process Test Cases (Based on the different KPI’s)
- Reports (Open, Closed and AtPhone Call)
- Based on the rules
- Review the workflow test cases with the team (make sure you did not miss a single path).
- Identify the regression workflow test cases and list these in a separate document.
- Prepare various combinations of test data, based on rules.
Phase 3 – Workflow Execution and Monitoring
- Execute workflow test cases based on the rules and tasks.
- Identify defects and log these onto defect tracking tools.
- Perform re-testing of the business process features.
- Perform regression testing on every build after retesting of a particular defect or a feature (On Entire Business Process).
- Re-open defects (if any).
- Publish the status reports to your teams.
- Test Case Execution Report
- Defect Report
- Regression Test Report
- Re-test Report
Performance testing is an important aspect, when it comes to testing BPM applications. It is conducted after ensuring that the application is stable. Undertaking performance testing is important as a functionally tested application may fail in a production environment due to its inability to meet customer requests in a stipulated time. Apart from the response of the application, there could be various other issues in a production environment, which include scalability issues, memory leakage, application crashes while serving multiple user requests and application server hardware bottlenecks etc.
To reduce the extent of performance issues in a production environment, it is recommended to undertake performance testing manually or by using any open source or commercial tools available in the market. Below is an example to make workflow testing concept more clear to the end-users, this would help ascertain under what circumstance a performance test needs to be performed.
Workflow Test Case Example
A team performed rigorous performance tests by placing multiple records ranging from 100 to 4000 records in a given time interval. It was performed for the following reasons:
- Workflow process contained connectors and subsystems with multiple stages and every task required approval/rejection at each stage by authorized users.
- BPM application was being deployed in a bundled environment to provide high accessibility to the end users for completing various tasks.
- Application workflow comprised certain external systems to complete processes such as sending emails, fetching data from external web services, sending the data into back-end and using the same in the current process.
Analyzing Performance Testing Result
Analysis of test results is an important activity in load testing, as it helps a workflow tester identify various performance bottlenecks. Some of the metrics that need to be gathered during performance testing include:
- Resource(CPU) utilization
- Memory utilization
- Average Response Time
- Concurrent Users
Sample Load Test Statistics
Over a period there have been major changes in the way a process workflow is implemented. Workflow testing process requires a slightly different testing approach, when compared to traditional application testing. A strategy used to testing a typical web application may not be highly effective here. Therefore, while performing a workflow testing, a workflow tester’s approach and thinking need to be out-of-the-box and workflow requirements should always be kept in mind. In a typical workflow testing environment several changes could take place in the backend of the process and may not be visible on the front-end (web), it is a challenge for a workflow tester to figure these things out. When a workflow testing strategy is aligned with functional/performance testing, it will be more effective.
|Natesh Kumar Chetty is a Software Test Engineer at Evoke Technologies. He has exhaustive experience in the field of Functional Testing, Test Automation, Database Testing and Web-Services Testing.