Skip to content

Development Workflows

Matt Brown edited this page Dec 13, 2021 · 6 revisions

In this section you'll find information related to the various development workflows for establishing a healthy and successful Eggplant project.


'Test Case'-Driven Model Development

You may be familiar with the development process called Test-Driven Development or TDD wherein software requirements are expressed within a unit or integration test before writing the necessary code. This process helps to encourage simple design by focusing on only necessary additions to the codebase while also inspiring confidence in the product and allowing bold changes through a strategy that emphasizes tests for all features. By extending this process into the Eggplant ecosystem, we leverage the strengths of the exploratory model while providing targeted coverage to high-value user journeys. The is referred to as 'Test Case'-Driven Model Development (TCDMD) and is completed as follows (see diagram):

  1. Test Case Refinement
    Before you can begin modeling or automating your test case, you need to first identify a valid automation candidate. This process is described in detail here and helps to ensure proper consideration is taken to accurately convey all relevant business and testing logic within the model. Additionally, you are able to extract the primary goal or purpose of the target test case, providing contextual constraint to the scope of your work.

  2. Create/Enhance AI Model
    Now, after having identified the target of your automation, you can begin to model the corresponding feature(s) and user journey(s). This step of TCDMD is the TDD-equivalent of writing a failing unit test; our model is the test harness, but it's not executing anything yet. If you do not yet have a model for this feature, your new model may look very linear -- this is expected. Just remember that the strength of the model is going to be exploratory executions; it's meant to be a graphical representation of what the user could do, not necessarily what they should do. Over time, your models will begin to express an increasing number of user journeys through the various decision and action gates within your SUT.

  3. Snippet Creation
    With your model constructed and representing the user journey as outlined in the test case, you now must write and attach the necessary snippets. The model helps to provide a soft constraint on what additions or changes to your codebase are required. Once the snippets have been connected through the Designer interface, the process is nearly complete.

  4. Build Test Case
    At this point, you have an exploratory model (and associated automation snippets) that could execute in a specific pattern which would align with your target test case. However, when it's time for regression-testing, you still need to ensure that certain high-priority test cases have been executed successfully. For this reason, you'll want to build some way to run this specific user journey on demand. You can do this by (A) defining a test case within the model using the Test Case Builder, or (B) writing a script that simply calls the snippets you've written within a specific order.

The process is complete and you now have both a model capable of executing exploratory testing and a model flow or script which chains together the associated actions or snippets in a specific sequence that matches your test case. Now it's time to rinse and repeat!

Version Control Behaviors