From Bottlenecks to Breakthroughs: The Journey from Manual Testing to Automation

From Bottlenecks to Breakthroughs: The Journey from Manual Testing to Automation

Do you know that sticking to manual testing in your software development cycle slows your progress and is challenging at scale?

This is a question that everyone is discussing. Some have already overcome this obstacle and are moving on to the next phase, while others are currently in the process and struggling to move forward. Some are also considering how to make this transformation while ensuring the organization's continued smooth running.

Having spearheaded this transformation in several organizations, I’m here to share my firsthand experience. This is not just theoretical knowledge but practical insights drawn from real-world experience.?

Why is this transformation necessary?

If we don't implement this transformation, we will encounter multiple challenges throughout the entire software development lifecycle. This foundational change is crucial, as failing to implement it will result in persistent issues at various stages of development.

  • Bottlenecks in delivery timelines since manual testing is time-consuming
  • Repeatability of the same test coverage is tedious and challenging?
  • The feedback cycle of the new development is delayed
  • Error-prone process
  • Support testing at scale and Maintaining quality at scale is very challenging due to
  • Manual testing is a roadblock in CI/CD, which is an essential part of faster delivery.

How can we address the problem outlined above?

The way forward is to transform the manual testing approach to automation. I won’t explain the benefits of test automation here as multiple articles already exist.?

How to transition from a manual testing approach to automation.

Step 1: Assess the current situation

Understanding the company's current situation is important to determining our current position. When conducting this assessment, we need to consider the following factors. This information is necessary to understand the gaps to define the strategy.?

Areas to consider:

  • Current software development process
  • Current testing process
  • Current technology stack
  • Current process on CI/CD with tools
  • Current team's skill set
  • Automation tools skills
  • Automation framework knowledge
  • CI/CD knowledge
  • Development skills
  • Current production quality concerns
  • Current challenges in meeting delivery milestones due to testing issues

Step 2: Define the outcome

In this phase, we must clearly envision the desired outcome of the transformation. This is essential for understanding the goals we aim to achieve post-transformation. When defining the outcome, it's important to account for multiple factors, as automation is just one element of the process. Therefore, the following considerations should be taken into account.

  • Company vision for the next 1-3 years
  • Software development strategy to achieve 1-3 years company goals, which includes the development, integration, testing, deployments, and environments
  • Analyse the the findings and gaps done in Step 1

One of the best techniques is future press releases. This should include what we want to broadcast to the company/stakeholders/industry/etc. This way, we can envision the future outcome. From there, we can reverse-engineer the outcome to get more details to know the most important areas to focus on to move the needle.

When defining the outcome, it's crucial to outline the entire Quality Engineering strategy, not just focus on test automation, which is merely one component of the overall approach.

Step 3: Build the roadmap

When building the roadmap, you need to consider the following points.

  • Testing types

It’s important to understand the testing types we want to automate. We need to follow the test pyramid concept, which is proven to provide automation benefits. In this approach, we need to consider many testing types. My suggestions are:

  • Code Quality
  • Unit testing
  • Integration testing
  • Functional testing using API (this is based on the application architecture)
  • UI test automation
  • Static Application Security Testing

These are the minimum we need to include.

  • Automation tool/s

What automation tool should suit us? Based on the outcome, we must assess what type of tools we need. We have two options: an off-the-shelf tool or an open-source tool. In any case, we need to ensure that all tools are seamlessly integrated.??

If you are creating your automation framework, it should be capable of multi-paradigm automation and can incorporate new tools.

  • Integration with CI/CD:

The test automation execution must be integrated with CI/CD, as the execution should be automated.

  • Test data:

Managing test data is a critical aspect of this transformation, so we need to consider and plan how to handle it.

  • Test environment strategy:

Planning the test environments is another critical aspect of automation execution. Therefore, we must consider and resolve this as part of the roadmap.

  • Test execution strategy:

Automation writing is just one step. We also need to consider the execution strategy. We must consider the above points: CI/CD, test environment, and test data. These are crucial aspects to consider.

  • Milestones:

The roadmap should be broken into small milestones we can achieve quickly. Let's break milestones into weekly or bi-weekly intervals. This will help us break down different challenges into manageable parts where teams will be comfortable, and it will be easy to track progress.

The above points should be discussed and considered when building the roadmap.

Additionally, we need to consider the order in which milestones should be achieved as part of the roadmap. It is important to determine the roadmap's critical path and identify any potential obstacles that could derail it.

When building a roadmap, we must first address the most complex problems. This approach will help us ensure that we stay aligned with the plan.

Step 4: People strategy:

Having a people strategy is crucial, and there are multiple ways to approach this.

  • Upskilling the existing team members:

?Based on the team's skills, we can implement upskilling programs through internal or external training. Pros and Cons of this approach:

??? Pros:

  • ???Existing domain, process, and tools knowledge.

??? Cons:

  • ???Building skills may take longer if the team has a high skills gap.
  • ???Impact on business as usual (BAU) work.

  • Hiring an external team through staff augmentation:

? Let’s discuss the pros and cons of this approach.

?? Pros:

  • ???No impact on BAU.
  • ???Access to skilled and experienced contracted engineers.

Cons:

  • Lack of domain knowledge, process, and tools knowledge.
  • Internal team upskilling may not occur.
  • Transition gaps from the outsourced team to the internal team might occur.
  • Higher project costs.

  • Hybrid approach of 1 and 2:

Let’s see the pros and cons of this.

Pros:

  • Existing domain, process, and tools knowledge.
  • Internal team upskilling will occur as the team will be a combination of internal and external team members.
  • No transition is needed as internal team members are part of the project.
  • Controlled project costs. We can decide on the duration of the external engineers' work and opt for hiring when we have time.
  • There is less impact on the BAU, and we can get some contractors to support the impact.

My recommendation for the people strategy is to go for approach 3, which has many benefits.

Step 5: Execution of the strategy

"Strategy is important, but execution is key." - Jack Welch.

Any strategy or plan is good if the execution is good. We need to ensure that we execute properly. If the execution fails, everyone will doubt the strategy. To ensure that the execution is on track, we need to consider the following factors:

  • Ensure that we define key metrics to measure the progress:

  • Progress evaluation:

It is important to measure progress and ensure we are on track with the original plan. We need to manage 'the gap' to stay consistent with it.

Another point to consider is the need to review the strategy frequently. If we identify concerns with our strategy, we must pivot quickly and adjust. However, we shouldn't make drastic changes without considering the intended outcomes. We should perform Step 3 again.

In execution, we might fall into the pitfall of trying to optimize before achieving the target. First, we need to ensure that we achieve the target, and then we can focus on optimization. For example, test automation coverage should be achieved before we start optimizing the test execution time.

Step 6: Cultural Mindset Shift

  • Foster a mindset shift from "testing manually" to "automating where feasible."
  • Experimental Environment
  • Create an environment where engineers feel comfortable experimenting with automation.
  • Resistance
  • In any transformation, there is always resistance. We need to have an open mindset to discuss with the resistances and onboard everyone.
  • Communication
  • We need to be transparent about this change; hence, frequent communication should be provided.
  • Celebration
  • We need to celebrate success to build a positive mindset around changes.

hasitha karunarathne

Principal Architect - SDET at Circles.Life

4 个月

Awesome article! Really insightful journey through manual testing and great tips on overcoming challenges

Nadee Navaratne

Principal SDET at Circles.Life

4 个月

Good insightful one Janith

Anuradha Fernando

DevOps | SRE | Kubernetes | Coffee

4 个月

Great article Janith!

Hiran Karandeniya

Head of Quality & Continuous Improvement

4 个月

Very insightful! Thanks for sharing Janith

Dushan De Silva

Quality Engineering Professional

4 个月

Good explanation on why we need automation and a complete article for a beginner who are still planning to move to the automation

要查看或添加评论,请登录

Janith Gunasekara的更多文章

社区洞察

其他会员也浏览了