Turn your manual testers into automation experts! Request a DemoStart testRigor Free

ProcessMaker Testing

Every company runs various processes to get tasks done. For example, a company’s HR department will get overwhelmed with the manual onboarding of new employees. The process is time-consuming and prone to errors, involving numerous steps such as gathering personal information, signing documents, setting up workstations, granting access to systems, and enrolling in benefits programs. Each step requires coordination between different departments, including HR, IT, and finance, making the process slow and inefficient.

In such situations, you can leverage process management tools to transform a complex, multi-departmental process into a streamlined, efficient operation benefiting the organization and its employees.

About ProcessMaker

ProcessMaker is a business process management (BPM) and workflow management software suite that allows organizations to design, automate, and deploy business processes. Businesses can use it to model their processes in a graphical interface, enabling a clear visualization of each step.

ProcessMaker offers the following features:

  • Drag-and-drop process modeling: This allows users to create workflow diagrams using BPMN (Business Process Model and Notation) standards, making it easier to define and modify business processes.
  • Form builder: This enables the creation of custom web forms without the need for coding, which can be used to collect and manage data as part of the workflows.
  • Workflow automation: You can automate the execution of business processes and manage tasks, notifications, and data flow between different stakeholders and systems.
  • Reporting and analytics: ProcessMaker has reporting tools that generate insights into process performance, helping organizations monitor efficiency and identify areas for improvement.
  • Integration capabilities: ProcessMaker can integrate with various external systems and applications, such as ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), and databases, through API connections, enhancing its flexibility and utility in different IT environments.
  • Access control and permissions: Provides robust security features, including role-based access control, to ensure that sensitive information and tasks are only accessible to authorized users.

You can fully customize the open-source version to fit your specific needs. This includes modifying the code, adding features, and integrating with other applications. Compared to the paid Enterprise Edition, the Community Edition has fewer features. For example, it lacks advanced reporting, user management, and security options.

ProcessMaker itself is built primarily on PHP. Customization will require some technical expertise in PHP and web development. You can test your ProcessMaker customizations through

  • Unit testing
  • Integration testing
  • End-to-end testing

ProcessMaker unit testing

When customizing ProcessMaker, especially when adding custom PHP code, plugins, or script tasks, implementing unit testing is crucial to ensure that your customizations work as intended and do not introduce bugs into the system.

Unit testing is the first level check you can do on your code to ensure it is doing what it should. They are lightweight tests that tend to focus on validating single outcomes. These tests target various code units, like functions, classes, and APIs. Begin with unit testing the most critical parts of your customization and gradually expand your test coverage.

Here are some of the most commonly used ones.

PHPUnit

PHPUnit is a popular unit testing framework for PHP, the primary language used for ProcessMaker customizations. It allows you to write test cases to check the functionality of your custom PHP code, ensuring it performs correctly under various conditions. It offers code coverage analysis, assertions to check for various conditions, and the ability to mock objects.

Here’s a simple example of a unit test for a calculator function in PHP.
// File: CalculatorTest.php
use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase
{
  public function testAdd()
  {
    $calculator = new Calculator();
    $result = $calculator->add(2, 3);
    $this->assertEquals(5, $result);
  }
}

Codeception

Codeception is a full-stack testing framework for PHP that encompasses unit tests, application tests, and acceptance tests. It is versatile and can be used to test the system at different levels, from individual functions to complete user scenarios. It offers a rich set of modules for testing RESTful APIs, browser testing, and many other functions.

ProcessMaker integration testing

It is crucial to ensure that different components of ProcessMaker, along with any customizations or integrations with external systems, work together seamlessly as a whole. Through integration testing, we test all those junctions where noteworthy integrations occur. When testing code that interacts with other parts of ProcessMaker, use mocking techniques to isolate your tests and avoid external dependencies.

Here are examples where integration testing is essential during the testing of ProcessMaker customizations:

  • Custom triggers and external databases: When custom triggers are designed to interact with external databases for retrieving or inserting data, integration testing is needed to verify that the triggers correctly communicate with these databases, handle data accurately, and manage error conditions gracefully.
  • Workflow transitions and actions: Integration testing is essential when custom workflows involve complex transitions, conditional logic, or automated actions based on user inputs or external data sources. This ensures that workflows operate as designed across various scenarios and that data flows correctly between different tasks and forms.
  • Third-party service integrations: If your ProcessMaker customization involves integrating with third-party services like ERP systems, HR platforms, or cloud services, integration testing must confirm that API calls are correctly made and responses are appropriately handled. This includes testing authentication mechanisms, data mapping, and handling API rate limits or errors.
  • User authentication and role-based access control: When implementing custom authentication methods or role-based access controls, integration testing verifies that these security measures work as intended. This includes testing integration with LDAP/AD, SSO mechanisms, or custom user roles and permissions, ensuring that users have appropriate access to tasks, forms, and data.
  • Plugin and extension interoperability: If you’ve developed or installed plugins and extensions to extend ProcessMaker’s functionality, integration testing is needed to ensure these additions do not conflict with each other or with the core ProcessMaker functionality. This is crucial for maintaining system stability and user experience.
  • Form data handling and validation: For customizations involving complex forms with custom validation logic or dynamic form elements based on external data, integration testing ensures that forms behave as expected. This includes validating user inputs, handling form submissions, and updating UI elements based on backend logic.
  • Notifications and communication channels: When custom workflows include automated notifications via email, SMS, or other communication channels, integration testing verifies that these notifications are triggered at the correct workflow stages, contain accurate information, and reach the intended recipients.
  • Reporting and analytics: For customizations that involve generating reports or analytics based on workflow data, integration testing is necessary to ensure that reports accurately reflect the data from completed workflows, integrations, and user actions. This includes testing data aggregation logic and the correct functioning of reporting tools or dashboards.

ProcessMaker end-to-end testing

So far, we have focused on ensuring that the code is well-written and doesn’t give rise to any bugs. Now, let’s take a look at how the entire system behaves when tested as a whole. You are now interacting with the system like an end user would.

End-to-end testing is an important part of the QA process as it previews the user’s experience when working with the system. Quite often than not, as developers and testers, we overlook certain system aspects that we know only because we are familiar with the internal workings. These points may not be obvious to end users and must not be taken for granted.

While ProcessMaker doesn’t offer a dedicated tool for end-to-end testing, it provides some functionalities and supports various approaches to facilitate end-to-end testing of your workflows.

  • Process simulation: This allows you to execute the workflow with sample data and verify overall behavior, catching basic flow issues.
  • Logs and reports: This provides insights into user actions and system events during workflow execution, helping identify potential problems.

You can automate your end-to-end testing using tools and frameworks in the market. Here are some that can help you.

Behat

Behat is well-suited for end-to-end testing because it allows you to write tests in a human-readable language that non-technical stakeholders understand, which is Gherkin. It is a plain-text language that allows you to describe software behaviors without detailing how that functionality is implemented. Gherkin uses a set of special keywords to give structure and meaning to executable specifications.

Behat integrates with your PHP application and allows you to define, in your feature files, how your application should behave. Each step in a Gherkin scenario is matched to a PHP function that Behat calls when it executes the scenario. These functions are known as step definitions, allowing Behat to interact with your application.

For UI-based testing, you can integrate Behat with Selenium. However, this entire setup has its drawbacks as it makes the testing process lengthy and difficult to maintain, requiring a niche group of professionals who can code everything here.

Selenium

One of the most widely used automation testing tools is Selenium. It is useful for acceptance testing and ensures that your ProcessMaker customizations work correctly from a user’s perspective in a real-world scenario.

Being an open-source automated testing framework used for web applications, it provides tools that allow developers and testers to write scripts that can automate web browser actions, mimicking real user interactions with web pages. These interactions include navigating to URLs, filling out forms, clicking buttons, and fetching displayed values, which can be used to verify the correctness of web applications across different browsers and platforms.

Selenium, however, has its own set of drawbacks when used for end-to-end testing, forcing testers to look for other alternatives. Read here the 11 reasons why not to use Selenium.

testRigor

The thing about writing end-to-end test cases is that you need to know business processes to test these complex workflows. Most tools complicate the process by entangling testers in the testing tool’s technical nitty-gritty, like knowing a programming language, maintaining the test cases, and slow test execution, to name a few.

Luckily, tools in the market like testRigor enable you to bypass these problems. This one-of-a-kind AI-based test automation tool can be used to automate simple as well as complex end-to-end test cases. This can be done for applications operating across platforms.

Writing tests in testRigor is very easy. Write test steps in plain English using its generative AI capabilities without writing any other code. The AI engine is smart enough to understand and identify what web element you are talking about and execute test cases.

Though they have a rich library of English commands, you can write your own custom commands, like reusable rules, define them using plain English statements, and use them across test cases. Here’s an example of this.
login as manager //custom rule
click on “My Dashboard”
click on table “table table-responsive table-striped table-hover table-bordered
” at row containing stored value “orderName” and column “Actions”
verify form details and generate feedback //custom rule
enter stored value “feedback” in “Feedback”
click on “Submit”

The use of AI does not stop at this. testRigor uses AI to make test maintenance negligible and helps you continue to focus on creating quality test cases rather than fixing exceptions and XPath/CSS identifiers of elements.

You can do a lot more with testRigor. Check out this tool’s features over here.

Conclusion

ProcessMaker is a great way to go when it comes to creating business workflows easily. You can use their community edition, which is open-source, or opt for their enterprise version. If you intend to customize ProcessMaker, then make sure to opt for testing tools that help you automate various stages of testing.

Join the next wave of functional testing now.
A testRigor specialist will walk you through our platform with a custom demo.
Related Articles

Azure Testing

Microsoft Azure’s initial focus was on web hosting and data storage, which is ideally suited for web developers. ...

AWS Testing

Launched in 2006, AWS (Amazon Web Services) has grown into one of the world’s most comprehensive and widely adopted cloud ...

Slack Testing

Slack has become a fundamental tool for many organizations worldwide for enhancing collaboration and productivity across various ...