Discussion on Test Automation with SWAG by Garvit Chandna | Testμ 2023

:rocket: Get ready for an exciting journey into “Test Automation with SWAG” by Garvit Chandna!

:tada: Uncover the secrets of infusing automation frameworks with limitless test data and explore innovative methods, from traditional storage files to dynamic variables via databases.

Join us at Testμ 2023 to embrace the power of SWAG and revolutionize your automation game! :bulb::hammer_and_wrench:

Still not registered? Hurry up and grab your free tickets: Register Now!

If you have already registered and up for the session, feel free to post your questions in the thread below :point_down:

Here are some of the Q&As from the session!

The biggest challenge I see for dynamic data is:

  • How do we provide usable test data for teams throughout the company, tens of development teams on one product?
  • How do we provide the date for the whole test pyramid?

Garvit: It’s not just about many teams on one product. We have different products that share similar data sources. For example, if there’s a customer-facing app and an admin tool, they might both use the same data. So, we created APIs to get data from these sources based on what each team needs. We invested time in building these APIs, and as we discover more needs, we add new APIs. These APIs help everyone in the company, including manual testers, get the data needed for any testing layer. We want everyone to be independent in getting the test data they require. I hope that explains it well.

Considering the need for parallel execution and scalability, what architecture choices should organizations make when designing their solutions?

Garvit: Parallel execution and scalability have different ways to approach them. For example, there’s a tool called HyperExecute from LambdaTest. You can divide your tests into smaller parts, use tools like HyperExecute, or even automate different app layers. For example, if your app has 100 things to test, maybe you automate 60 with one tool and 40 with another. You can run them together or split them into chunks and run them on platforms like LambdaTest Cloud for faster testing. It’s all about finding the right fit for your needs.

Can you please cover the best framework for mobile apps built on Flutter?

Garvit: Well, there are a few good options, like React Native, but we found that using Appium works well for us. It’s great for handling the UI stuff on mobile apps, even though UI automation can be tricky. The trick is to balance UI automation with API automation, which needs less upkeep and runs faster. And you can use any programming language you’re comfortable with. Some tools are moving towards low-code or no-code solutions, like Slack. So, choices are depending on your needs.

What can be the popular strategy to speed up your UI automation tests?

Garvit: A helpful way is to combine similar steps in your tests. If you have tests going from A to C and another from A to B to C, merging them can save time by avoiding repeated steps like logging in. Also, parallel execution is a powerful solution to speed things up.

How does using a database utility for test data solve some of the challenges associated with traditional storage file methods?

Garvit: With traditional storage methods like files, you might hardcode specific data for testing, limiting the range of scenarios you explore. Using a database utility, you fetch data dynamically during runtime based on scenarios. This lets you uncover issues that might not arise with static test data. Opening the gate to varied data enhances your testing quality and ultimately delivers a higher-quality product.

Let’s see some of the unanswered questions from the session!

What is an ideal skillset required for an automation engineer to procure? Lately, from programming to CI/CD, all is being asked. Please guide.

What is your though on contract POM in test automation using Page Object Model?

What can be the popular strategy to speed up your UI automation tests?

Can you please cover the best framework for mobile apps built on Flutter?

How to implement security in Swagger using authentication login?

How does the concept of an API cloud for database communication address potential challenges related to database connectivity and compatibility?

How to overcome test data challenges?

Hi there,

If you couldn’t catch the session live, don’t worry! You can watch the recording here:

Additionally, we’ve got you covered with a detailed session blog:

There are various factors matter when it comes to the skillset required for automation testing however, I believe there are some essential skills each automation test engineer should have:

  1. Programming: Proficiency in a programming language like Python, Java, or C# is essential for writing and maintaining automation scripts.
  2. Test Automation Tools: Familiarity with popular automation tools like Selenium, Appium, or JUnit is crucial for efficient test automation.
  3. CI/CD Knowledge: Understanding Continuous Integration/Continuous Deployment (CI/CD) pipelines is important for integrating automated tests into the development workflow.
  4. Version Control: Proficiency with version control systems like Git helps manage and collaborate on automation code.
  5. Testing Frameworks: Knowledge of testing frameworks like TestNG or JUnit aids in structuring and organizing test cases.
  6. Scripting: Basic scripting skills for tasks like data manipulation and test data generation are beneficial.

In my opinion, Contract POM, or Contract Page Object Model, is an excellent approach in test automation when using the Page Object Model (POM). The core idea behind the Page Object Pattern is to create an object that mirrors the UI of the page we’re testing. This object should encapsulate both the HTML elements (locators) and the interactions with the UI through methods. All WebDriver calls are confined within these encapsulated methods.

What makes Contract POM different is, its ability to centralize element locators. When the UI undergoes changes, such as updates to element locators or modifications in the page structure, Contract POM simplifies maintenance. You only need to modify the encapsulated methods within the Page Object, making it a robust and scalable solution for test automation.

Certainly! To implement security in Swagger using authentication login, follow these simple steps:

  1. Define Authentication Types: You use securityDefinitions to define all authentication types supported by the API. Think of this step as creating a list of ways users can log in securely.
  2. Apply Authentication: After defining the authentication types, use security to apply specific authentication types to either the entire API or individual operations. It’s like specifying which doors require which keys.

By following these steps, you ensure that your Swagger documentation communicates the security measures in place for your API, making it clear and safe for users.

An API cloud for database communication is like a bridge that connects different software systems to a database. It’s a fantastic solution to overcome challenges related to connecting and making sure different software can talk to the database without any hiccups.

First, it simplifies connectivity. Think of it as a universal translator that makes sure all software can understand each other and communicate effectively with the database. This means you don’t need to worry about whether your software will work with your database – the API cloud handles that for you, ensuring smooth communication.

Another good part is that it tackles compatibility issues. It’s like having a compatibility checker that ensures your software and the database are on the same page. So, even if your software updates or you switch databases, the API cloud ensures they can still work together seamlessly. This not only saves time and effort but also makes your system more flexible and future-proof.

Personally, I follow some best practices to overcome test data challenges, such as, First, embrace data testing tools and frameworks. These handy tools can automate and make your testing procedures more consistent. They’re like trusty assistants in your testing journey.

Next, adopt smart data testing methods. Think of them as your secret weapons. These approaches help you craft effective testing plans and scenarios. By combining these tools and methods, you’ll overcome those data challenges with confidence and ease. Happy testing!