Task on applying different test techniques: Solution

Task on applying different test techniques: Solution

Disclaimer:

This article provides comprehensive guide on performing the last week task which you can find:

Here: https://www.linkedin.com/groups/12765191/

Or here: https://t.me/qa2qas


Test design is one of the usual tester's activities, that's why there are so many test tasks on checklist and test cases creation. It's expected that junior specialist maybe not so good at understanding different technical moments or at usage of some specific tools, but they should be ready start creating checklists and test cases once they join the project.

Another important moment here is deep knowledge of test techniques (equivalence partitioning and boundary values analysis, pairwise testing, state transition testing, decision table testing, exploratory testing and so on). Test techniques are strategies that help testers create better test documentation. The main benefit of using test techniques is the opportunity to write fewer tests while ensuring broad coverage of requirements.

🍕 Last week we offered you to get ready to test the following form for ordering pizza:

Альтернативный текст для этого изображения не предоставлен
Web form for ordering pizza

The task was:

1. to decide what type of testing documentation (checklist or test cases) you will use and explain your choice.

2. to select appropriate test technique and create test documentation applying this technique / techniques.


So, let's start with selection of test documentation type. Remember that you should take into account the following reasoning:

  • Is our project short-termed or long-termed?
  • Is the system (web application) complex or not really?
  • Is the project team stable and experienced or includes not very experienced specialists and can be changed (new people will come and you'll have to transfer the knowledge about the product)?

I consider that web application is not so complex, and can be created during pretty short period of time. I also work with a couple of really experienced software testing engineers, so we do not need too detailed documentation to verify our "pizza" application. So my decision is to select checklists.

📌 Note! This is just one possible answer to the first question. You can select test cases as well. The main part here is reasoning. That's what your potential employer wants to see from your side when you are doing such a task.


The second important decision to make is what test techniques can I apply to create less tests still ensuring effective testing? Taking into account that my web form for ordering pizza contains a lot of different text fields with a quite big range of valid data, I'll select equivalence partitioning and boundary values analysis. Besides, as I have some options to select additionally (pizza size, toppings and extras) - pairwise testing will be a great choice as well.


What should we do next? Create a checklist to test the web form! So, let's start doing it together. Feel free to select any template you like, but keep in mind that as I will use only checklist to test this form, it should be pretty detailed and comprehensive, so that anyone can use it without my assistance.


General points to remember:

📝 You are going to test the web form, not separate fields, so create your checklist with full functional checks.

📝 You can unite positive checks (for example, fill in all the fields with valid input and check that form is submitted), but you should never unite negative checks! If one field is filled with invalid data, all other fields should be filled with valid data.

📝 If you've selected checklist as the only and independent documentation, it should be not "just set of ideas", but contains all the data needed for testing.


1 Equivalence partitioning

If you want to apply this technique, remember the steps:

1) Identify the equivalence classes.

2) Create a test for each equivalence class using one value from each one.

Let's take "Name" text field as an example. It accepts 5-50 English letters, numbers, symbols '-' and '_'. I can identify the following equivalence classes:

  • English letters, numbers, symbols '-' and '_', 5-50 symbols
  • Cyrillic letters, special characters, 5-50 symbols
  • English letters, numbers, symbols '-' and '_', <5 symbols
  • English letters, numbers, symbols '-' and '_', >50 symbols

Now I will add this checks into my checklist:

Альтернативный текст для этого изображения не предоставлен
Checklist example

For sure, I will continue create this checklist using this approach until I cover all the requirements.


2. Boundary values analysis

I hope you know that boundary value analysis is an extension of the equivalence partitioning test technique and focus on verification of  boundary values, or the "edges" of each equivalence class. 

When taking the same example with "Name" text field, I can identify the following boundary values:

Альтернативный текст для этого изображения не предоставлен

So to verify boundary values I should add the following checks into my checklist:

Альтернативный текст для этого изображения не предоставлен
Checklist example

📌 Note! In practice you most probably won't add such ideas as separate checks, but still should test this boundary values while execution of tests devoted to appropriate valid or invalid equivalence class.

One more option is to add boundary values into the parameters when using pairwise testing.


3. Pairwise testing.

Pairwise testing is very useful when designing tests for applications that involve multiple parameters. We have a lot of different options in our form, so let's use pairwise tool to create the random combination of parameters. I will use this simple online one: https://pairwise.teremokgames.com/.  What should I do?

Step 1: Create a list with all the input variables (parameters).

Альтернативный текст для этого изображения не предоставлен

Step 2: List all possible values for each variable.

Альтернативный текст для этого изображения не предоставлен

I've also added boundary values for "Name" text field as an example for you:

Альтернативный текст для этого изображения не предоставлен

Step 3: Using special tool generate the optimal number of tests (an effective test suite) based on the table you created:

Альтернативный текст для этого изображения не предоставлен

And you'll receive:

Альтернативный текст для этого изображения не предоставлен

Open this file to see ready-made checklist with randomly generated combinations:

Альтернативный текст для этого изображения не предоставлен

This file can be used as a very useful addition to the previously created checklist.

To view or add a comment, sign in

Others also viewed

Explore topics