A Business Process Management (BPM) project implementation is almost always a highly iterative process. In order to realize return on investment sooner rather than later, a full scale BPM project can be designed to implement sub-projects that capture immediate ROI. But even if a full scale BPM system is to be implemented all at once, the agile methodology provides tremendous benefits to project design.
In this article, we will discuss how an agile methodology can be applied to BPM system testing and how it fits into a BPM software implementation.
Purpose and Process Flow
The purpose of software and systems testing can be defined as having three broad goals:
- discovering design flaws
- establishing increased confidence in system and software quality
- providing information for making project decisions
Areas of testing can be divided into two broad categories:
- functional testing; user-based software, workflow, data manipulation, reporting, etc.
- non-functional testing; system performance, availability, disaster recovery, etc.
Testing is generally done at various levels of system complexity and completeness:
- unit testing
- integration testing
- user acceptance testing
- instance migration testing
- globalization testing
- mobile and browser testing
The agile methodology usually implies that each of these test levels are being done all the time. Once a unit successfully completes its test, it is tested with one or more other units that are integrated. After a suitable number of units have been successfully integrated and deemed ready, it is turned over to system users to test and gain their approval. All along this line of development and testing, defects may be found that require fixing, and are returned back up the development chain.
All the while, other parts of the overall system are going through a similar process.
Environmental and Human Resource Requirements
As a general rule, a dedicated systems testing environment is required. In a large-scale BPM project, usually multiple testing environments are used. Functional and non-functional systems will need their own test environments before full integration can be accomplished. Then, once there is any kind of implementation to the production environment, the migration process from test to production itself should be fully tested. Effective project management in a large agile BPM implementation is critical to overall success and can be quite a challenge.
Adequate human resources are also critical to success. System users, business analysts, system architects, business process experts, technicians, and others need to be available and coordinated when testing is required.
Regression and Performance Testing
In addition to a continuous process of iterative testing, regression testing is required to insure against introducing problems into areas don't fall directly within the area under development. This is especially important for agile methodologies where new features or fixes are regularly moved to the production environment.
Regression testing is the establishment of a series of functional and non-functional tests that are to be executed whenever there is any kind of change to the system.
Part of regression testing is the establishment of baselines to test against. Two things can make regression testing efficient and effective.
- Create relatively unchanging and reliable data sets and test procedures for testing throughout the system.
- Take advantage of testing automation tools, such as test case management software, especially where applicable to mobile and web technologies. Automation tools can also be an aid in managing human resources.
Performance testing demonstrates system responsiveness and stability within a variety of workload simulations. Areas to test include:
- physical hardware
- operating system
- server, database, messaging
Make sure your performance goals meet the needs of the business. Objectives should be clear and measurable. Monitoring tools can enable ongoing measurement of all running systems. These tools can help to identify, analyze, and troubleshoot performance problems and bottlenecks.
Implementing a BPM system and process improvement project can transform an organization for the better. The teamwork, focus, and commitment required will find their ultimate fulfillment through a robust testing plan.