Contents:

Free Python course ➞ Mini-course For beginners and experienced coders. 4 cool projects in the portfolio, live communication with the speaker. Click and find out what you can learn in the course.
Learn moreCompanies annually increase their IT infrastructure maintenance costs and actively invest in employee development. This is entirely justified, as consumer expectations for services are constantly growing, and innovations require thorough testing. Investments in IT not only improve service quality but also adapt to changing market demands, ensuring business competitiveness.
Automation of testing processes is becoming increasingly relevant, and in this context, test cases play a key role. Anastasia Leontyeva from SimbirSoft shared useful recommendations for adapting test cases before their automation and also presented an example of a prepared test case. Effective adaptation of test cases can significantly improve the quality of automated testing and reduce the time required to complete it.

Head of Testing and Quality Assurance at SimbirSoft. Holds an MBA and is a Six Sigma Yellow Belt. He has over six years of experience in the IT field, confirming his high qualifications and professionalism. He specializes in the implementation of effective testing methods and software quality assurance, which contributes to the increased reliability and performance of IT products.
The Obvious Benefits of Test Automation
Test automation significantly accelerates the product quality assurance process, which brings a number of benefits to the team and the business. Firstly, it reduces the time spent on testing, which speeds up the time to market. Secondly, automation reduces the likelihood of human error, ensuring higher accuracy and reliability of testing. This, in turn, leads to improved quality of the final product and increased customer satisfaction. Furthermore, automated tests are easy to repeat, which simplifies the regression testing process and allows for faster detection and elimination of defects. Implementing test automation also frees up team resources, allowing them to focus on more complex tasks, such as developing new features and improving the user experience.
- Testing costs are reduced.
- The likelihood of missing errors due to human error is reduced.
- The speed of delivering new features is increased.
According to a study by practitest.com, over 45% of respondents note that test automation allowed them to cut costs in half. This finding is confirmed by our practice. However, automation should only be applied to test cases related to stable functionality, where significant changes are not expected. Otherwise, there is a risk of increased costs, since constant updating and rewriting of automated tests is required.
Automated tests build on previously executed manual tests with proven scenarios, such as checklists and user scenarios. These scenarios, covered by code, create the opportunity for subsequent load testing. High-quality and adaptive test documentation significantly speeds up the onboarding process for new specialists, which in turn improves the overall efficiency of testing. Ensuring a clear structure and accessible information in test documentation is a key aspect of successful software testing.
How to Address SDET Specialists' Expectations When Preparing Test Cases
When an SDET specialist joins a long-term project, they often have questions for QA engineers before writing automated tests. These questions may relate to the scope of tests to be automated, the priorities for selecting checks, and the necessary access and resources. Clarifying these aspects will help the SDET specialist effectively integrate automation into the testing process, which in turn will improve the quality of the product and speed its release to market. Collaboration and a clear understanding of tasks between SDETs and QA engineers are key to the successful implementation of test automation. A QA engineer may lack automation skills and experience developing automated test cases. In such cases, ideas about creating high-quality test cases suitable for automation can differ significantly. It is important to understand that successful test automation requires clear and well-structured test cases. This avoids implementation issues and improves the efficiency of the testing process. A key aspect is collaboration between the QA and development teams, which facilitates the creation of unified approaches to quality.
When creating a test case for automation, there are several key aspects to consider. First, clearly define the test objectives, which will help focus on the main functional requirements. Second, it is important to develop detailed test execution steps to ensure its reproducibility. It is also important to consider the expected results for each operation, which will help quickly identify potential errors. Finally, do not forget about the need to document test cases, which will facilitate their subsequent use and updating. Proper preparation of test cases contributes to higher software quality and improved test automation processes.
Test cases should be detailed and consistent within an agreed-upon structure. This will allow new team members who have just joined the project to easily understand what functionality needs to be tested and how to do it. Proper documentation of test cases contributes to a more efficient testing process and reduces the likelihood of errors, ensuring high-quality test execution.
It is important to describe the path to the destination in detail, especially if a specific form needs to be tested. All steps that need to be taken to open it must be specified. Some of the description can be moved to prerequisites. This will avoid misunderstandings and ensure more accurate testing.
A rational approach to handing off test cases for automation is a key element of a successful testing process. It is important to determine in advance which tests can be effectively automated and which cannot. If you have any doubts or questions, it is recommended to consult with an SDET specialist. This will help avoid misunderstandings and improve the quality of test automation. Proper evaluation of test cases will not only save time and resources, but also make the process more productive.

When composing a test case, it is important to include all the necessary data. This includes information about the environment, testing specifics on various platforms, setup parameters, and the time required to implement certain settings in the system, if necessary. Completeness of the data in the test case helps ensure its effectiveness and accuracy during testing.
If a test case requires a certain system state to run, or if the case makes changes to this state, it is necessary to clearly indicate how to achieve the desired state and what actions to take after testing is complete. For example, if the test involves operations with an entity, it is important to describe where this entity can be obtained and how to return it to its original state to ensure idempotence. This will help avoid undesirable consequences and ensure the correctness of subsequent tests.
When testing, it is important to pay attention to test data. If the process requires authorization and accounts have different access levels, information about the required access level must be provided. It is recommended to immediately specify account data that already contains the necessary information, such as documents and completed fields. This will significantly simplify the testing process and ensure that all scenarios are executed correctly.
Reflecting test scenarios for system use in cases is an important aspect. This includes the sequence of API requests and responses that demonstrates the user flow. It is necessary to clearly formulate the expected results for each scenario to ensure clarity and efficiency of testing. Proper documentation of these aspects helps improve the quality of development and ensures that the system meets user requirements.
The expected result must be clearly defined and definitive: each case must correspond to a single result. To achieve this, it is important to provide a detailed description and high-quality test data. If it is possible to obtain multiple results from a single change in the system, they should be separated into separate cases. It is important to clearly indicate what the automation specialist should focus on, for example, the page title or the name of the form and button. This will avoid confusion and ensure high accuracy of automated testing.
When developing mobile UI automation, it is important to include mocks and screenshots for snapshot tests in test cases. This will help ensure visual consistency of the interface and simplify the process of identifying errors. Using mocks allows you to simulate interaction with interface elements, making testing more efficient. Screenshots, in turn, serve to compare the current state of the interface with the expected one, which facilitates better control over changes to the design and functionality of the application.
In a test case, it is important to clearly prioritize checks that are critical to ensuring the correct and stable operation of the system. This will allow you to focus on the most significant aspects, minimizing risks and increasing the effectiveness of testing. Prioritizing checks helps organize the testing process, ensuring that key functions are tested first.
Excessive actions, clarifications, and disagreements between specialists involved in testing one or related functions usually lead to a significant loss of time. This, in turn, can negatively impact the product release schedule. Streamlining collaboration processes and clearly assigning responsibilities will help minimize these risks and ensure timely project completion.
To achieve a shared solution, it's important to establish collaboration rules, document them, and communicate them to the team. This will help set clear expectations and improve the effectiveness of collaboration. These rules will help avoid misunderstandings and ensure clarity in communication, which in turn will facilitate more productive collaboration.
Test Case: Before and After Adaptation
Let's look at how automation cases can be optimized using the example of an online store with an API for performing CRUD operations with product cards. Automating processes in an online store simplifies product management, improves user experience, and increases efficiency. Using the API, you can programmatically create, read, update, and delete product data, significantly speeding up inventory management.
First, it's worth analyzing current processes and identifying bottlenecks where automation can bring the greatest benefit. For example, automatically updating product availability and prices can help avoid errors and reduce the workload on managers. You can also implement automated notifications about changes, allowing customers to always stay up-to-date with current offers.
Optimizing work with the API includes setting up integrations with other systems, such as CRM and ERP, which will ensure data synchronization and allow for more efficient inventory management. Implementing such solutions will increase order processing speed and improve overall customer service.
Therefore, using the API to automate processes in an online store not only simplifies product management but also contributes to increased competitiveness in the market.
- Create.
- View.
- Edit.
- Delete.
Working with the open API of shop.bugred.ru requires prior authorization. It is important to consider this requirement before proceeding further. Access information and a link to documentation can be found on the main page. Authorization is a mandatory step that must be completed before using the API functionality.
In our test case, we make several assumptions.
- We will only consider interaction via the API.
- The database contains settings that allow the user to enable or disable product creation.
- The system can have multiple test environments, each with its own database.
A user, such as a manager, logs into the online store's admin panel. Here, they create a new product and update its information, making changes to characteristics such as color and size. After making all the necessary edits, the manager verifies that the data has been successfully updated and, if necessary, deletes the product from the catalog.
Verifying the deletion of a created product is an important step in managing product inventory. This process ensures that the product deletion was successful and that it is no longer displayed in the system. Proper verification includes not only deleting the product from the database but also excluding it from all associated categories and lists.
It's important to conduct these checks regularly to keep product information up-to-date and avoid customer confusion. Effectively managing product deletions will help improve user experience and build trust in your online store.
Furthermore, it's important to consider that product deletions can impact your site's SEO. Therefore, it's crucial to properly configure redirects and update sitemaps to avoid 404 errors and maintain search engine rankings.
Finally, checking for product deletions after creation is key to maintaining order in your product range and optimizing your site for users and search engines.
Before starting testing, it's important to establish certain conditions. These preconditions ensure the test runs correctly and provides accurate results. First, ensure all necessary tools and resources are available. Second, it's important that the test environment is configured according to requirements. You should also check for up-to-date documentation and testing instructions. Ensure that all test participants are familiar with their roles and responsibilities. Finally, it's important to perform preliminary checks to identify and resolve any issues before testing begins. These steps will help ensure a successful and efficient test.
- User is logged in.
- ITEMS_CREATE.ENABLE is true.
Now let's rework our case study using the provided recommendations. We'll consider keywords and phrases to improve search engine visibility. We'll focus on key aspects that will help understand the case study and make the text more engaging for readers. We'll pay attention to the structure and clarity of presentation to ensure the information is digestible and relevant.
Title: "Verifying the Deletion of a Created Item"
Verifying the deletion of an item that has been created in the system is an important part of inventory management. This process ensures that unnecessary or obsolete items are completely removed from the database, improving overall management efficiency and making it easier to find relevant information.
When performing a product deletion check, several factors must be considered. First, ensure that the product is no longer used in active orders or transactions. Second, it is important to check for associated data, such as reviews or ratings, which could impact the business's reputation.
Effective product deletion checks help avoid confusion and ensure that only relevant items remain in the system. This process also helps optimize inventory and improve the experience for users searching for specific products.
Therefore, regularly checking for product deletions is a key element of successful inventory management and improving the user experience.
After the revisions, the test case became more thoughtful, understandable, and structured. The SDET specialist's expectations were taken into account, reducing the need for unnecessary communication with QA. Adding tags, priorities, and statuses to test documentation storage tools (such as "requires correction," "awaiting automation," "automated," and others) will also help reduce the number of questions for the QA specialist. This will improve collaboration between teams and increase the overall efficiency of the testing process.
Important additions
Using checks after each step is only advisable in the automation of long custom E2E scenarios, where one test includes multiple checks. Otherwise, the checks will be redundant, which will lead to an increase in the automated test execution time. Optimizing the testing process allows you to increase its efficiency and reduce the time spent on test execution, which is especially important in the context of continuous integration and deployment.
API or database requests are typically implemented in automated test projects as separate methods with parameters. This approach allows these methods to be used in test cases, simplifying the testing process. All request details are described in one place, making it much easier to make changes to the code and maintain its relevance.
Similar logic applies to manual cases. If we create 20 cases, each describing the product creation process and the corresponding API request, we would need to make changes to each of the 20 records. It is much more convenient to develop one case for creating a record with a detailed description of the API request and simply refer to this main case in all other cases. This significantly simplifies and makes supporting manual cases more efficient.
When creating automated tests, it is important to adhere to the principle that the automated test should independently generate the necessary test data. This increases testing efficiency, makes the process more autonomous, and reduces dependence on external data sources. This approach ensures test stability and avoids errors related to changes in or unavailability of test data. This makes automated tests more reliable and easier to maintain.
During testing, you may need to create a "route" that requires a "bus" already registered in the system. It is recommended to first create the "bus" so that you can select it from the list of available ones when creating the "route." In this case, the process of creating a "bus" is not described in test cases, as the automated test will independently prepare the test environment by creating the necessary "bus." This allows the test to run correctly even on a clean database where "buses" have not yet been created. This approach ensures testing stability and reliability, eliminating dependence on pre-created data.
Specifying field values in test cases has its pros and cons. On the one hand, it significantly simplifies the development process and reduces the likelihood of overlooking errors. On the other hand, this practice can have a pesticide effect, whereby some errors may go undetected when tests are run regularly. Based on our experience, it's best not to specify specific field values, but rather to simply outline acceptable options. With automated tests, as shown in the example above, the name and description fields will be generated automatically, making the constant use of specified values unnecessary.
A lifehack for testing automation: QA engineers can transfer the collections they create to, for example, Postman, to streamline the process. However, before transferring, it's necessary to prepare a test case that includes the steps, conditions, and settings. Don't forget to attach the collection to ensure the correct execution of automated tests.

Instead of a conclusion: why adapt Test Cases - Useful
Adapting test cases for automation has many advantages. Firstly, automation significantly reduces testing time, which increases the overall efficiency of development processes. Secondly, automated tests ensure greater accuracy and stability, minimizing the likelihood of human error. Adapted test cases can also be reused across projects, reducing the cost of creating new tests. Furthermore, automation facilitates faster defect identification and resolution, which improves the quality of the final product. Ultimately, adapting test cases for automation helps speed up time-to-market and increase competitiveness.
- The SDET specialist receives more readable cases for automation, which specify the purpose of the test, information about the environment, settings, test data, and more. This saves developers time writing code.
- During the adaptation process, the QA engineer updates test cases and keeps them up-to-date.
- Specialists spend less time communicating.
- Improving testing quality and team productivity thanks to a unified view of QA and SDET on the process of building automation based on test scenarios.
In this article, we present recommendations and observations for adapting test cases for automation. We are confident that our experience will be useful to you.
Optimizing IT development costs can be achieved through various methods, including auditing and outsourcing. These approaches can significantly reduce costs and improve process efficiency. A discussion of these strategies requires special attention and will be the topic of the next article.
Check out additional materials:
- 7 popular myths about testing
- A tester's story: "HR is fierce here, but sometimes you can slip through"
- Pytest guide: how to test code in Python

