App Testing
App Testing
Share
On This Page
Overview
Unit testing
User interface (UI) testing
Performance testing
Feedback
Overview
Copy link to clipboard
This page is about the ways you can test and validate your Appian applications. Testing
is an important part of the application life cycle—it’s how you can ensure that your
application is ready for deployment and use.
Testing is an on-going activity and instills confidence that your application will work as
you expect it to. Before you start writing tests, you should decide what kind of testing
your application needs and how much time you need to invest in it.
There are three types of testing you can do with Appian: Unit Testing, User Interface
(UI) Testing, and Performance Testing.
Unit testing
Copy link to clipboard
Unit testing focuses on the smallest testable parts of your application. The goal is to
validate that your logic or rules behave as expected under various conditions. For
example, you should test display and validation logic as you’re developing an interface,
rather than waiting until the end of your development cycle to test it.
Objects with rule inputs, such as integrations and expression rules, support either
default test values or test cases. You can continuously test these objects with different
data values as you develop them.
This type of testing also applies to process models. As you add more logic and nodes to
your model, you should test your changes by starting a process for debugging.
For expression rules, you can save your test conditions as test cases. This allows you
to reuse them for regression tests and documents important edge cases for other
Appian developers who might modify the rule in the future. You can execute these test
cases in bulk using the Manage Test Cases dialog. You can also automate running
these test cases with Jenkins.
When you inspect a package during direct deployments, you will be reminded to
address any missing test coverage and run the test cases for packaged rules. Running
test cases before you deploy is the best way to ensure modifications have not
negatively impacted any existing rules.
Testing from a user’s perspective validates the end-to-end experience and your design
choices. You should do it early and often as you’re developing to make sure your
application meets the user’s needs. For example, if you have a related action that
updates record data, UI testing ensures that the correct users can access the form and
that the information is updated successfully.
Appian supports three functional UI testing tools: FitNesse for Appian, Cucumber for
Appian, and Appian Selenium API. These tools support behavior-driven development
(BDD) by allowing you to easily write test cases in user-friendly text and run them with
the click of a button. Since we update these tools to be backwards compatible with
every Appian release, they are more robust than regular webdriver testing.
To achieve all the benefits of continuous integration through automated testing, refer to
the DevOps Quickstart on how to implement the full pipeline.
Performance testing
Copy link to clipboard
Performance testing ensures that your application will scale and behave as expected
during production-like or peak usage. When making changes you should take into
consideration the size of your data and the frequency of each action. For example, how
well will your application perform if you have a record grid with many rows of data and
you have “x” number of users who need to interact with the data on that grid.
It’s important to plan for performance testing early on and test performance before
major releases. Appian can be used with tools, like JMeter and Locust, that allow you to
efficiently automate load testing. For more information about application performance
testing, see Monitor Appian Applications
Test Automation Best Practices
In this article
Decide What Test Cases to Automate
Conclusion
There are a lot of reasons test automation is beneficial, and by adhering to automated
testing best practices you can ensure that your testing strateagy delivers the maximum
return on investment (ROI). Automated testing will shorten your development cycles,
avoid cumbersome repetitive tasks and help improve software quality but how do you
get started? These best practices a successful foundation to start improving your
software quality.
Thorough testing is crucial to the success of a software product. If your software doesn’t
work properly, chances are strong that most people won’t buy or use it…at least not for
long. But testing to find defects – or bugs – is time-consuming, expensive, often
repetitive, and subject to human error. Automated testing, in which Quality Assurance
teams use software tools to run detailed, repetitive, and data-intensive tests
automatically, helps teams improve software quality and make the most of their always-
limited testing resources. Test automation tools like TestComplete help teams test
faster, allows them to test substantially more code, improves test accuracy, and frees
up QA engineers so they can focus on tests that require manual attention and their
unique human skills.
Use these top tips to ensure that your software testing is successful and you get the
maximum return on investment (ROI):
1. Decide what Test Cases to Automate
The benefit of automated testing is linked to how many times a given test can be
repeated. Tests that are only performed a few times are better left for manual testing.
Good test cases for automation are ones that are run frequently and require large
amounts of data to perform the same action.
You can get the most benefit out of your automated testing efforts by automating:
Tests that run on several different hardware or software platforms and configurations.
Tests that take a lot of effort and time when manual testing.
Success in test automation requires careful planning and design work. Start out by
creating an automation plan. This allows you to identify the initial set of tests to
automate, and serve as a guide for future tests. First, you should define your goal for
automated testing and determine which types of tests to automate. There are a few
different types of testing, and each has its place in the testing process. For instance,
unit testing is used to test a small part of the intended application. To test a certain
piece of the application’s UI, you would use functional or GUI testing.
After determining your goal and which types of tests to automate, you should decide
what actions your automated tests will perform. Don’t just create test steps that test
various aspects of the application’s behavior at one time. Large, complex automated
tests are difficult to edit and debug. It is best to divide your tests into several logical,
smaller tests. It makes your test environment more coherent and manageable and
allows you to share test code, test data and processes. You will get more opportunities
to update your automated tests just by adding small tests that address new functionality.
Test the functionality of your application as you add it, rather than waiting until the whole
feature is implemented.
When creating tests, try to keep them small and focused on one objective. For example,
separate tests for read-only versus read/write tests. This allows you to use these
individual tests repeatedly without including them in every automated test.
Once you create several simple automated tests, you can group your tests into one,
larger automated test. You can organize automated tests by the application’s functional
area, major/minor division in the application, common functions or a base set of test
data. If an automated test refers to other tests, you may need to create a test tree,
where you can run tests in a specific order.
Support for your platforms and technology. Are you testing .Net, C# or WPF applications and
on what operating systems? Are you going to test web applications? Do you need support for
mobile application testing? Do you work with Android or iOS, or do you work with both
operating systems?
Flexibility for testers of all skill levels. Can your QA department write automated test
Feature rich but also easy to create automated tests. Does the automated testing
tests; does it include features for implementing checkpoints to verify values, databases, or
Create automated tests that are reusable, maintainable and resistant to changes in the
Integrate with your existing ecosystem. Does your tool integrate with your CI/CD pipeline
such as Jenkins or Azure DevOps? Or your test management framework such as Zephyr?
What about a defect-management system like Jira, or a source control such as Git?
Ability to test enterprise applications. Does your tool offer out-of-the box support to test
You should also collaborate on your automated testing project with other QA engineers
in your department. Testing performed by a team is more effective for finding defects
and the right automated testing tool allows you to share your projects with several
testers.
Typically, you create test data manually and then save it to the desired data storage.
However, TestComplete provides you with the Data Generator that assists you in
creating Table variables and Excel files that store test data. This approach lets you
generate data of the desired type (integer numbers, strings, boolean values and so on)
and automatically save this data to the specified variable or file. Using this feature, you
decrease the time spent on preparing test data for data-driven tests. For more
information on generating test data with TestComplete, see the Using Data Generators
section in TestComplete’s help.
Creating test data for your automated tests is boring, but you should invest time and
effort into creating data that is well structured. With good test data available, writing
automated tests becomes a lot easier. The earlier you create good-quality data, the
easier it is to extend existing automated tests along with the application's development.
Conclusion
The best practices described in this article are the path to successful test automation
implementation. TestComplete includes a number of features that help you follow these
best practices:
TestComplete allows you to divide your test into individual test parts, called test items test
items, and organize them in a tree-like structure. It lets you repeatedly use individual tests
TestComplete supports keyword-driven testing. These automated tests can be easily created
TestComplete supports five scripting languages that can be used for creating automated test
With TestComplete, QA engineers can share a test project with their team.
TestComplete offers a Name Mapping feature that allows you to create unique names for
processes, windows, controls and other objects. It makes your object names and tests
clearer and easier to understand, as well as, independent of all object properties and less
prone to errors if the UI changes. This feature allows you to test your application successfully
even in the early stages of the applications life cycle when the GUI changes often.
There are a lot of other features that TestComplete provides to help you get started quickly
Adapting these recommended best practices and using TestComplete’s features can
help you avoid common mistakes and improve your automated testing process. This
helps you test faster, save money and get your products released on time. If you
haven’t tried TestComplete, download and try it today for 30 days.
Article