Author: Ajay Balamurugadas

Ajay Balamurugadas, goes by the handle ‘ajay184f’ in the testing community and is continuously re-inventing his testing methodology. He co-founded Weekend Testing – a worldwide movement for skilled testing, authored multiple books available. His friends associate the terms – ‘Change Agent, Idea Man, Motivational’ to him. He tweets under @ajay184f and loves to have long conversations on software testing and life in general. He is currently working at GSPANN Technologies, Inc. as SeniorDirector – QE. When not testing, he spends time with his wife and two children.
Mind Maps: Excellent Tool to Aid Testing Thought Process

Are you someone who has heard of mind maps and always wondered what it is? You tried your hand at one and couldn’t figure out how to apply it to your context. You have arrived at the right spot. This article intends to dive deep into mind maps and demonstrate how to use them for software testing. So, free your mind and enjoy the ride.

Let us start with the fundamentals: “What is a mind map”. A mind map is a visual representation of an idea. It has a central node called the parent and all the other nodes are called child nodes. What is the fun of learning about mind maps without a mind map? Here you go.

gmulwiJaOGreAJ1aHI O2OjnRPalt3rTPsKPQklMV9ywhjZmLZ9n8BgglFNx1xdmQoc0Hb PAA5SpsgTo5hjQjzZCxOp 5z1v5QS2ipivsGW0C7hroS5L6lLMsDvDOdAk9uAXiArMjPfV25s2D0VeIY
What is a mind map?

Mind maps have been in existence for many years still they are not as popular as they should be, among the software testing community. The mind maps can be used in almost every stage of a software testing release:

  • Requirement Analysis
  • Modeling
  • Test Design
  • Test Execution
  • Bug Hunting, Investigation, Analysis
  • Test Reporting
  • Documentation

Before we dive deep into why one should use mind maps extensively, let us understand the current scenario and why they are ineffective. We, humans, don’t think in lists or a linear manner, yet we linearly document most of our understanding. While brainstorming, not everyone thinks about the same topic at the same time with similar intensity. Our brains are wired to think non-linear and make connections in an instant. Instead of using a format to capture the explosion of ideas, we force our brains to adapt to the format.

For example, if I ask everyone to write down their first three thoughts when they hear the phrase – “Reduce production issues”, I bet that each one will come up with totally different ideas.

As a notetaker, trying to capture all of these ideas in a format like lists or docs will be counterproductive for at least two reasons:

  1. It is highly time-consuming to switch sections, edit, think which point will fall under which topic, and also worry about the formatting
  2. It is limiting for the thinker as well as they need to wait till the notetaker has completed capturing the points conveyed so far.

Compare this with a mind map and as and when the topics are highlighted, it is a matter of just one keypress to create a node and add the point. The notetaker doesn’t slow down the thinker. Formatting, and arranging the nodes is easy, especially with shortcuts.

XMind 8 shortcuts:

Enter – To create a new node

Tab – To create a subnode

Ctrl + C / V – Copy / Paste

Ctrl + S – Save

Ctrl + B – To create a boundary around a node (green rectangle effect)

7SBisyysjoe5akxZHN1ewu7SOxdXTHoqAUUWGV8uGx9V7xpgMxxawnEZ0v0UEViwQEAgGNKaxsMWeYPUx28XD949ExlwVP V2EtlqPE77oK4qRq
A Tester’s New Year Resolutions

Mind Map.mov We need to show this as a movie within the article. It is 7 mins long. It could be 1.25x the speed too. 

Let us now focus on how to use mind maps at every phase of software testing with an example from OrangeHRM – Requirements Module.

recruitment module

Requirement Analysis

qpBkM4Pv60QatpOVvn302oE3yKl89BI5 01PCO 8cxNbME1JnyloBs 4fS9gjYc5eEyMRghrBvAA471hkr9gYbgH4nOm3r 5Qi2 0VlO
Analysis of the “Recruitment” Module

As you can observe, a simple paragraph has been dissected and multiple chains of thoughts are captured. We can also link similar thoughts.

Modeling an Application

Modeling Swiggy App

You can learn more about Systematic Product Modeling through this Worqference video – https://www.thetesttribe.com/courses/worqference-2022-15-workshops-recording-bundle/ 

We can use mind maps to model any application, note down its visible features, mark the interdependencies, chart out the data flow, and highlight the interfaces. 

Test Design

We could duplicate the feature map and add test ideas as nodes for the specific feature.

2a925Payq87EzW1wv6yst2NHqGqhx5o4eAztb3k2UIQikwRgi66B30xNwCO2CanO0qnBxq 8GCRuFoCASdUey7zkmGq nRzISRTJfhlbgdCSbdb2SeOTb9TT57f6yUEwLrqcmRjYw5w7n4QJ0h0F6TI

Test Execution

For the same map, we could use it for execution and update the results as shown below

ifiY4j 98kDNYAedz4 xpegs61hvK1JpSf viWBv00BKXMtkMNiSNK oiUA6lHRvre7xY0Qkszwxac42bbVyz Aau72dtPqQU9llaRpxAEY31xom95ENrP8r ACG1ISUbYvU4Fdb

Similarly, mind maps can be used for multiple tasks in testing. 

If you want to analyze all the existing bugs in a project, you could note all the bugs in a mind map, group them and also connect similar bugs.

Common mistakes

Though there are no rules for mind maps, there are a few common mistakes that you can avoid:

  • Many nodes
    Instead of having many nodes, group nodes logically.
  • Long sentences like this stretch the map and make the map look small
    Ensure that the sentences are divided into two lines.
  • Add more details than necessary
    Remember that maps are not detailed documents. These are used to help connect the dots quickly. So, use phrases.
  • Make it bland – no colors, no icons, no images
    Avoid that. It is boring. One can also use colors/icons to differentiate states, status, or any other parameter.
  • Unbalanced maps – More nodes on one side compared to other
    Move the nodes so that the overall map is not skewed to one side and it looks balanced.
  • Export in mind map format and not in png/pdf
    This is a classic mind map 101 mistake. People start assuming that the whole world uses mind maps and expects them to open the mind map in the right application. Instead, export the mind map to an image/pdf and share it with others.
  • No conventions used
    Start using the legend and keep all nodes consistent with the overall conventions.
    Ss2mNuLv3WVidfB53FZTKvGh4E EOpDStwvozcbFJxyVrqt JFT0JmxlnrGKzzpKzfyqmSkq5aCOxg7VUAL8cT7cICZXErflmPAH ZWHRjjlIe8sTKby

Useful Tips and Tricks

  • Create a central node, Press Insert & Enter
  • Create outline on paper first
  • Learn shortcuts
  • Save regularly or switch ‘Autosave’ on
  • Try to fit the map on a single page
  • Use Multi-line sentences
  • Use themes and maintain consistency
  • Keep practicing

Common Tools

There are many tools available on Desktops, the web, mobile, and tablets. Here are some of them:

  1. XMind
    My favorite is XMind 8 even though there are the latest versions like XMind 2020 with features like Pitch, and Zen Mode.
  2. MindMup
  3. Novamind
  4. MindMeister

Conclusion

Once you start using mind maps, you will love them and enjoy the freedom of thinking and note-taking simultaneously. You will save a lot of time, and effort and collaborate effectively. There are multiple resources created by the community. Get inspired and inspire the community.

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

03
Finding the Sweet Spot: The Benefits of Combining Manual and Automation Testing

As much as we don’t want to split software testing into manual and automation testing, it makes sense to start with those terms, explain why testing is testing and then discuss the benefits of combining manual and automation testing. In other words, how to balance testing with and without tools.

What is Manual Testing?

Typical definitions are on the lines of – A type of testing usually done without any tools for executing the test scripts. The test design, execution and reporting is all done manually – without any tools. If we look at the dictionary for the meaning of manual: it means relating to, or involving the hands.

gvJwcvZBegJcyEM4Bn5UaY29yPWRMXpAYwzQ1UIMEUInEyeAA7SGN54W0zO5 9boTat4 nU47D RP3cOlCHAdgd49WBTp9n6YUtcNGVNSVKJlJC44T3bsNyYk M QkLY0M1H4nsaUo74WJZYdcNl4p4

Activities of Software Testing

Any software tester knows that software testing is not a hands-only or physical activity. It is more mental, thinking than physical tasks. Before we talk about use or lack of tools in manual testing, let us consider some of the key activities in software testing.

Tools and Manual Testing

Communication, analysis, collaboration, modeling, test design, test data generation, test execution, bug hunting, reporting, investigation, test reporting, documentation and note taking and more. Now think about how many of these activities are manual or hands-only work. If you think we don’t use any tools for these activities, we need to dig deep into what we classify as a tool. 

  • Is Google Doc a tool? 
  • Is Find > Replace All an automated or manual activity? 
  • Using a formula to calculate the sum in Excel automation? 
  • Removing duplicates using ‘Remove Duplicates’ in Excel a manual or automated activity?

The way we have classified automation seems to be on the basis of how the scripts are executed. Even then the test scripts don’t get written automatically, configured automatically, evaluated automatically, and the reports analyzed automatically.

Automation in Testing

Instead of differentiating testing as manual and automated testing, it makes more sense to let “testing” be the superset and highlight those activities which are heavily tool dependent as “tool-assisted testing” or use “automation in testing”.

Combining Automation and Manual Testing

The industry is at a strange stage right now. The majority of the testing industry still believes in manual and automated testing. You would appear to have landed from a different planet when you go ahead and explain the real meaning of testing and automation in testing. Nevertheless, there are multiple camps of testers who call themselves manual testers and ready to move to automation testing. There is the other camp which prides itself in automating most of its testing. 

Here are some actionable tips to find a sweet spot and combine the best of both the worlds.

Test Data Generation

Once you identify the type of tests to be conducted, you can use automation to help generate different sets of test data. Let us consider an example of testing a form with multiple fields.

lvD4 NYGR4oAdVGnXjSY13taR03UbAIYy03Dfb ZbsYP8UJnZxzKBopHACRsEQsyNcSrm ICt3NJR 3mG8KEBaqlzVdU3YDODHTFnF1cfI mX48IJwCBJN5Fnsy6CrWnzpbpx5ekuzlUBc8UCDV sq8

We have username and password fields as text fields. 

Username and Password:

  • Valid
    • Minimum characters
    • Maximum characters
    • R2L characters
    • Existing username
    • With Diacritics
  • Invalid
    • Not satisfying the conditions (Ex: no space between characters)
    • Less than minimum or more than maximum

One could generate the users one by one without using any tool or use automation/test data generators to create the data.

Sample output from a test data generator is as follows:

Cf5yHl5 Bx0GpX9lRto5rtcqXV6gq1kLoGLENGMfx2UErnPiRctwSJFn cacbeTG5vK0N7UbHK5R2IRp zbQFY BJwonhl84gi3Ke N8CejvSlcoZ3MkwF8X2X8ir0fGSUN DEoUwsttnqKHzZDsVAA
Mockaroo – Test data generator
WAzw2RDJfbLRoYK7XM00CrjcQ3 unW197 een4caJrBv LvDNh2JFZBtqL7jmFTDkuBbWASz36vTNDucI6NYySeZHRoVR7KU Mybs61lLdMfysBof0f4cH83CShDk Md jy2k OiWUqbJibQL8G94aI

Partial output from Mockaroo

If you observe the data carefully, the variety is missing. This is where the tester has to step in and strengthen the test data.

Another example is when there are multiple conditions to be tested and you apply the pairwise testing technique to see if there are any bugs caused by a combination of two variables.

Manual and Automation Testing data

Pairwise Online Tool

Output of Pairwise Online Tool

Automation doesn’t understand that ‘Coupon, Address, Gift Wrap’ don’t make sense when you are adding a product to a wishlist. This is how you combine the power of automation and human skills to save time and avoid waste.

Long Duration Test Execution

There are certain bugs that might appear on prolonged usage of the software. During the short release cycles and execution across builds, it is difficult to execute such tests. Using automation, one could dedicate a certain environment and machine for this long duration test – which would help simulate a user behavior and act as a net for such bugs.

Automate the exhaustive tests

In one of the contests, James Bach demonstrated how he used automation (tiny script) to go through all the products and download the details to a file. There were 500+ products and doing the same exercise without any tools could be highly time consuming and error prone. 

Automate the mocks

There are certain applications and use cases which are heavily reliant on state transitions. Everytime you need to test a certain scenario, the prerequisites need to be in place. You cannot refund an order unless it is placed. So, if you need to test a refund, it is not ideal to start from scratch, place the order and then go test the refund. Think if automation can be used to set up the application’s state ready for your tests. It should not just have the products in the respective states but also update the DB so that the next actions have a realistic effect overall. 

Automate the sanity or regression test suite

Based on the product maturity and release feasibility, can automation complete the other tests? If yes, pick the right set of cases to automate – be it the sanity suite or the stable features. If the value gained by automation results helps the testers focus on other critical tests, it is a win-win situation. The key is to use automation to maximize the power of machines to assist humans in testing.

The teams that don’t leverage automation fall behind others. At the same time, the teams that blindly treat automation to be auto-magic also suffer. The trick is to conduct a quick automation feasibility and automate the activities (and not just tests) that will free up the testers for more productive activities. 

Summing Up

To summarize, list out all the activities the teams are involved in. For each activity, see if automation can help. If needed, divide the main task into sub-tasks. Once the tasks, sub-tasks are identified, automate them. Continuously evaluate the costs-benefits and see the value add for the testing team.

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

00
Breaking into Software Testing: Tips for Non-IT Professionals

There are multiple reasons why someone from a non-IT background would want to switch to an IT career. It could be out of curiosity, financial needs, a better work environment, or personal needs. Some of the skilled testers are from non-IT backgrounds like journalism, arts, research, and so on. 

This article provides a comprehensive approach to switching to an IT job from a non-IT background by focusing on the three key pillars – mindset, training, and practice. 

imkg58UGou3xUFV HP4Ak2kLWFmEQd1l1xqWtns XftgEXSKVuaRh2h3U9rYbn4zd8Gmd1ve8zO1L mIgI

1. Mindset

Attributes of an IT Professional

Every career has its own set of values, skills, challenges, and opportunities. For any career – be it IT or non-IT, everyone would encourage and welcome the following attributes of the professional:

  1. Trustworthiness
  2. Skill
  3. Curiosity
  4. Learning attitude
  5. Coachable
  6. Positive attitude

Importance of a tester mindset in the software testing industry

When one switches to a software testing career, in addition to the above attributes, one needs to understand that testing is a search for information about the quality of a product. It is both an art and a science. There is a structure to the investigation and exploration. Skills like questioning, making notes, quick learning, working well with people, and working with computers and technology play a key role in a software testing career. One should be prepared to encounter chaos, and confusion and bring clarity to multiple stakeholders. A good software tester should look at everything with a critical eye, be up to date with technology, understand user emotions, learn to conduct experiments on the product, be a good investigator and have the courage, to tell the truth.

Tips for building a tester mindset

How do you build a tester mindset from Day 1?

  • Be observant. Ask questions. Be insanely curious.
  • Learn to describe an object or an event in various ways and dimensions.
  • Make notes and learn to tell a convincing story of why your experiments are worth your time
  • Talk to people, and users, and pay attention to their expectations, emotions,, and words.

As a mindset is a continuously evolving concept, do not be disheartened or feel overwhelmed by reading all these points. Take it at your own pace and be happy knowing that if you have a strong tester mindset, you will succeed in the testing industry for a long time. 

2. Training

Once you have taken the steps to build a tester mindset, it is time to begin training. We are lucky that there is no one institution or industry standard that dictates how everyone should test. This now brings in so many training avenues – blogs, videos, courses, books, training, and so on. When you ask someone about the variety of options available in software testing, you will be bombarded with combinations from these blocks. Refer https://www.thetesttribe.com/software-testing-career/ to make sense of these exploding combinations.

ZQsHNK3x90NqSxlGG
The Testing Landscape (condensed)

The testing landscape and the changing trends

The testing landscape is vast and the trends change rapidly. The good part is that if your fundamentals are strong and you can learn quickly, you can switch across the combinations from the above table. Believe in the journey and start small with realistic goals. 

  • Recommendations for self-study, including a 20-day syllabus for newbies in testing

You could also start on a self-study journey by using the mind map as a guide. NPNT2zCawT8cPbU5 umny7Da lXxHgZRQ4047t dhdMPQ9jzj6 bvhgY7 X2SsySwUziXFbLK72 7WfF68gcT45vmmrHOlrDRA5n9ecefSuCXmA7pTTP 4whAsuR1dOGGFOh EUdsqnIkRS1McoybQ

20 Days Syllabus for Newbies in Testing

Another key contributor to your learning is an association with like-minded testers and learning from different contexts. One of the easiest ways to get a breadth of the software testing landscape is to binge on testing videos that are short and varied.

You can watch videos from TestFlix 2020, 2021, and 2022. Do make a note of the topics that interest you and you can then dive deep into the specific topics. You can take the help of the Library of Testing to know the different types of resources for a specific topic along with the votes by the community.

Importance of association with like-minded testers and learning from different contexts

While learning, one might be tempted to try out multiple topics simultaneously. Beware of learning everything now. Take it slow – both breadth and depth-wise for any topic. Also, do not hesitate to take guidance from a mentor. They not only help you get unblocked soon but also alert you of the traps you might get into. 

Once you have learned the fundamentals and become strong in a specific topic, it is time to consciously include practice in your daily routine.

3. Practice

Every professional practice regularly – doctors, lawyers, firefighters, writers, and others. As software testers, we also need to practice regularly. 

Some of the practical ways to sharpen your skills through practice are as follows:

Pair Testing

Pick an accountability partner, test together, and share feedback with each other. In addition to learning about different approaches for the same problem statement, you also build your network. This will help you in learning, brainstorming, and job switching too.

Online Portfolio

As you learn, keep adding the samples to your GitHub. When you test, add the test reports, notes, and bugs to your portfolio. You could also add your learning notes.

Contests, Hackathons

A good test of your daily practice can be assessed in the hackathons and contests held within your company or the testing communities. You can also learn from other testers on what kind of bugs they discover and which tools and techniques they used for the contests.

Blog or video

Do start a blog highlighting your experiences. When testers usually hesitate that the topics have already been covered, we should remember that every tester’s experience has not been covered. One’s unique perspective will always be the first read for someone. If not for others, write for yourself first.

Meetups and Talks

It is also recommended to attend meetups and conference talks, and also to present your ideas to a wider audience. You can discuss with testers from other companies, those who have already traveled your path and can relate to your journey. The ones who leverage the power of communities grow stronger quicker compared to the testers who restrict themselves to their own companies.

Conclusion

Having understood the mindset change required for a shift into a testing career, made peace with the multiple learning opportunities, and created your plan for practicing testing, it is time to take that leap. All the best and feel free to ask the community to help. We all welcome you wholeheartedly to the testing community.

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

01
ChatGPT and Software Testing: Embrace or Tread with Caution?

The world is continuously amazed by ChatGPT and its applications. Every day multiple people post the applications of ChatGPT in their respective industries ranging from marketing, copywriting, sales, operations, and more. While we thought about ChatGPT for software testing, we have a mixed bag of opinions. 

We do not doubt its benefits to the software testing community and at the same time, we are aware of the dangers of blindly accepting every output by the software. At best, it is a good heuristic to use and by nature – heuristics are fallible and not rules. As the output of ChatGPT is heavily reliant on the prompts, it is largely dependent on the skill of the software tester providing the prompts.

Making Use of ChatGPT in Software Testing:

Here are seven different ways one can use ChatGPT in software testing:

1. Test Idea Generator

Wouldn’t it be wonderful if you can have someone cross-check your list of test ideas and also suggest an initial set of test ideas based on your prompt? Let us try this out on a flight booking website for a specific type of booking – Round Trip

chatgpt in software testing

Few quick ideas before we ask ChatGPT:

  • Valid cities in both From and To
  • Autocomplete / Autosuggest
  • Validation of the airport code and spelling
  • Validation of the search results (count, accuracy, speed, sorted display, pagination…)
  • Multiple combinations allowed (Same date – Different date, Number of travelers and class, fare type)
  • Match with the API and consistency across platforms
  • Error messages (I added this after typing the next sentence)

Now let’s ask ChatGPT for the test ideas with as detailed prompts as possible

chatgpt for software testing

Based on the output, it appears to have focused more on the idea – Multiple combinations allowed (Same date – Different date, Number of travelers and class, fare type)

Let’s use Pairwise Online Tool to generate combinations along with exclusions

The two exclusions are:

  • 1 Adult cannot travel with 2 children
  • 1 Adult cannot travel with 2 infants

The other exclusion I wanted to highlight but couldn’t do because of the limitation of the tool was:

  • 1 Adult cannot travel with 1 child and 1 infant

The output from the Pairwise tool was a total of 21 cases. We will exclude Case #4 for the above exclusion rule.

GAl ysRD36d4XmoYphJzGnsfwGPO8swlQ5kyfbVre

Now, who did better? ChatGPT’s output was a good starting point for one of the test ideas which could be improved using another tool. 

We could also dig deep into each of the test ideas with pointed prompts to get a better response.

For example, when we asked ChatGPT to generate ideas for error messages, the output was not disappointing.

chatgpt use cases

Some of these cases are outside the scope of the current feature variables under focus (ex: insufficient funds, invalid card details…)

You get the drift, it is a good starting point provided you know the drill. You have to critically analyze the output, pick the useful points and leave the rest.

2. Analyze key statements

Imagine a sentence from a requirement document and what if ChatGPT can analyze the sentence and provide us with multiple interpretations of the phrases?

Let’s try it out. We will use the example from Google Meet 

For users with personal Google accounts: You can have a maximum of 100 participants in a meeting. 

9jcgOUhTkBYkT4mM1VQ8mftfhopxN5Rvy6ab amTa5qk6XF8Ntw5qoCt7XfVmAOm1n2BmotZo97n16zGobT9Euk IEPFZlcZ7hmisUUoNqmdW15C8IGYLF 7UEKZM0W J7oXYuJXvMs2osmREFZh U

I feel that 3,4,5 are convey the same meaning but in different words. I would use ChatGPT to give me alternate interpretations to cross-check against my understanding and interpretations.

3. Learning Guide

One could use it to kickstart their learning about a topic and build on the outputs. For example, if we want to understand how to test multimedia, we can ask ChatGPT for initial pointers.

SvbMaD4iz9ko9tePXGiMMPzogEnzkAubBbVYO07VOv6TpMpGxKWRJL9W yuSG5EBSSDB3jO L 5bm XBs1CSExCIO1aHvxG z jiRb1lz7v8BkN 62OQ69BOfUuZ31zLta2HBbCbk2yaAaq0b34way8

I would then refine more to ask more deep questions.

  • Kind of audio and video issues to expect
  • Parameters affecting audio/video
  • Tools to test audio/video
  • Terms associated with audio/video testing

Now, is this the perfect answer? I don’t know. But it gives me enough guidewords to start my journey. I can now read more about codecs and their relation to multimedia.

4. Snippets of code

Can it generate snippets of code that can be built upon? I have seen multiple examples posted on social media on how ChatGPT can generate code in multiple languages. 


Example: Write code in Python to read the contents of a file and list out the number of duplicate elements and also sort them in descending order based on the number of characters in each element

Xq8L1vqVLyTpC9RsF7H6hlubzQrxVGMxhRxz1aqRaKxB14VThK6RmbAjTCcElETs07SK6jEiGkDsRd0 pZQ3zNW0yQg9HGgjwr1kOyWzAstvzWNAnvAsbwLTaVjLXoIv3Kt9dwOD wZmcy3ZfUFdsDs

Did ChatGPT achieve the objective?

5. Summarize a document or video

As of date, ChatGPT is not able to create images or watch videos. Providing the transcript of a 15 min video could generate a summary for the video – “Become the CEO of your testing” by B. Ajay | testing scope | TestFlix2022 | Testing tips and tricks

wvblkajdtEgt99qmHxInYIsftznf85pfsqSjr2f2tOJU4Qj4S6KCDwznjsSjRxn8I3ymvx cFjVXVD8uqOTtvBC0i4JR0GHdCWzpfl9QtwUrfUNQiMjloxaviXb8Qb1KxS E

You could also use extensions like YouTube Summary with ChatGPT to get the transcript. 

6. Topic Outlines

I thought for a while about a blog topic and then asked ChatGPT to create an outline for this article itself

The result is a well-structured outline and saves a lot of time.

Akb0WFE7J2847oxQtP0TD0ZJV2kIo4MCFnYEOjCvsTPSlTDMGmfMsxcKih26uJ 0AAgHopD7uLpLCp F61L84enpZmYnzzYB

Will ChatGPT replace jobs? Not so soon. It is a good assistant and needs skilled folks to leverage it to its fullest potential.

7. Brainstorming partner

Ideas can strike anytime and if you want to brainstorm on different software testing topics, get a different perspective, compare and contrast topics or even have an assistant to help you with your research, ChatGPT can be a good starting point.

Conclusion

For the different use cases highlighted so far, analyzing the ChatGPT responses, we can arrive at the following conclusion:

  • ChatGPT is a good starting point and needs skilled testers to build on top of the responses
  • It is a language model and with the appropriate learning techniques, the quality of the output will improve
  • Treat the responses as a heuristic and not as a rule. 
  • Know the power of ChatGPT and make use of it.
  • Continue experiments with ChatGPT and pick the right responses to implement.

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

00
The Different Career Paths in Testing: Which One is Right for You?

We are fortunate that no one can decide the right career path for us. Picking the right career path is as contextual as picking the next offer letter. Let us explore why it is such a personal decision. To understand more, we will have to dive deep into the history of software testing

Don’t worry, we will start with the 21st century, i.e., 2001. Most of the teams were still following the waterfall model of testing; releases were a few months long, and there were specific teams for development and testing. Fast forward to 2023, and we have a wide range of projects; some finish within weeks; there are no testing teams in some projects; and most of the teams are following their own version of agile methodology.

In these 20+ years, we saw a few new roles in software testing as career paths emerge, like SDET. It was never as popular as it is now in the 2010s. While there were testers performing the kind of testing required for the project, we had very few dedicated roles like performance testers, security testers, and accessibility testers. Time has evolved, and the job market is now flooded with unique roles. 

At the end of the day, while the decision is to be made by the tester, we can touch upon a few software testing skills and questions that might assist you in picking the right role and the right career path in testing.

Different Software Testing Career Roles 

Talking about the different roles, here are some with a brief explanation:

  • Individual Contributor

Mostly a full time position, this person is expected to be hands-on and fulfilling the daily responsibilities. It could be on any quality criteria – functionality, automation, security, usability, performance, accessibility, usability and so on. You could be working on only web, mobile, API, desktop or all of them depending on the team size and the company expectations. 

  • Lead or Manager

You might be expected to lead the project, provide guidance to the team, and be hands-on as necessary. You will be dedicated to one big project or 2-3 small or medium projects.

  • Architect

Your specialization is in system design, design patterns, architecture patterns, assisting multiple projects and helping build frameworks from scratch. You will be the go-to person for any technical challenges in the projects.

  • Consultant

Mostly a contract role, you will be hired for specific skills for a limited duration. It could be to fill the domain gap within the team or to strengthen the existing teams. You might be paid higher than a full time employee but without the benefits of a full-time employment like PF, leaves, insurance and so on.

Now talking about the company’s career path, each company has its own set of designations for its employees. The following are some broad designations:

  • Associate Test Engineer
  • Test Engineer
  • Senior Test Engineer
  • Test Lead
  • Senior Test Lead
  • Manager
  • Senior Manager
  • Management

Remember that startups might hand over your desired designation much quicker than an enterprise. 

Testing Roles Based on Skills

There are some roles specific to the skills one possesses:

  • Functional Testers: 

These testers are strong in functional testing skills, participate in the testing cycles from the beginning, spend time understanding the requirements, designing test ideas as cases, scenarios or checklists, executing them, filing bugs, investigating them and finally submitting the test reports highlighting the tests done, test coverage and their view of the overall product quality.

  • Automation Engineers: 

These testers are skilled in programming languages, tools used to automate the products (Web, Mobile) through different layers (UI, API, Data) using open source or commercial tools. They either help in regression testing or end-to-end testing. Sometimes, the automation can be used for generating test data and for quick validation as well. 

  • Product Owner (or Business Analyst):

With some experience in testing or development, we have seen multiple folks move towards the product development side. They are good at understanding the user and business and arriving at features for user delight and business growth.

  • DevOps Engineers

Testers who have the skill sets with pipelines and tools useful in deployment slowly seem to transition towards DevOps roles and help both the testing and development teams.

As highlighted in the diagram above, there can be a number of possible combinations.

While we have discussed the designations, roles, and skills, a number of software testing career paths are based on quality criteria.

Apart from functionality and automation, many testers have carved out their careers as specialists in security testing, usability testing, accessibility testing, and performance testing

Each of the quality criteria has a lot of potential for anyone to dive deep and become a specialist. You can always start with the fundamentals, gain experience, move on to the intermediate levels, and later work on the advanced stuff. 

One could also become a scrum master and facilitate releases across teams. There are a few other software testing career opportunities for those who have the PMP certification which creates opportunities for project managers. You could also be a delivery manager without any certification and be accountable for project releases.

There are some interesting paths to discover as well. You can be an evangelist for a product, a trainer on multiple topics, conduct workshops, and, in some cases, go ahead and start your own communities and companies. You could provide testing services, be a freelancer, or gain money by being a content producer through articles, blogs, videos, books, and so on.

The possibilities are ample. It is up to each one of us to decide which path will suit us. The fundamentals remain the same: get very good at the skills and keep progressing. No path is easier than another. 

Some paths may pay more, but there will be thousands of others competing with you on the same path. Some paths are so niche that they don’t pay you much, but the opportunities might be more secure. Also, remember that none of the paths prevents you from choosing another path in your software testing career. The trends are changing rapidly. As long as you are able to add value to your role, demonstrate continuous learning abilities, and get work done, your future will be bright. With every choice, remember the trade-offs too. 

So, here is a concluding list of guide words to help you decide your career path

  • Learning opportunity
  • Industry trends
  • Longevity of the skill
  • Financial aspirations
  • Work pressure
  • Interests
  • Skills
  • Experience
  • Competition

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

00
How to Create A Comprehensive Sanity Testing Strategy?

Products are getting complex with time and release times are getting equally shorter. The tolerance for bugs and poor quality has decreased significantly, largely due to the abundance of software products. You name a category, and there are at least 50 companies working towards it, however niche you might think of it being. The competition forces everyone to optimize their time, effort, and resources even more than before. People don’t want to rework; they want the best quality from the start. So, before we dive deep into testing a product, a comprehensive sanity testing strategy acts as a much needed checkpoint in the release cycle.

In this blog:

What is a Sanity Test?

It is a subset of the exhaustive list of tests that you could perform on your application. This is the set usually executed first most of the time. Based on the results, the exhaustive list of tests could be picked up for execution or the build be rejected. Does it sound similar to a smoke test? In some cases, yes. Every company and team has its own definition. So, work with what your context demands and justifies a test to be a sanity test.

Objective of a Sanity Test

A strong sanity test suite helps everyone understand the health of a product, and based on the results, we can then decide whether to spend more time testing it or reject it. The objective of a sanity test should be to confirm that the following types of functions are working fine:

  • The main use case of the product
  • Customer facing features
  • Most critical features
  • Most used features
  • Features promised in the specific release
  • No blockers in overall application (tricky ask)

We have seen multiple testers spend a lot of time testing multiple features and reporting many bugs; they forget to test for sanity. That is a risky approach. You never know if those bugs are a consequence of the few failing smoke tests.

Sanity Testing Checklist

Let us look at the checklist for creating a comprehensive sanity testing strategy:

1. Systematic Product Modeling

As soon as you receive a product to test, spend a few hours playing with the product. Go through every feature systematically to understand how the feature behaves. Figure out how the feature is interacting with other features. Pay attention to the defaults and the error information. Any information about the product now is worth its weight in gold. This helps create a mental model of the entire product under test. If you are wondering how this is related to a sanity testing strategy, let me explain. The more we know about the product, the stronger our tests will be. If our knowledge of the product is shallow or limited, we would be scratching the surface. We would be getting a false hope that we have tested the sanity but we would have left many features unexplored. There cannot be a bigger risk than that.

Following figure illustrates an example of partial understanding of the product. The functionality marked red might not be discovered till we dive deep into the product. If the sanity test suite is not updated frequently, it might be on the regression suite but never get on the sanity suite. The overlapping circles denote interacting features. So, by performing a systematic product modeling, we understand the scope of the product first. With this understanding, we will now be able to find the right tests for the sanity suite. Check out this course to learn more about systematic product modeling: Link

sanity testing - systematic product modelling
Systematic Product Modeling

2. Understanding The Users

While every user is unique, you can group them by behavior or personas. Once we understand the types of users and their typical usage patterns, we can design our testing strategy accordingly. If your users hardly use the website and are mostly on the app, it makes more sense to test the app more than the web. Taking help of the analytics, we can also focus on the most critical flows in our sanity suite. Some teams dive too deep into certain features and as the sanity suite is too large now, they ignore the other features. If you want to have comprehensive coverage, pay attention to all the features equally. Spending some time with the support team also helps in understanding the calls made by the users and which flows are trending. 

3. Take Help of Heuristics 

A heuristic is a fallible way of solving a problem. When we don’t know how to solve a problem, heuristics can help us, though they are not guaranteed to solve the problem. There are multiple heuristics like SFDIPOT, RCRCRC and FEW HICCUPS to assist in testing software. These can help in creating a robust sanity suite.
For example, RCRCRC stands for
R: Recent
C: Core
R: Risk
C: Configuration
R: Repaired
C: Chronic
Using this heuristic, one can design both the sanity and regression suites.

4. Keep It Up-to-Date

A bigger mistake than not having a sanity suite is to not update it often. When the features get updated, bug-fixes change the previous implementation, some features get deprioritized, it is time to update the tests too. Some of the features mature with time and there are not many changes to those features as well. With time, the sanity test suite might bloat and try to trim the suite as well. The purpose of every test in the suite is to find a bug. If the test doesn’t give you the confidence of finding a bug, remove or update it with a more powerful test.

5. Lean Documentation to the Rescue

In one of the projects, the sanity suite itself took 2 hours and the overall regression suite took 2 days. Teams need quick information on whether to reject or accept the build. In some contexts, 2 hours is a lot of time. Keep it lean. See if the sanity testing checklists, guidewords, mind maps work well compared to the test cases, guide words and scenarios. Having lean documentation helps in easy review, update and execution.

6. Complement with the Regression Strategy

Having a case in the sanity suite for a feature but no more cases in the regression suite doesn’t help. While there is rarely a need to repeat a case in both the sanity and regression suite, it is important to have both the suites complementary. Based on the results of the sanity suite results, the order of execution in the regression suite can be modified.

Building a Sanity and Regression Test Suite Together

Let us take an example to describe both the sanity and regression test suite for the ‘Increase font size’ feature in Google Docs.

Sanity Test:

This could be answered by the question – What is that one thing this feature is expected to do without fail in most of the cases?

The answer would be: “Increase font size” when you select some text and click on this option or use the shortcut to enable it. And that becomes the sanity test!

sanity test example

Regression Test:
Every test that one can think of as important in the context of the product’s release. A few examples of test ideas are as follows:

  • Does the font increase for
    • A single letter
    • A symbol
    • A word
    • Multiple words
    • Multiple sentences
    • Multiple paragraphs
    • The whole multi-page document
  • Can we have different font sizes for the different sections of the document
  • Will undo, redo work with the font size changes
  • What is the max limit till which the font size can be increased
  • What is the increment in which increase/decrease font size work
  • Is the increment consistent for all kinds of text
  • Will the setting be preserved during printing

and so on.

Common Mistakes to Avoid in Your Sanity Testing Strategy 

Also, beware of the following mistakes in creating a sanity suite

  • Not covering all the features
  • Either being too shallow or too deep, both not helping the purpose of a sanity suite
  • Not using automation if there is a possibility to automate the suite
  • Ignoring the analytics and keeping the suite static
  • Not taking the sanity results seriously

Summing Up:

Once we have a comprehensive sanity suite, we can expect key gains in productivity as teams don’t spend a lot of time testing the buggy build. The sanity suite acts as a strong gatekeeper. It is easy to implement and needs discipline to maintain it as a strong suite.

This post is a guest blog by Ajay Balamurugadas. We’d like to thank him for contributing yet another informative piece for The Test Tribe. You can connect with Ajay at :

00