Data Drive

A flowchart path often involves filling of form fields with some data values. When we record such paths, the data we used during recording, gets hard coded in the steps. When we play this path back, the same values get input again and again in the form fields. There are 2 issues with it.
  1. Some form fields may need to be unique. Eg. You may not be able to register again using the same email address. Hence the test won't work with the same values.
  2. There is limited value in running a test with the same set of inputs. We need to exercise tests with different sets of data. Eg. We may need to check for various invalid email formats to check if validations are triggered correctly.
Flowcharts allows various ways to drive your test with data. There are four data driving capabilities of Flowcharts:

  1. Data Generators - For Uniqueness and Repeatability
  2. Positive Validations - For boundary values and validating against specific valid data
  3. Negative Validations - For UI validations
  4. Datasets - For data setup and inter-dependent entity objects
We will be learning in-depth about all these data driving capabilities in the later part of this course. However, to learn data driving, it is imperative to know about Entity in Flowcharts.

What is an Entity in Flowcharts?

Entities are objects that interact with each other in an application. Let's say, you need to create the following flow in an online shopping application.
  1. Login to the application
  2. Add a product to the shopping cart
  3. Apply discount coupon
  4. Logout
Consequently, you may need to do following verifications.
  1. Check if the user is logged in or not
  2. Check if the product details shown are correct
  3. Check if the coupon gets applied
  4. Check the cart total computed by the application is correct
  5. Check if the user is logged out
You can notice that these verifications are done through objects like user, cart, product, coupon, etc. We can observe that all the interactions within the application would be accomplished through these objects. Also, these objects have multiple attributes. For example, a user has attributes like first name, last name, gender, age, email id, etc.

All such objects that would interact with each other in your flows can be called entities.