I am speaking at DevOpsCon Singapore – Nov 2021

I am super excited to announce that the DevOpsCon Singapore conference is finally here and I am elated to be a part of the Speaker lineup!

After cancellations and rescheduling in 2020 due to the pandemic, this grand event is finally happening now from 22 to 25 Nov 2021 in an online edition.

My talk that was slated to be part of the 2020 edition remains the same topic which I have worked to enhance this year. Here are a few details of the session –

Title – The What, When and How of Test Automation

Description

Agile means pace and agile means change. With frequent time-boxed releases and flexible requirements, test automation faces numerous challenges. Haven’t we all asked what to automate and how to go about the daily tasks with the automation cloud looming over our heads? Here, we’ll discuss answers to some of these questions and try to outline a number of approaches that agile teams can take in their selection of what to automate, how to go about their automation, whom to involve, and when to schedule these tasks so that the releases are debt-free and of the best quality. 

  • What to automate: regression averse approach, selective approach, sanity automation, max automation approach
  • When to automate: sprint n-1 approach, continuous automation
  • How to automate – all-hands approach, shared automation expert, code-averse tool 

Let us have a look at the integration of these possibilities, the possible combinations, and what may or may not work.

My session will be held live on Monday, November 22 2021 17:00 – 17:45 SGT

To check out my speaker and session details, click here

For the detailed program and agenda of the conference, see this page

To Register for the event and related details, click here

Hope to see you there! 🙂

How To Compliment Software Outsourcing With Agile Development? 

As technology advances at a breakneck pace, speed and adaptability have become critical for fulfilling client requirements. While traditional project management systems such as the waterfall approach are incredibly precise and controlled, they do not foster adaptation or feedback.

However, firms across a variety of sectors have succeeded in transforming the way their projects are managed through the use of the Agile development technique. Businesses whose primary business is software development have profited the most from the Agile methodology. 

Today, the value of agile methods in software development is well recognized. Not to mention, the benefits are only brought to those who are clear on what precisely to expect from a software development service provider. Agile improves your development team’s effectiveness and results in a more coordinated project management strategy. Therefore, thorough research before hiring makes a lot of sense in order to work on your expectations.

Along with the increasing popularity of Agile software development, another trend is picking up quickly, and with good reason is software outsourcing. Outsourcing software development has overtaken in-house development as the second most popular trend in the industry. 

Indeed, several businesses have begun to include agile methodologies into their offshore development processes as well. Their purpose is to combine the cost savings associated with outsourcing with the adaptability associated with agile development procedures. However, this begs the following question:

Is it possible for software outsourcing and agile development to coexist?

IT  Outsourcing is a widely used method of accelerating corporate operations and making them more efficient and competitive. Outsourcing enables organizations or independent software vendors to accelerate project delivery. Given the benefits that both Agile and Outsourcing provide to the software development cycle, collaborating on a project is undoubtedly a good option.

Coordination with an overseas team, on the other hand, might be challenging owing to a lack of face-to-face contact, cultural differences, and time zone differences, among other factors. Meanwhile, if a strategic strategy is used to integrate these masterstrokes for software development, the project delivery cycle may be accelerated and elevated.

To overcome the obstacles that collaboration between Agile and Outsourcing entails, both sides (companies and technology partners) must work together. The below section explores some effective strategies for establishing a successful Agile-Outsourcing relationship.

How To Compliment Software Outsourcing With Agile Development?

1. Choose A Trustworthy/Skilled Technology Partner

A technology partner is a business that comprehends the underlying concept of the program and assists in its execution. To begin, a comprehensive investigation of the organization should be conducted, determining whether their portfolio and prior expertise are applicable to your project. Thus, a set of indicators may be reviewed to determine whether the technology partner has the capability to execute a project according to the needs and standards established in advance. 

2. Assess the Team as a Whole, Not Individuals

Finding excellent programmers with extraordinary talents is not a difficult task for customers wishing to outsource a software project. Agile development, on the other hand, necessitates a high level of team participation; it is all about collaboration, not individual perfection. Each team member is critical to the project’s success, and each member must feel at ease cooperating with others, whether in offshore locations or in their own nation. 

As a result, the programmers’ track record in a team context is more essential than their individual accomplishments. Consider utilizing behavioral interviewing techniques to pick team members in the same way that you would when employing staff for your business.

3. Interact

To flourish as an outsourced and Agile software firm, there is a need for adjustment, since these two concepts do not always mesh well. To be successful, it is necessary to carefully modify the Agile software development process as well as the communication channels between the customer and the outsourced provider.

4. Mitigation of Risk

Everybody will claim to be agile. Therefore, if you are otherwise satisfied with the provider, condition awarding the project on a successful iteration/sprint that results in the delivery of functioning software to you. Make Certain that your sprints are brief. Define the success criteria in detail, including acceptance tests and the delivery timetable, as well as any additional criteria that are critical to you and your business. Following each sprint, you’ll have the chance to evaluate the offshore team’s performance, make required improvements, and lead the project in the correct path.

After analyzing the team’s performance and working style, you should be able to determine whether you can accomplish your business objectives while collaborating with this offshore team.

Conclusion

Embedding agile practices throughout the IT department is a journey – a lengthy one. By enlisting a vendor as a partner on the journey, businesses may alter their IT development while retaining the benefits of outsourcing. This dispersed agile partnership necessitates collaboration on a variety of levels, as well as the ability to learn from and adapt to the outcomes. The incentives are substantial for those that do it right, including much cheaper costs, access to a big pool of technology-savvy labor, and the capacity to operate constantly and fast across different time zones.

<This is a guest post by Emily Cooper.>

Author Bio – Emily Cooper is a technical writer with a passion for writing on emerging technologies in the areas of software development, .NET and Dedicated Software Development. 

<Image Credits – Unsplash.com>

How to create a document outlining your Test Strategy?

With the software revolution, all excellent project managers know that if you hasten into the testing process, that particular project is considered to face a lot of issues. 

Working with the best test management software and its particular strategy planned before testing starts is essential because software becomes more complicated with more sequences of code to evaluate. 

Without a definite outline to develop, the QA team might not be sure what their duties are, what type of testing should be performed first and how the project’s progress is being determined.

The initial action to developing a test plan is to understand what you are attempting to perform with the testing strategy document as it will change software testing strategies. 

According to this post created by TatvaSoft experts, the purpose of a test plan is to describe the complete scope of the QA method from both a comprehensive and granular standard. 

Let’s take a look at one of their sections and understand why they consider that having a Test Plan for every business is beneficial— 

A Test Plan is a thorough document that outlines the test strategy, objectives, timeline, estimation, deliverables, and resources needed to execute software testing. The Test Plan assists us in determining the amount of work required to confirm the quality of the application being tested. The test plan is a blueprint for conducting software testing operations as a well-defined procedure that is meticulously documented. Read More 

The software testing approach helps to create a test plan as it is one of the most essential aspects of the complete testing process, as it describes accurately what the testing team requires to succeed and how to proceed to achieve those aims. Test Strategy is a crucial part of the Test Plan.

The task of writing a whole document test strategy from start may seem daunting, especially for bigger projects. If QA managers need a systematic approach to this responsibility, however, they’ll discover that planning and compiling an efficient and comprehensive test strategy isn’t so hard.

Here are a few tips for your team’s benefit-

Steps To Create A Test Plan Using Best Test Strategies!

Understand the product or feature you’re testing

We will begin with one of the essential aspects of software testing strategy, which is having a broad knowledge of the product or feature before you begin developing a test plan for it. 

For instance, let’s assume you’ve just worked over a website redesign and need to test it before you launch it in the market. For that, you will require to know these below-mentioned factors: 

  • Discuss with the designer and developer to know the extent, goals, and functionality of the website.
  • Review the project documentation which is developed by the project manager that includes SOW, project plan, and the responsibilities in the project management tool.
  • Conduct a product examination to know the functionality, user movement, and defects.

This action provides you with the setting to write a good test strategy document, purposes and begin to plan out the sources you’ll require to create it.

Define the test objectives and their criteria

As you describe every other test you’re continuing to work on, you are required to apprehend when your test is “finished.” 

This implies establishing the pass and fail standards for each particular test, and some of the information we can discuss, such as departure and delay criteria.

To perform this, you’ll need to recognise different system metrics that you’re monitoring and select what progress means for them. 

For instance, if you were working on a performance test you need these measures to succeed:

  • Response time: Complete time to forward a request and receive a response.
  • Average load time: Average time it needs to address all requests.
  • Peak response time: The most extended time it needs to complete a request.
  • Wait time: It is the duration it needs to get the first byte after a demand is sent.
  • Requests per second: The number of requests it can manage during that one second.
  • Events passed/failed: The whole number of passed or failed requests.

Don’t worry you can proceed with testing and repeating forever. So you are required to determine what’s best for your software out and in the palms of users.

Plan the test environment

The outcomes of your test plan always depend on the point you’re testing as well as the environment you’re testing it in. 

As a component of the test strategy document scope, you are required to decide what hardware, software, operating system, and tool compounds you’re running to test.

This is a condition where it pays to be particular. For instance, if you’re going to define an operating system to be utilised throughout the test plan, specify the OS edition/version rather than just mentioning the name.

Define Test Objective

Test Objective is the complete purpose and performance of the test execution. The purpose of the testing is to discover as many software errors as possible; guarantee that the software during the test is bug-free before release.

To determine the test purposes, you need to perform these 2 steps:

  • Record all the software features such as functionality, appearance, and GUI that may require testing.
  • Determine the purpose or the object of the test according to features

Use these steps to get the test goal of your testing project

Also, you can use the ‘TOP-DOWN’ approach to discover the website’s features that may require testing. In this process, you break down the app following the test to component and sub-component.

Conclusion

The test strategy document provides a definite concept of what the test team will perform for the entire project. It is a latent document that means it won’t fluctuate during the project life cycle. 

The one who prepares this document must have enough expertise in the product field, as this is the record that is running to manage the complete team, and it won’t fluctuate during the project. 

Test strategy documents need to be distributed to the complete testing team before the testing ventures start.

<This is a guest post by Matthew Jones – who is a tech enthusiast. and he likes to share his bylines.>

How to Decide if You Should Automate a Test Case

Test automation is imperative for the fast-paced agile projects of today. Testers need to continuously plan, design and execute automated tests to ensure the quality of the software. But the most important task is to decide what to automate first.

In my article published on the TestRail Quality Hub, I have compiled & shared a list of questions to help you prioritise what you should automate next and guide your test automation strategy.

Here is a checklist of questions to ask yourself as you decide on automating a Test Case–

*******

Is the test going to be repeated?

Is it a high-priority feature? 

Do you need to run the test with multiple datasets or paths? 

Is it a Regression or Smoke Test?

Does this automation lie within the feasibility of your chosen test automation tool?

Is the area of your app that this is testing prone to change?

Is it a Random Negative Test?

Can these tests be executed in parallel, or only in sequential order?

Are you doing it only for the reports?

********

For the detailed explanation of each of these points, read the complete article here –>

Are your Test cases really effective?

Test teams are forever designing and adding new tests, running them, and reporting results. But is your test team creating tests that are effective at finding real problems?

How do you know if your tests are actually working, and not just adding to the ever-increasing test count?

In my article published on the Testrail blog site, I discuss some ways you can gauge the effectiveness of your tests — and improve them.

Defects Found

The top and most obvious indicator of the effectiveness of your test cases is the defects you find when executing them. As you and your team execute the designed test cases, constantly ask yourself these questions:

  • Are these tests guiding me toward defects?
  • Am I finding problems with the predefined test cases? Or do I have to do more exploration before even getting close to a problem?
  • Are these tests exercising unique flows or use paths?

Metrics

You can also look at your defect lists and find related test cases for the defect logged (if you have that ability in your defect management system). This interlinking helps the team understand what test cases led to the issues found.

You can then further analyze whether that test case was created during test design or later added to the list when the issue was found.

Exploration

If your test cases are not effective, you will not find any useful bugs in test execution. That will mean most of your time is spent in unplanned exploration or ad hoc testing. So, by looking at the time spent in actual test execution versus the time spent on ad hoc testing, you can figure out the effectiveness of the test cases you designed.

If your test cases are effective, you will find issues, explore more use paths, navigate through different integrations with other features, and test different aspects of the same functionality.

If at the end of your test execution, you feel that you have not done all of that, you can infer that is because your test cases might be too simplistic or obvious, and therefore not effective enough to find any useful bugs.

History

Continue Reading here–>

My interview with Fabian Böck featured on Youtube -“Never Feel Stuck”

I was recently invited by Fabian Böck for a chat over on his Youtube channel where he frequently interviews people in tech on various topics of interest in the industry. My talk was focused on how to steer the direction of your tech career. We had a fantastic talk about how to pave learning avenues, set for yourself time to reflect, and how companies should be enabling their workforce. And most importantly, how to ‘Never Feel Stuck’ in where you are – even if you are happy or not and use continuous learning and self improvement to guide yourself to better places!

Here is a link to the video interview-

Fabian’s company Boeck and XOXO works on Tech Conventions x Matchmaking Marketplace x Tech Talks. Check them out for more interesting talks and content!

Check out the Linkedin posts here – https://www.linkedin.com/feed/update/urn:li:activity:6821385665146691584/

Cheers

Nishi

3 Ways Technical Debt Can Actually Help Improve your Sprints

“Debt” is not a pleasant term. It brings to mind a burden and generates a feeling of anxiety. The same may also be true for technical debt, or the extra work that we incur while developing our software in the form of missed quality targets, pending tasks, or skipped points from our exit criteria checklists. Like monetary debt, technical debt happens when we make a decision that is quicker in the short term but will hurt us in the long term.

Though we may try our best to limit this debt, it will still happen. And while we will need to pay back the debt one day, we can also use it as a lesson to help improve ourselves and our processes. If it ultimately helps our development, it doesn’t even always have to be a bad thing.

In my article published on the Ranorex blog site, I examine three ways technical debt can actually help us improve our sprints.

Better Estimation

Though the first time incurring technical debt due to an inability to complete an activity as planned may not be pleasant, it should consequently improve the team’s estimation and planning.

Let’s say we had defined developers’ tasks for all user stories with estimated hours, along with a mandate of peer reviews being performed for all code being written. But the end of the sprint saw that though the developers marked their development tasks as done, none of the code had been peer reviewed before check-in. It could have happened due to lack of time or ownership.

The next sprint, the team then decides to have a separate sub-task for peer reviews under the development tasks, each of which is assigned to a peer with an allotted time of 30 minutes. This helps the team plan, have clarity around what tasks are pending, and see how much effort is being spent on the tasks.

So, even though you may begin to accumulate technical debt early on in your sprints, understanding the cause and having a plan of action may improve the team’s overall performance.

Sequencing and Prioritizing

If you find yourself at a point where release is a couple of sprints away and you have a number of unresolved defects, even though they are lower severity, the team may decide to reduce open defect counts for a sprint rather than adding new features. The technical debt incurred in the form of defects can urge the team to refocus and shift priorities.

Or, let’s say your team agreed to 70% automation of regression testing in the beginning of the release cycle, but after four sprints, the scripts they created are showing signs of being unmaintainable or not scalable enough. This may affect delivery in the end, so some testers may take the call of focusing full time on reworking the scripts and adding new automated tests to them, while the other testers take up functional and regression tasks.

My team once found out at the end of our fifth sprint that our developers had not been performing static analysis of their code or creating the reports that were mandated for every sprint. Whatever may have been the reason, this meant that running those reports now was leading to hundreds of errors or warnings all pertaining to code formatting, naming conventions and comments. Even though these were minor issues, it required time to get them all corrected with thousands of lines of code.

Read More »

Achieving the Goal of In-Sprint Test Automation

Getting test automation done is a challenge, especially within the tight deadlines imposed by Scrum. As much as the thought of continuous in-sprint test automation sounds enticing, the practicality of it may elude most Scrum teams.

In my article published here– I look at some of the main things you need to consider in order to get your test automation done within the confines of your sprint.

Framework

The first thing to focus on is a framework that is useful, is easy to understand, and helps all stakeholders participate in test automation.

This is essential because you want to make test automation a continuous activity that is a part of daily work, not a once-a-sprint (or once-a-release) work item. For this to happen, the framework must make it equally comfortable for a businessperson, developer, functional tester or automation expert to add their contribution and see the results of their efforts.

There are many business-friendly frameworks and techniques, like behavior-driven development (BDD), as well as many tools that can create tests in a domain language and then translate them to script code.

All stakeholders must be trained on using the framework, and their area of contribution must be made clear to them, with practical hand-holding. The automation tester can then focus on maintaining the framework, generating test suites and editing failing scripts, while the creation of test automation will be a continuous task assigned to everyone involved.

Collaboration

The next thing to focus on is collaboration between the various stakeholders. A continuous automation framework can only survive when it is being fed and tended to by everyone on the team.

  • The business people, like a business analyst or a product owner, can help by adding user scenarios or defining the requirements in a framework-friendly format. This may require them to be trained on the preferred format based on the framework being used
  • The developers can help by creating reusable methods for steps of the script. They can also create and maintain an object repository for all elements they add to the UI while testers use the pseudo names of the elements in the test scripts. This means that the scripts can be created before (and independent of) the application UI, and such scripts won’t need editing when the UI changes, as long as the object repository is kept up to date
  • The testers can help by adding more scenarios, specifying and creating test data, and executing the scripts periodically

Strategy

How to strategize the development of test scripts is crucial to making in-sprint automation a reality. Using API-level automation whenever possible will reduce the time and effort.

Continue Reading –>

Read More »

10 Lessons When Moving from Waterfall to Agile

Many organizations take up the transition from waterfall to agile with the best intentions in mind. Like so many other companies, you might also be seeking to replace your traditional waterfall processes with agile in a quest to shorten the time-to-market and deliver high quality applications.

The road to agile, though, can be a rocky one! That’s why, in my latest refresh post for Ranorex blog, I have put together a few lessons and tips that will help you in succeeding in moving from waterfall to agile successfully!

The article was published at https://www.ranorex.com/blog/10-lessons-when-moving-from-waterfall-to-agile/

Here is a quick list of lessons we dive into-

1: Embrace the agile culture first

2: Adapt roles and responsibilities

3: Take a whole-team approach

4: Test early and often

5: Remember that agile is iterative

6: Encourage transparent communication

7: Make test automation your friend

8: Commit to early feedback and re-planning

9: Include the whole organization in the agile transformation

10: Adopt tools to enable team collaboration

Check out the complete article to read in detail about each of these learnings that can help you succeed in your agile transformation.

Cheers

Nishi

Taking a MasterClass with the Ministry of Testing!

I was invited to take a MasterClass by the wonderful people at the Ministry of Testing last month. They had a ‘Communities’ theme going on for the month of June 2021 and they loved my talk idea about Leveraging Tech Communities. So we worked around that theme to create a talk on “Grow your Career with Tech Communities”

I had an awesome time taking the #DojoMasterclass with Ministry of Testing . What a wonderful experience!

My talk focused on discussing-

  • How to leverage the power of communities in your personal and professional growth
  • How to contribute, volunteer and participate in communities
  • How user communities help in taking your company’s brand forward
  • How can companies create powerful and engaged user communities

I am grateful for the opportunity I got, the great feedback I received from the participants, and an awesome host Vernon Richards.

Thanks, Áine McGovernHeather Reid, and Simon Tomes for arranging the session! 🙂

Check out the recording on the Pro Dojo https://lnkd.in/gy24FvW

How to Access the recording

  1. Click on this Link  
  2. If you have a PRO Account, click on the GREEN Button on top of the screen “Sign In to View this Content” and sign in with your PRO Acount
  3. If you do not have a PRO Account, click on ‘Go Pro to view this content’ Register for the Pro Account
  4. You can now Play the recording!