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

6 Ways to Grow Your Testing Career in 2021

Last year was hard in more ways than one. Amidst the pandemic, lockdowns, and changing global political climate, we are still forced into a survival mode of sorts. While many people struggle to hold on to their jobs, others are having a hard time adjusting to working from home while managing kids, home life and distractions. As we are cooped up with all the chaos around us, our career and growth plans might have taken a back seat for a while there.

We are now pacing through 2021. As we pass the half year mark in 2021, let’s take back charge of our careers and drive them in the direction we want!

In my article published here earlier this year, I discuss six tips to get your career as a tester back on track, or even take it down some new paths!

Learn a new skill

Learning anything new, whether it’s a new language, a new recipe, or a life skill like swimming or cooking, can help open your mind and create excitement for learning other professional skills, too.

Learning a new skill has always been the first tip you get to advance your career, and that’s because it stands true now more than ever. It’s often necessary in order to upgrade yourself if you want to land a new job or a better role. But amidst all the chaos around us, our minds might not be the best focused on learning right now.

Whether you were impacted by the coronavirus pandemic and lost your job, or your plans for a job switch were impacted or delayed, do continue to spend time and effort on learning something new that you have always wanted to master.

Diversify your skills

Testing is a multi-faceted role, and testers need to possess multiple skills to be effective in their teams. Especially in the ever-changing landscape of DevOps and agile, being a tester requires skills ranging from test automation to API testing to functional testing to security, performance, and load testing. We also need to be familiar with build processes, automated deployment tools, and white box tests.

Still, whatever your current specialty, you can always acquire another skill to better your profile and expand your skillset. Here are some ideas:

diagram of skills for software testers
Mind map showing diverse skill sets a tester can acquire

Choose an area to specialize in

While it is important to know a little bit of everything, that might not satiate your hunger for knowledge! As you diversify your skillset, you are bound to recognize that you love a certain topic more, so you can then focus on specializing in that area.

As you dig deeper into that area of testing, you will learn more about the tools it requires, the best technologies to use, their comparisons, in-depth features, etc. This will help you participate more in discussions, showcase your advanced skill set, and eventually be seen as a go-to person for that job.

Continue Reading—->

<Image credits – https://unsplash.com/photos/wNz7_5EvUWU&gt;

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 at the Gurock Blog website, I have have compiled a list of questions to help you prioritize what you should automate next and guide your test automation strategy.

Think of this like a checklist that helps you make automation decisions quickly and effectively and create a standard process around them for your team to follow. Here are the list of questions to ask yourself.

Do check out the complete article for a detailed discussion on each of these-

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?

Test automation tools will provide you with useful insights into the quality of the software that you can showcase with the use of some insightful reports. But are these reports the only reason you are looking at automation? Just looking at the red or green status results of the test reports might not be the best way to assess the software quality. You will need to spend time analyzing the tests that failed, why they failed, and what needs to be corrected. Tests created once will need maintenance and continuous monitoring to keep them up to date. All of that needs to be kept in mind and the effort needs to be accounted for.

There is more to test automation than just the fancy reports!

Looking at the questions above, analyse the state of your test case, the intent behind its automation, and its feasibility, as well as the value that you might get out of it. Hope that helps you decide what tests you should or should not be picking for automation!

<Image credits – https://unsplash.com/photos/FlPc9_VocJ4 >

Introduction to ERP Testing and its Importance

<This is a guest post by Sohaib Zaidi>

In this era of cut-throat competition, global enterprises are facing tremendous pressure to enhance efficiency, reduce costs, increase sales and profitability. For this, more and more enterprises are embracing ERP (Enterprise Resource Planning) software. Apart from enabling enterprises to make accurate, informed and strategic decisions, ERP also helps them to stay compliant. Though the benefits of introducing cloud ERP solutions to your business are countless, yet these benefits come with several challenges.

Enterprises that have already embraced cloud are struggling to keep pace with the frequency of ERP software updates. ERP vendors like Oracle, SAP, Microsoft, Salesforce, etc are rolling out new releases and patches on monthly, quarterly, or biannually. Since cloud updates are rolled out at quick succession, enterprises are finding it hard to quickly test the updates and deploy these to production. Here arises the need of ERP testing

Why is it necessary to test ERP updates before deployment to production?

ERP updates bring new features and functionality, customer enhancement requests, and patches from previous releases. These updates need to be tested regressively since there are chances that they can impact a variety of functions that may cause disruption to business continuity. So, it is always recommended that before rolling out the ERP updates, QA teams should test critical business processes, validate reports, key workflows and test critical integrations with other applications.

Though manual application testing approach is still prevalent but it cannot be considered as a reliable solution in case of ERP testing. To understand this better, let us discuss an example of Oracle ERP. Oracle rolls out quarterly updates. These updates are first introduced to non-production environments. Oracle offers two weeks’ time to test these updates and raise issues. After two weeks, these get applied to the production environment. So, performing Oracle testing manually for these updates is non-feasible. Apart from time-consuming, manual testing is error prone, fragile and costly. Another disadvantage associated with manual testing is that it can adversely impact business continuity due to limited test coverage and its inability to identify change impact.

Embrace Automation Testing for seamless cloud adoption

Test automation not only reduces testing time of complex ERP systems but also ensures robust software quality. The biggest perks associated with test automation are maximum accuracy with minimum efforts, quick feedback, accelerated results, lower costs, and maximum coverage. Most of the test automation tools perform post release impact analysis to identify the impacted areas. Based on the impact assessment, QA teams can generate most relevant tests to execute validation. This not only defines the accurate testing scope but also delivers wider coverage which is not possible while performing manual testing.

When enterprises use test automation for security testing and constant maintenance, they get the opportunity to easily recognize defects. This approach significantly reduces vulnerabilities, helping enterprises to keep huge losses at bay. Automated testing also helps enterprises to overcome challenges of drowsy routine procedures crop up due to manual testing. Leveraging test automation tools, enterprises can accelerate routine procedures that consume time and cost to ensure a quick turnaround and superior ROI.

Author – Sohaib Zaidi – in his own words-
 
I am a technology enthusiast and professional writer with experience across niches like digital transformation, AI, IoT, & test automation. I love to write technology in simple tone so that readers can easily understand how embracing technology can deliver greater outcomes.    

Four Ways to Keep Testing Skills Sharp During the Pandemic

The global pandemic has many of us wondering about our job situation. There is insecurity and fear in every industry, and many workers are already bearing the brunt of layoffs or pay cuts. If you are in the same boat, you might be thinking about a career move soon enough.

But with most people working remotely, how do you prepare a skill set that is up to date for the testing industry? You need to take charge of your own training. In my article published at TestRail blog I discussed some tips to upskill yourself as a tester, now or anytime in the future.

1. Read

It sounds obvious, but it may not be so to everyone. There are hundreds of books available on all things testing, with more every day, so there’s sure to be something useful to you.

And in today’s day and age, reading does not only imply books. There are a number of blogs, community websites, and newsletters you can subscribe to for the latest articles and write-ups on various new technologies, tools, frameworks, and methods.

Take some time each day to read select articles that interest you and explore what new developments are happening in the industry. You must strive to learn things beyond what you are already doing and the technology that you are already using at work. If you can spare just 15 minutes a day to read your favorite journals, articles, or blogs, you will feel more a part of the industry beyond your own team and company.

2. Leverage online learning

There is no dearth of online courses or learning materials on any technology or tool you want to explore. There are numerous websites, forums, and YouTube channels that offer free content, step-by-step tutorial guides, and training related to software testing. You can start your learning journey with any one of them and continue to explore along the way.

Renowned industry leaders offer their expertise and knowledge in free or paid courses that you can attend online. If live training is not your jam, go ahead and find a self-paced video course. Some of them even offer you a completion certificate once you clear the quiz at the end. You can proudly display it on your LinkedIn or other professional profiles to showcase your skills to recruiters.

3. Connect and network

Connections and networking matter a lot in a job search. Even though in-person encounters aren’t possible right now, you can leverage the online avenues of connecting and networking like attending online free meetups, conferences, and webinars. There are many learning and engaging events that you can participate in to connect with other like-minded people. You can also get involved by helping organize these functions or starting your own group event or meetup. Read full article->

Read More »

4 Tips to Create a Simplified Test Plan for Your Agile Project

Planning is an integral part of initiating any project or activity, including software testing. Although formal test plans may seem outdated and unnecessary to most fast-paced agile teams that prioritize cutting down on documentation, it’s still a good idea to keep a pared-down test plan that can guide the testing effort throughout the project.

In my article published on TestRail blog, I talk about four useful tips to create a simplified test plan for your agile project.

1. Include the basics

A test plan can be as detailed as the team requires, but at the minimum, it must contain the context, timelines, and a brief overview of the testing activities expected to be performed in the project, release, or sprint.

Based on what level of test plan you are creating, begin with a basic heading, like schedule and timelines, testing activities and types of testing expected to be performed, people involved in testing, or any new hires or training required for the project or release.

2. Build off the project plan

Most of the test plan can be derived from the context set by the overall project plan, so give that a thorough read and get the details of the project lifecycle, expected delivery schedule, interaction points with other teams, etc.

Note any specifics that emerge, like shared resources with other teams, sync points for integration tests throughout the project’s lifecycle, or special types of testing needed, like performance, load or security testing.

3. Define a clear scope

Let’s say your project is a mobile application that needs to work on both Android and iOS. It would be beneficial to list all the environments and OS versions that need to be supported. Including them in the test plan ensures you set up the test environments early and allocate testing tasks across all of them. It also ensures that you are not bogged down by repeated testing on numerous test environments at the time of release. What is not defined in the initial test plan can automatically be considered out of scope.

Continue Reading ->

4. Use visual tools like mind maps

A simple Agile Test Plan using a Mind map

Read full article here

Continuous Testing in DevOps

Agile testers need to constantly rethink their processes and tooling in order to move toward faster and more reliable software delivery. The key there is to embrace the continuity. Continuous delivery is necessary for agile development, and that cannot happen without having continuity in testing practices, too.

In my article published on TestRail blog, I discuss the various aspects of Continuous Testing in DevOps-

Continuous testing

Continuous testing can be defined as a methodology focused on continuous quality and improvement. It can use a number of practices and tools to help do that.

Continuous testing encompasses the verification and validation of each piece of the software under development to ensure:

  • Code quality — Are developers creating code of good quality?
  • Application correctness — Are developers creating the correct features?
  • Place in the pipeline — Can the application code flow through the pipeline and across environments and specified tests successfully and easily?
  • A good customer experience — Are users seeing value in the delivered application?

Continuous testing is the way toward continuous delivery. Teams that struggle with continuously delivering on time or with high quality often find the solution to their problems by setting up good continuous testing practices.

Read the full article for some tips to improve your continuous testing framework and help your DevOps succeed, like-
  • Ensure test automation is the best fit
  • Leverage automation benefits in all aspects
  • Select the right tools
  • The Typical Pipeline & what it requires

Continue Reading ->

Agile teams must strive for continuous improvement of their continuous testing strategy. If they’re successful, they can reduce their release times from months or years to weeks or days (or even hours!). By adopting the correct practices and embracing the spirit of continuous learning and improvement, we can help our testers to become champions of agile.

<Image Credits – manufacturingchemist.com>

My Contribution to the eBook ’21st Century Skills for Software Testers’

I am proud to announce another one of my contributions made its way to the eBook titled ‘21st Century Skills for Software Testers‘. This initiative was started by Emna Ayadi and Ard Kramer asking for contributions from various testers on their thoughts about the essential pivotal skill sets that benefit software testers.

🚀 This bilingual book made by software testers is all about:
How we apply 21st-century skills:
🔸 Critical thinking
🔹 Communication
🔸 Collaboration
🔹 Creativity
and also how we are going to use these skills in the future.

#21stskills4testers

This was a great initiative to bring together thoughts of many great testers from around the globe. There are some great pieces featured and a number of things to learn. I am super excited to feature in not one but Two sections in there –

Check out what I wrote in the First section of ‘Critical Thinking’ – Section 1.1.15 ‘Stories of Testers from the Present’ and Section 1.2.8 ‘Imaginations and Thoughts of Testers’

Find the eBook here -> https://leanpub.com/_21stskills4testers And you can download the book for free (fill out 0 dollars)

Glad to be featured along with so many awesome people from around the globe!

I am grateful for the opportunity and always welcome more such chances to contribute my thoughts for the betterment of the testing community!

Cheers

Nishi