Showing posts with label Problem Solving. Show all posts
Showing posts with label Problem Solving. Show all posts

Wednesday, June 18, 2025

Monetary Value Round Off -- A Legal and Business Problem

 

I read a blog post from Gaurav Khurana suggesting on round off of a number having decimals.  This is the post.  What made me curious is that number and what it meant.  It was a discount money having decimals.  Here, the number of decimals was not restricted to two.

Gaurav, said, it is a better experience if that discount amount is restricted to two decimals and rounded up.  Initially, I see, this is a fair expectation.

Here is the pic of a bill which Gaurav has shared.  I'm using it here on his permission.


I woke all of a sudden at 2:18 AM today, and I relooked into the post and that value whose decimal is not restricted.  I said myself there is something which cannot be rounded up or rounded down here and I could interpret it for a context.


Interpretation of the Value and its Meaning

  1. The "Bank Discount" showed the below amount
    • - 450.90999998999996
  2. The amount is in Indian Rupees
  3. This amount tells, it is the discount offered by the Bank on that transaction
  4. On round up, it will be,
    • - 450.91
  5. If I use the round up value, then the "Balance Paid" amount will be,
    • 4,058.18
  6. If I do not use the round up value, then the "Balance Paid" amount is still,
    • 4,058.18
  7. If I do not use the decimal values in "Bank Discount", then Balance Paid is,
    • 4,059.09
      • That is, I will have to pay 0.91 rupee (91 paisa) more.
    • In this case, someone is at loss.  Who?
      • Business?
      • Customer?
        • In the context of this bill, it is, customer who is paying.
        • Customer will pay 91 paisa, which is, almost one rupee more.
          • Now, imagine, the profit which business makes from all its customers for not having that decimal values in the amount!
        • Is this right?
The meaning and value of Balance Paid is not affected, in both cases, that is,
  • When I use Bank Discount value as is with decimals.
  • Or, When rounded up with two decimals.

My question is,
We should have check on decimals shown and used.  But, should we round up the number when it is of monetary significance and value?


Why I have this question?

  • Refer to the below examples.
    • 450.35
      • On round up, it will be 450.5
    • 450.55
      • On round up, it will be 451
If observed, on round up, the amount discounted is in excess by 0.15 rupee, that is, 15 paisa; and, in the case-2, it is in excess by 0.5 rupee, that is, 50 paisa.

If the bank loses these paisa for each transactions of same customer and other customers, won't the bank is shelling out the money?  Is this good?

Likewise, if I have to pay 0.15 paisa and 0.50 paisa, am I not paying more?  Then, imagine the big amount that business is making by rounding up a monetary number and making its customer pay in excess.


My Thoughts on Monetary Value Round Off

  1. The monetary value should not be rounded up or rounded down.  
    1. But, it can have a decimals and limited to two or to what business sees manageable.
      • As Gaurav said, decimal to two digits makes life easier for all is my understanding.
    2. The customer need to see this monetary value.
  2. The generated bill or transaction should have this detail.
  3. When making a payment, the billing system, can show a round off value.
    1. And, the business should decide upon, should the amount be round up or round down
May be to avoid such arguments and discussions in the billing counter, today, the bill amount will be a whole number and not a number with decimal.

Such round up instances can turn to a legal problems for the business.

I have noticed, the business offering round down on a monetary value, at times.  Also, I have noticed, certain consumer mobile apps showing rounded up number without breaking down the bill details.



Whatever, as a Test Engineer, I and you, have to create a report [ticket] for product's reference; keep the stakeholders informed of such behavior in the system by explaining the impact to business in monetary and legal aspects.





Tuesday, March 11, 2025

AMYQ: Approaching the Solution to Test Data Challenges of Shrini Kulkarni

 

In this post, I'm trying to reason in brief for the questions shared by Shrini Kulkarni in this AMYQ.  Here are the challenges/questions shared by Srini,

  • #1 challenge - setting up data in upstream systems to suite test cases that need to be run. There is AUT and there are upstream systems. In a corp setup -- individual teams are setup for each application. Hence getting another team to set some data in other system often encounters lots of manual effort and red-tapism
  • #2 Reserving test data created in AUT or upstream systems for specific team's use so that other teams do not change it.


My Understanding of These Challenges

  1. AUT is in place and it has upstream systems.
  2. There are multiple teams for each AUT in an org.
    • Say teams A, B, and C for sake of learning here.
  3. Team A has difficulty when wanting to create the Test Data in the space of Team B, and vice versa.
    • The difficult for Team A can be as,
      • Not permitted to create data
      • No awareness and understanding of Team B's system
      • Cannot make progress in testing unless there is data created for Team A
      • The created Test Data by Team B is not shared to Team A for multiple reasons as data pollution and corruption which disturbs their test cycles
      • And, more ...
  4. How to reserve Test Data created in Upstream system for use of a specific team?
    • How to make sure other team does not use it or edit it or delete it?
This is my understanding of Shrini's challenges.



Conway's Law and My Experiences

The Conway's Law says,

The architecture of a system will be determined by the communication and organization structures of the company.

Inverse of Conway's Law says,
The organizational structure of a company is determined by the architecture of its product.

The above stated both laws hold good for Microservices teams and the teams which consumes their services.  

I have experienced,
  • Each microservices teams creating their own set of test data.
  • These test data is not shared to any other team.
  • The other teams are not allowed to create data in their space.
  • No team is aware of what others are doing in tests and what they are using to test.
  • The teams work in silos.
This leads to friction, aggression and unhealthy communications between teams.  Now, where is the possibility of having the Test Data in upstream system which can be consumed to run tests by every other teams?

Do you see the statements of Conway's Law and Inverse of Conway's Law here in how these teams are setup, orchestrated and communicates in building one product?



What's the Problem?

Here is my understanding of the Problem Statement from the challenges shared by Shrini,

How to setup Test Data in upstream system, to suite the test cases, that need to be run?  And, how to ensure Test Data created by one team is not modified by other teams?

If observed, the outcome described in previous section is not a technical problem.  

It is the collaboration and communication problem, that comes up in presumption -- other teams using one's test data it affects their team's work and delivery.

Yes, it can impact badly if the creation, editing and managing the test data is not done attentively by teams when everyone shares and consumes it.  So the respective team's engineering managers and directors show the resistance to create data in their team's space as it impacts their pipeline and delivery.


How I Solved It?

In the contexts where I work, I have different upstream systems to which I'm supposed to interact and get the data.  Then, use these data to test the service offered by the product.

But, creating test data in other team's space is not allowed!

There are multiple solutions that I approached with and solved this problem in different organizations.  The below said approach worked with most clients and so I share it here.  It is like a Design Pattern; I can use the structure of it in multiple teams to solve the similar problems.

I came up with an approach to create a suite having the endpoints of all these upstream systems.  And, I need not say how difficult and pain it was to get the endpoints and its details from teams.  It was a marathon circus of me to get it!

Here is how I approached the solution,

  1. I understood my teams were comfortable with Postman.  
  2. For this problem solving, I see Postman was simple and quicker than writing a automation project with libraries like RestAssured and request.
    • Team can run the Postman Collection from their system in quick time.
  3. I created an Test Data Inventory
    • The inventory has the Test Data which the test teams engineered for their testing and automation
    • These data is not just for functional testing; it had Test Data for security, performance and accessibility too.
  4. I built the Postman Collection having the endpoints of these upstream systems.
    • The collection is version maintained like any other code in the organization.
    • The meaningful commits are being made and pushed, as and when the need comes up.
  5. I crafted an environment file and wrote the scripts which places a variable having the stamp
    • This stamp tells, it is a test data created by automation run for this version of regression cycle and from this team.
    • The stamp is max of 10 characters and it is dynamic based on that run to avoid duplicate data.
      • I said it is dynamic and not the random!
      • This dynamic characters has meaning and an intent.
      • Note, when I say dynamic it is created for that iteration of Test Data
  6. These created test data are used by team eventually not touching the test data of other teams.
This let us move further with our tests and automation in the pipeline.   Note that, I have multiple upstream systems to which the AUT speaks.  Not disturbing them is a challenge!

I maintain the inventory of test data having versions of test data being crafted sprint-on-sprint.  We pull the test data of different versions from the inventory as and when it is needed for the intent of test and automation.

All that said, the team continues to work in silos with no much collaboration.  Who has to solve this?  Though I can solve this, my role and pay grade does not allow me to do so effectively.  I have solved within my teams and not to the organization level.  It is a engineering and culture problem which has to be addressed at the organization level.



To summarize, 
  1. The test data creation and its inventory management having versions of test data is an Engineering culture of an organization.
    • It has to be taken in consciously and help the teams move swiftly in building the resilient and usable systems.
  2. Test Data and its engineering is a project within an engineering project.
    • No wonder if any LLMs offers a business solution solely on Test Data in coming days!
    • Test the data offered by such LLMs before consuming it.
  3. Practice in the space of test data and testing the test data.
  4. There is Data Coverage in the engineering like it has Test Coverage.
    • What's your Data Coverage?



Thursday, March 6, 2025

When Does the Community Choose Not to Respond to Questions?


I read the testing, automation and test engineering related questions posted on the social media and web.  I try to understand the question, problem expressed and collaborate to assist.  I do keep 46 minutes in a day for this activity.  

Sometimes, it is hard to assist reading the question.  I feel like not giving up; but, then I do not see the communication happening actively from other end.


What Makes It Hard To Assist?


The questions asked,
  • It will lack the context.
  • It does not tell who is the person and what she or he is trying to accomplish.
  • It will not have information on
    • the environment.
    • what is the challenge he or she is facing.
    • what she or he tried so far.
  • It will not have minimal data as
    • screenshot, exception stack trace, the complete error message and details following it, data being used, code outline, and more details to the context.

The above are minimal data needed on removing any sensitive information.  Know and understand what is sensitive information for your context when you are sharing.



Then, what do the question will have?
  • Most will have a phrase or a couple or three sentences of what they are doing and what is seen on the screen.  And, asking what to do for what is seen on the screen?


Why it is hard to assist with vague details?

People who want to assist won't have any context about you -- who you are, what you are doing, or why are you doing it that way.  They won't understand your purpose or what you are actually experiencing based on the limited and vague information in the questions.

Without clear details, it is hard to connect the dots or pinpoint the problem.  Instead, people who want to assists will be guessing, making assumptions, and probably considering multiple possibilities.  Is this a way to use the time in community?

When questions follow a similar pattern but vary in challenges and context, it becomes demotivating to decode them.  Over time, people will lose interest in reading unclear questions, leading to fewer responses and missed opportunities for meaningful discussions.


What's happening at other end?

People who want to collaborate and assist will take the time to read the question.  But, when a question is too vague to understand, they often give up.  And, they feel bad for doing so.  The question remains unanswered.

When a solution is provided, there's often no update on whether it worked or not.  Those who contributed keep checking back, only to find no response.  Is that fair to those who invested their time to help?  Would you feel good if you were in their position?

Remember, in the community one can't buy someone's time to listen or solve a problemIt has to be earned!  And, it has to be earned every single time.




How to Frame and Post the Question?


There is no one excellent way of doing it.  Then, what should I do to post my questions?

  1. Know the community.
  2. Read through the questions shared earlier in that community.
  3. Look at the questions that have found resolutions, acknowledged and accepted.
    1. Observe how the question or problem experienced is described.
    2. Look at the details shared and how it is shared.
    3. Look at the context details shared and how it is shared.
    4. Observe how the interactions and conversation is taken forward from the two sides.
      1. Closely notice the words and how the energy is kept high in both ends and how each side is pushing for it.
      2. Importantly, look at the time taken to respond from both ends.

I do not want to share an example or reference saying this is the way to do it.

You figure out for your problem and to its context.  Share the minimal information said above and ask for the help.  Consistently improvise on how you ask, share and describe the problem.




Thursday, November 7, 2024

Functional Testing Is Must In Performance And Security Testing

 

I'm sharing about how I missed to test for functionality while I was immerse focused on testing for performance of a Stored Procedure.  I was unhappy for a couple of days as I missed something that I practiced for years.  

I'm glad for reinforcing this learning with much more awareness into my testing's MVT and MVQT, now.


Context of Testing


A Stored Procedure was optimized for better execution time.  No change in the functionality.  This part of the system is not touched for a long time (years?).  There was no change in functionality here for long time (years?).  The time taken by SP was of concern.  I was asked to test for the optimization.

The complicated area, here, is the test data to use.  It took me days, for identifying and building the test data to test this optimization by mimicking the production incidents, use cases, and data.

When I got the test data ready, it was the fourth day of my testing this change.



Where Did I Go Blind By Being Focused?


The test data that I prepared is solely for the evaluation of the execution time.  This test data helped to test functionality as well.  But, my focus was on evaluating performance not functionality from this test data.

The change in SP did impact the functionality.  I was supposed to use the large data range to test for functionality of this feature which includes two SPs.  But, the task assigned was to test just one SP which is optimized.  I got blind here!  

Are you asking, what is the impact of this functional problem?
  • In the one complete business work flow, this functional problem added the same data into different sets in the subsequent iterations.  Redundant Data -- This is not an expected behavior.

I just spoke performance, traces, data I/O and execution time, because that was a pressing problem.  Why?  That was the objective given to me.  

My testing mission fell short in redefining this objective.  If I had redefined it, I would, have added functionality in the better scale.

If I had redefined it, I would have pulled the other SP into functional testing which is also part of this feature's work flow.  These two SPs are expected to handle the data by eliminating the redundancy.

It was a simple test, but, I did not include/had that in my testing mission that day.



Why Did I Go Blind?


The performance test blinded me for functionality, as I saw the basic functional flow looked functioning.  But, the data count was going wrong when a bigger data range is used in the context.  

See here, how stupid I was in my testing!  I'm testing for a SP that has a change as part of its optimization for execution time.  I never brought the functional testing in.  Why?  I focused on the testing objective.

I just looked into one SP that is optimized.  I did not look the other SP which has to work along with this SP later to complete functional flow of the feature.  Why?  How is that even possible?  I was asking myself this.  I see, this is okay from the perspective of the testing objective I had.  But, not okay from the perspective of a test engineer who is supposed to think the impact and prevent the problems.

My immersed and concentrated focus on performance and its related activities on a SP for four long days did not let me see this.  



What Am I Saying Here?


While I have tested for DBs and ETL systems for years, I did not use my learning here.  What is that learning?
When there is a change in any part of the ETL, SP or DB of a system, testing for the functionality for the business workflow is equally important.  Vary the data dimensions and evaluate the counts.

I was completely hooked into the execution time and the test data while switching between the environments for four days.  The chaos in data between environments is something that misleads easily.  I fell to it this time.

I say to myself, if it is a fix for the performance optimization or a security [or any quality criteria], testing for functionality is equally important and of priority as running the tests for performance or security.

When a DB layer is picked for fixing and optimization, testing for functionality in a equal scale is must.  There is a change in the code or/and infrastructure and it has to be noted with additional attention.

To add on this, this time, I did not go through and analyze the SP.  I took this call from the test team.  This call of me costed and had a major part in letting me not to think of functionality.

My fellow colleague ran a test with varying data size by completing the business workflow and observed the problem, and informed me.  I give the credit to Sandeep.

If I had brought this performance test under the automation, I would not have done this.  Why?  I will evaluate and assert for each data returned for different sizes.  I did not automate here and there was no need for it in this context.

Redefine the testing objective that you have got; it helps when you see the model of a system and test.


Respect all the fix and suspect all the fix.  This helps in a longer run!  



Monday, January 22, 2024

RAAMA: My Test Discovery Model

 

RAAMA -- I Look at You Everyday!


I have tried to put up one of my Test Discovery models in a conceptual way here with name RAAMA - Refer to, Arrange, Action, Monitor, and Assert.

Maybe this model helps you and your test engineering team as it is helping me.  Use this to your context with addition or subtraction for what you are seeking.

I refer to this RAAMA of me everyday and when I'm testing.  I'm finding the new learning and realization everyday that I was unaware earlier.  My understanding of RAAMA is not same what I had on the previous day.

My understanding of this RAAMA is incomplete and I have made PeACE with it by accepting it.  My understanding is growing and getting better everyday.  I will share a better version of it as I experience it.

Each time I look up to RAAMA and refer to it, I see a new dimension to RAAMA.  The awareness, exposure, and the questions are getting better giving the better realization of what I was ignorant and unaware.  The RAAMA is exposing me to be a better test engineer today than what I was earlier.



RAAMA - I Look at You Everyday!





RAAMA - One of my evolving models for Test Discovery


Note: I have not explained in detail what I mean for each node and its sub-nodes.  I can talk and discuss it with you if you look for it; I'm just one email away to get started.



Tuesday, November 28, 2023

Behind the Every Test Data, There is a ?!

 

Read this blog post to have a perspective about the Test Data and Test Data Management.  The point is, if I'm not aware of a test and what does it tell me to explore, I cannot think of a Test Data.

That said, if I know what I should be evaluating as part of performance, why, when and how, this will help me to come up with a thought for identifying the tests and its test data for the same. 

The ninth question from season two of 100 Days of Skilled Testing is:

What role does data management play in performance testing, and how do you ensure the availability of suitable test data sets?


Testing and "Ensure"

We test and have tests in testing, because, there is no "sure" and "ensure" idea in software.  But, we presume on a rational basis upon, "if, these are this", in a given context when the software processes.

Now, ask yourself, how can we ensure the availability of suitable test data sets?

In my opinion, the Test Data is often misunderstood.  This is the primary problem and should be the first problem, when asked "what are the challenges in creating the test data?".

When you read the concluding lines of this blog post, you will learn why I say this.


Test Data and Immunity

In my opinion and experience in practicing the Test Engineering, I see, the Test Data should be a viral strain and it should have its variants.  When this test data is used to test [experiment, test investigate, and debug], how do the software and its ecosystem respond?

  • Does the software and its ecosystem is immune to this test data?
    • Does it exhibit any risks and problems?
      • If yes, then, do the purpose of my testing and automation is accomplished with this test data?
This puts me back to question, what is the purpose [intent] of my test?  It drives me to derive the test data which helps me to know -- What am I supposed to learn and on priority?  With this, I get an idea for what kind of test data I should be creating knowing its pattern.

If the system is immune to Test Data and not reveling anything new in the context, I classify this pattern of test data as "Immune" to the context.

In my practice and research work in Test Engineering and Software Testing, to start, I categorize Test Data into two areas.
  1. Immune
  2. Not Immune
Further, I have categories, under these two, where I classify the Test Data deterministically for the context.   Get in touch if you want to learn more about this.  I'm just one ping away!

The tests should help me to evaluate for the immunity and also non-immunity; both are essential and necessity.  

The credit is to me for such classification of Test Data.  It is my research work out of my practice.

Note that, Test Data is not just the input [characters or files] entered or given to a system.  Test Data has its association to tech stacks, infrastructure, ecosystem, business workflows and people.  To craft such Test Data, one has to have the understanding of the system and its internals, and, the problem it solves by knowing how it solves.



Performance Testing and Test Data

  1. What is that I'm testing as part of performance?
  2. What do I want to evaluate in the name of performance?
  3. What part of the system is evaluated for its performance?
    • Should I evaluate this in isolation or as a wholeness of the system?
  4. What domain knowledge and information I should have when testing for performance?
  5. What system's architecture and internal details I should understand and be aware to test for performance?
  6. Is this the first delivery?  Or, do we have this system running in the production?
    • If it is first delivery,
      • How will I create the test data to suit the consumers of this application?
      • What are the key workflows of business that we should be evaluating for its performance?
      • Do all workflows and sub-systems need the evaluation for performance, and on priority?
      • How do I map the fragmentation of users and their data [with its patterns]?
      • What are the infrastructure and ecosystem characteristics that should be part of the test data identified?
      • Does caching have any effect if the same pattern of data is used?
    • If it is a running version in production
      • Can I refer to the DB to figure out the pattern for the particular workflow that I'm evaluating?
      • How can I match the test data to have the production data's characteristics and attributes?
  7. What is the backup strategy for the Test Data?
    • How do I version control the Test Data?
    • Which version of the Test Data I should be using?
  8. What is the threshold I'm targeting with Test Data?
    • What should be the size of the data in DB when I make the IO and RW operations?
    • What should be the network capability when I make the IO and RW operations?
    • What should be the hardware capability when I make the IO and RW operations?
    • What should be the geographical traffic and its pattern when I make the IO and RW operations?
    • More of such factors will be considered when identifying and deriving the test data.
  9. What is the client error yielding Test Data that I should have for the workflow?
  10. What is the server error yielding Test Data that I should have for the workflow?
  11. What is the redirection yielding Test Data that I should have for the workflow?
  12. What is the no-response and no-change Test Data that I should have for the workflow?
And, more.  It is simple; get in touch to discuss and know beyond the listed.



To conclude and stop here, all these questions, do not ensure or assure or make sure that I will have test data for evaluating a characteristic of performance.
  • It helps me to know:
    • What are the tests I should be doing?
    • What kind of preparation I should be having in my practice to create the Test Data for these tests?

The, Test Data should challenge the available Testability and its limits.  If it is not doing, then, we are having a test data no doubt about it; but, it is of shallow. Shallow!?

One has to ask self, "Is this sufficient enough and effective Test Data for the system [and workflow] I'm testing?"

The, Test Data should drive the engineering team to add more layers of Testability into the system.




Sunday, November 19, 2023

MVQT: The Testing and Tests with a MVP's Perspectives


I was leading multiple teams and its delivery in a testing service company.  Then, I came up with this thought -- Like MVP, I also have the MVT (Minimum Viable Tests) for a MVP.

Further, I expanded this thought in my day-to-day practice on tailoring to different contexts. I'm observing that it is applying well to the different contexts when I tailor it to the contexts.  After experimenting it for 10 years, I'm sharing this as a blog post.


What is a MVP?

I take this from Eric Ries.  It looks simple and precise to me.

The Minimum Viable Product is that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.

I see this technique [and a concept] can be applied to anything when I'm developing.  As a test engineer, I develop the tests and test code in major as part of my testing.  On applying the idea of MVP to my testing and deliveries, I see the value and result.

Reading this blog post of me to know who is a developer.


Testing, Tests, MVP and MVQT

In software test engineering, I see the MVP as Minimum Viable Questioning Tests.


The Minimum Viable 'Q' Tests (MVQT) for a focused area of a feature [or to a feature]

  • Helps me to identify the priority tests that should be executed for first
  • Allows me to learn information on priority which matters critically to product and stakeholders
    • So that a informed decision can be made.


The Q in MVQT stands for "questioning".  I read it as Minimum Viable Questioning Tests.  I see the "Q" as a placeholder for the Quality Criteria.  That is, MVFT means Minimum Viable Questioning Functional Tests to a feature or a workflow.




The MVQT are key to know:

  • Have I identified and designed the priority tests?  How do I know that I have got them?
  • Did stakeholders get the information which they wanted to know on priority?
  • Did MVQT help me to
    • Explore and know what I wanted to know about a feature or a workflow?
      • How fast I was here to know and learn this?
      • How did I develop my tests incrementally?  Did I?  If not, then, is it a MVQT?
  • Did MVQT help me to know
    • Am I aligned and in sync with expectations of my stakeholders and customers who are using the software product I'm testing and automating?
  • Did the MVQT help me 
    • In collecting the critical information in a given context for the scope of testing and automation?
    • Do the learning and outcome from this MVQT help to reinforce the validated learning of customer?
  • Do MVQT result support the outcome of Unit Testing result?

The tests in MVQT has to be consistently revised and evaluated to keep it as a MVQT.  Note this, not all tests are MVQT.  If the number of MVQT is growing to a part of feature or to a feature, it is time to think about what is MVQT for you.

The "minimum" tests are highly effective and it helps me learn and test better technically and socially.



MVQT and Testing

  • Sanity or Smoke Tests
    • The set of MVQT which helps me learn can the build be taken further testing
  • MVFT - Minimum Viable Questioning Functional Tests
    • Apply this to a feature or a workflow or to that part which can be evaluated with minimum tests for its functionality
      • To update is this aligning to the validated learning of customer [stakeholders]
  • MVPT - Minimum Viable Questioning Performance Tests
  • MVUT - Minimum Viable Questioning Usability Tests
  • MVAT - Minimum Viable Questioning Accessibility Tests
  • MVTxT - Minimum Viable Questioning Tester's Experience Tests
  • MVST - Minimum Viable Questioning Security Tests
  • MVAF - Minimum Viable Questioning Automation to a Feature
  • MVLT - Minimum Viable Questioning Localization Tests
  • MVUIT - Minimum Viable Questioning UI Tests

You add more of this to your list and context.

In a way, MVQT should ask and look for the testability, automatability and observability.  If this is not happening, then there is no possibility of saying I have got my MVQT.

More importantly, in the CI-CD ecosystem, MVQT pays a major role.  If I should have my tests in the  CI-CD pipeline, then, the MVQT is the way and it focuses on a targeted area to evaluate it.  Else, it is hard, impractical and not possible to test in CI-CD eco system by delivering continuously.


Ask and Review for MVQT

Ask for MVQT, when you review these:

  • test strategy, test framing, test design, test ideas, test cases, test plan, test architecture, test engineering, testing center of excellence, and test code

For example,

  • What is the minimum viable questioning performance tests that you have got to test this feature?
  • What is the minimum viable questioning performance tests that you have got to test this workflow?
  • What is the minimum viable questioning security tests that you have got to test this feature?
  • What is the minimum viable questioning GUI tests that you have got to test this feature?
  • What is the minimum viable questioning contract tests that you have got to test this end point?
Likewise, What is the minimum viable questioning automation tests that you have got to test this feature?

Ask how these tests qualify as MVQT in this context of testing and automation?

This should help you to see how effective is the test strategy in a given context.

Importantly, the MVQT and its effectiveness is a testability to test your tests.



The Credit is to Me

I'm not sure if the idea what I'm saying here in this blog post is practiced by other test engineers.  I have not seen this being discussed about it in public forum.  I have not come across it in my awareness and to the exposure I have put myself.

Hence, I will take this credit to me.  Giving the credit honestly is not a common sight and practice.  I have not got my due credits for using the ideas, thoughts and work that I have come up with.

So, I make it as a open letter and call out that credit for this idea, thought, concept, and practice will be to me when you listen, use and practice it.



Saturday, October 21, 2023

The "Bottleneck" in a Test Engineer's Eyes

 

Preference to Bottle Over Jar! Why?


Have you heard Jar Neck anytime when describing a problem or solution?

  • I have heard Bottleneck often and consistently; but, not Jar Neck .  Why? 
  • Be it in Software Engineering or day-to-day life problem solving description,
    • The Bottleneck is referenced and not a Jar Neck.

Looks like people want Bottle but not the Bottleneck speed and benefits.  Bottle without its neck is a jar?!



Bottleneck exist for better controllability
.

  • In a bottle, the bottleneck is a solution!  It is not a problem!
    • It is to mitigate any risk and problem that arises from the flow of content in the bottle.

Yet we describe, learn and communicate the neck of a bottle as a relativity and analogy to a problem.  


Are you aware of Gateway in the software system?

  • The Gateway can be seen as a neck of a bottle which controls the incoming requests and outgoing response.
  • Gateway is a necessity.
    • We need Gateway to be adaptable in size of its neck based on traffic volume it is handling.  Here, the gateway's neck size should adapt and scale contextually.
      • When describing a problem, we are talking about how this bottleneck size which is not adaptable for the context.
      • That adaptability has to be built in engineering to scale in any dimensions and magnitude.
        • When this is not done, we equate the software system's problem to a bottleneck as a analogy, which is incorrect!  The bottle has got its size and its neck size fixed for a purpose and as a solution.
          • The context of a bottle and today's any systems are different.
            • It is good to draw similarities from General Systems Thinking and observations.
            • But the solution cannot be generic to all systems; it has to be contextual.  The software system has to have its contextual solution.


So, next time when someone in your team or network talk about bottleneck, do share them bottleneck is for better controllability.  Having a contextually resizable and adaptable bottleneck is the need for Software Engineering; not the elimination of bottleneck.

In fact, a software system should have and will have a bottleneck in a point.  And, this bottleneck will be adaptable to the context for having what it should let through and process.

Is the runway of an airport a bottleneck when it is compared to a sky?  Is that a solution or a problem?  Likewise, the ship will have a defined route path and it does not sail without a route path.  Is this a bottleneck to ship and its business?  A elevator can accommodate the defined number of people or kilograms allowed, and not beyond that to move.  Is that a bottleneck?  The esophagus in human body has a size which medical science observes as normal and acceptable; any deviation from that size measurement, the medical science test investigates it as a risk and problem. Why?  Is the circumference size and length of esophagus a bottleneck to human anatomy and physiology system?

The engineering solution will and should have a bottleneck at a point.  Having a adaptable bottleneck to the context is one what tries to accomplish in a software system's scalability and operability.


Please, do not equate solving a "bottleneck" situation with Agile practice.  Does it look like a joke?  I will not be surprised if someone says bottleneck problem is solved if practiced Agile.


Wednesday, October 11, 2023

Prioritizing Performance & Its Requirements - The Two Engineering Tasks

  

How do I gather and prioritize the performance requirements of a student from schools, colleges, universities and society? 

Note that, I said performance.  What do performance mean in schools, colleges, universities and society?

  • Any time, you asked this question to self?
  • If you are living with children, did this question cross your mind, no matter in what class the children are studying?

This is not the question which can be ignored.  Also, this question is not precise and to the context.  It is the question that is resonated but has no acceptable rational base for whatever context from which it arises.  The same when it comes to performance requirements of a software system.

If you observe closely, the system in which we live, it pushes towards performance for what it thinks as a performance.  Isn't it?


The third question in season two of 100 Days of Skilled Testing is:

How do you gather and prioritize performance requirements from stakeholders and project documentation?



Prioritizing Performance & Its Requirements


If you read attentively, the title of this section says - prioritizing performance and its requirements.  I did not say, prioritize performance requirements.

That said, what is performance for Netflix is not same for the  Aadhar system.  But, both have prioritized the performance and looks to be aggressive in knowing the requirements for same.  Don't you think so?

We're in the timeline of Shift Left.

  • How to shift with performance to left? 
  • What all in the system should focus on the performance in the Shift Left?


MVP & Performance Engineering Story


When we are going to take MVP as early as possible to market, there is a tradeoff.  What are considered in subsequent priorities which will be compromised on negotiation by engineering and business?

The context matters when prioritizing!  Be it for performance or functionality or security or any quality criteria.

I will interpret the question asked from the point view of a MVP's deployment or publishing.

  • Are you asking why I have picked MVP?
    • The performance is contextual and it is based out on multiple touchpoints, its boundaries and interfaces of a system.
    • I cannot talk on all those in this blog post.
    • Neither, I want to talk about the KPIs and metrics.  
  • I want to share which you can pick, consume, and apply in your work.


Now, we have prioritized performance for a MVP.  Aren't we?  Prioritized means, it matters, it concerns us and we are okay to compromise on few for it.  Let us jump to Left with MVP in our hands to identify the requirements of business.

As a business, we will have a rough idea on how we are pitching and selling our services and to whom.  As a test engineer, you can sense what is the key transaction [business work flow] in the MVP.  You will know the touchpoints, interfaces and boundaries in the architecture that communicates and work together to keep MVP delivering the value.  Don't you?

Say the business wants the MVP to support and serve 500 requests per second.  I should know about the 500 requests here.

Is it,

  • Concurrent Requests?
  • Active Concurrent Requests?

This matters!  Both are not the same.  Have you asked this question?  It is a requirement we miss to capture.



Capturing Performance Questions for a MVP

It is about the awareness for first!  How much am I opening up myself to the awareness?  This brings an energy and it is contagious.

How do I bring the performance awareness in my team so that it is engineered into the system we develop?  This is a culture drive to an organization.

Now, I know, the MVP has to serve 500 concurrent active users in a second per business's expectation to meet its reach and target.  If I do not know this, I have to capture this data, for first.  How do you capture?



A Use Case to Ponder

One use case which would trigger the spark of thinking is - How should Disney+ Hotstar's services perform to live stream the India vs Pakistan Cricket World Cup 2023 on 14th Oct 2023?

  • How should it capture the performance and its requirement for this day?
    • How should this system scale to crores of viewers streaming the live video of the match?
    • How should this system scale for the gamification - emoji, chat and other viewers engagement during the crores of viewers making requests from client interface?
Try to play the past 30 minutes of this live video? What did you see? Why? That is part of the performance engineering strategy!

This use case opens up the different topics of Architecture and Performance Engineering. Be aware of it and explore on them.  This is not what we want to talk, now.  We want to talk on a MVP and how to capture its requirements for having better performance experience.



Step Up by 5% Heuristic


On having a test environment which is close to the production context and the test data that looks realistic, I get started.

I framed this "Step Up by 5% Heuristic" after few months on starting the practice of Performance Engineering and Testing.  I failed, and I learned. I'm learning.

I know, the expectation is 500 active concurrent users per second.

I will start to evaluate the integrated systems of the MVP for the 5 percent of 500.
  • What is the 5% of 500?
    • I will start with 25 concurrent active users requests for the MVP.
      • I will observe the emotional experience of when using the MVP during this time.
      • I will monitor and record the KPIs, and other needed data.
    • Does it fail to serve 5% of concurrent active users?
      • If failed, I know what to do now.  It helped me.
        • This helps me to draw the requirements better and rationally for the existing system's architecture.
      • If it succeeds, it helped me partially in knowing what actually I wanted to know.
        • I will raise the active concurrent users to 10%
        • That is, increasing it by 5%
          • I repeat these tests until the MVP architecture lets me know about the requirement it needs for the performance of serving 500 active concurrent users in  a second
            • Read the above sentence, again
            • The tests on MVP will let me learn what are its performance requirements for serving active concurrent 500 users in a given architecture, infrastructure, and tech stacks


Beyond by 37% Heuristic


I framed this "Beyond by 37% Heuristic" after I failed in framing the tests for performance.  Talking the rationale of this heuristic is not the purpose this blog post.  Let us catch up if you are curious and interested, we will discuss on this.

Do a salary hike of 30% indicate a high performance?  I don't know!  But 30% hike is something not commonly given to all, is what I see in my career so far.

That said, this 37% has worked for me in the contexts I'm testing.  Did it serve 685 (500 + 185) active concurrent users in a second?  It helps me to draw a requirement analysis of the MVP system for this volume of concurrent active users.

Now, I will step up by another 37% of concurrent active users. That is, 870 (685 + 185) active concurrent users in a second.
  • If seen, I have 1.5x traffic now.  Did it serve?
    • If yes, how many active concurrent users were served in a second?  
    • I will correlate the KPIs of other integrated systems of a MVP.
      •  With the captured data and emotions
        • This will tell, what should we expect despite what is the expectation from business
        • This difference will let us know "the requirements"
          • How to gather information on -- what has to be optimized, changed, reorchestrated, eliminated, included, and more.
          • We start technically in establishing and framing the Performance SLAs and SLOs between the tech team and business.
          • Now the performance & its requirements will appear in the dots that are,
            • Being connected
            • To be connected
            • To be disconnected
            • That does not exist


To conclude, shift wherever, take the performance engineering together! Revive its requirements to be healthier!



Note: You should read these blog posts if you have not:
  1. Performance Testing: Unspoken KPIs and The Missing Correlation
  2. Architecture: The Common Shared Understanding -- Part 1
  3. Architecture: Its Aid in Performance Engineering -- Part 2


Tuesday, May 2, 2023

Business and Software Testing: The Top 5 Challenges I See For Today -- Part 4B

 

I offer my skills, expertise, and time in exchange for the pay I get from a business [employer].  You too do that, right?  That's how I make a livelihood and take care of myself and my family.

That means the business is a critical entity to me!

If I do not understand the business, 

  • I cannot do software testing and automation that adds value
  • I will not be in a position to lead and deliver
  • I cannot help myself to grow in the professional and competing world

This blog post is a sub-part of the blog post "The Common Challenges as a Software Tester and How I Overcome -- Part 4".


The business and its service as a software solution are in need of software testing
  • But, what the software testing is supposed to be and what it has to do, is mostly driven from the project management and decision to the business
  • That way it looks like a business problem
  • It is a project management and decision problem that is made to appear as a business expectation
    • This is a different and unique problem statement; the business carries it 
    • I will share my experiences and learning on this in the next blog post -- Project and Software Test Engineering: The Top 5 Challenges I See Today -- Part 4C


In Software Testing,
  • We focus on the risks as well
  • With the help of my testing, I try to learn the risks and help the stakeholders to know about them

The same here!
  • I try to learn the risks of the below five challenges
    • Because, it impacts me, my team members with whom I work, and my family members
    • By learning the risks, I will be better informed to make decisions so I can deal with the impact and have control of the situation


Here are the first few challenges that I witness in Software Testing around the Business context

  1. My Work, My Fit, and Company Goals
  2. Whose Opinion of Me Weighs and Influences My Growth?
  3. Understanding the Decisions and Moves in a Project and Org
  4. Sighting and Understanding the Dynamics of Changes
  5. Being Hard to Replace -- The Myth






My Work, My Fit, and Company Goals


Why it is a challenge?
  • I can get easily deceived here
    • By believing I'm adding value to the organization
      • And, get into thought I and my work is valued and needed
    • But the manager and organization may have a different opinion
      • It does not get communicated until one day when I'm called into a meeting that includes the HR staff

How I'm solving it?
  • Read this blog post
    • It is about learning how my work fits the company's goals
      • I evaluate this consistently with my manager and her/his stakeholders
      • Yet, there will be differences and mismatches based on multiple factors
        • The business is one such critical factor



Whose Opinion of Me Weighs and Influences My Growth?


Why it is a challenge?
  • Of course, how I see myself stands first and it is more important
    • This is a challenge I have to balance throughout my lifetime
  • In the business and political world, to be in a better position for what I earn, it is important for me to know -- How am I perceived by the one who is more authoritative, powerful, and influential in the decision?
    • There is a person above my manager and all other managers, whose decision matters and maybe final
      • Do I, my work, and the value addition from my work to the organization, are visible to this person?
      • How does she/he perceive my work?
        • How will my work be rewarded?
  • This matters to me because my growth in the company and what I earn, depend on it
    • I work for this!
    • We all work for this, right?
    • Yet not all get what one wishes for! Why?


How I'm solving it?
  • To be honest, for most of the years, I said to myself  -- "My work speaks for itself, and no need to bring visibility to it"
    • But, in reality, it does not go that way always
    • Most times the manager who does One-on-One regularly will not have a clue about what I'm doing though we meet every month to discuss
    • Then how someone else will know?
      • This is the reality!
  • Today,
    • I step up and talk about my testing team's work and value
      • Also I talk about the work and value added by other teams with whom I work as a team
    • I step up and talk about my work and its value
    • I step up and say how we are solving it as a team
    • I step up and say what's my contribution to the team's work
    • I find ways to bring visibility into my work, my role, and my value addition
      • I advocate for it
      • In a way, I'm a sales and marketing person for my work and presence
      • If I do not sell and market my work and presence, no one will do it unless I have a supporting and strong manager
    • I show how fit I'm to the equation of the organization's goals and plan of execution
      • Yet, this is a challenge of [for] everyday
      • I will be evaluated every day by different stakeholders
      • My past accomplishments are history and it does not work in the long run
        • What I do today and how I'm doing it, matters in alignment with the organization's goal
        • Do I make a fit with my work and the value I bring and add? How?
          • I will have to balance myself here in the business and political space

I ask and discuss with my manager -- How I and my work are perceived by the person who has the authoritative decision?  This helps me to see how I and my work are interpreted by different people. It helps me to discuss and clarify if it is being perceived in other ways.

I also talk and discuss with the authoritative person about
  • My work
  • The value being added from my work and my role
  • My fit to the organization's goals and how I'm aligning with it



Understanding the Decisions and Moves in a Project and Org


Why it is a challenge?

  • The decisions and moves that happen in a project and organization will have an influence on everyone
  • Sometimes we will not be said why the decision is made, or, we will not even know a decision is made
    • I will be annoyed and uncomfortable with the outcome and happenings from the decision made
    • The decision can be in terms of
      • What one draws as a salary and benefits
      • The termination of certain roles and people
      • Cut down on benefits and compensations
      • How we work and deliver
      • And, more
    • This can make me be off trail and not align with the goals and decisions of project management and organization
      • This sends a different perception about me to the project management and business
      • This will surely not do good to me

We tend to talk or be annoyed about certain decisions.  But there will be some reason behind it; just we are not said or we do not see it



How I'm solving it?
  • There will be reasons behind the decision made and changes happening or to happen
  • My manager will also not be aware of why certain decisions are made
    • I have to accept it
  • I talk to my manager asking why a decision and change in the priorities when I observe it
    • This is important to know
    • Sometimes my manager may not share about it if it is not disclosable to my role and I respect it
      • Talking and conveying the direction with what can be shared and cannot be shared is a skill!
  • As I say, awareness is a skill
    • When we are involved in the work we do, we lose sight and attention to what is happening outside the work on the floor and organization
      • There are certain heuristics that we can use to identify the changes happening
        • With whom we work
        • With operations that are executed in our work
        • For example,
          • the number of meetings [increased or decreased],
          • the calendar of my manager and of the authoritative person,
          • the project and business tabulation,
          • and more

The functioning of a service company is different from a tech product company.  Be it an enterprise or a start-up or a mid-sized setup, how the floor runs, is different.  I will have to tune myself to be a better observer and spot the changes.  The quicker I do it and discuss about it with my manager and the authoritative person, it helps me.

Figure out ways to know why certain decisions and changes are done in priority.  I do the same!  I use to get lost in my work and practice.  I would be unaware of what's happening in project management and business decision.

I'm learning and building the skills here for the last seven years.




Sighting and Understanding the Dynamics of Changes


Why it is a challenge?
  • The outcome of decisions, changes, and changed priorities need not be bad always
    • But, certain decisions and changes affect badly and it will be unexpected
    • This will have long-term effects on mental health and physical health
  • Being a leader, I should help my team to navigate through it with awareness
    • At least, I should be in a position to give the heads-up
      • This may not be possible always, but my team trusts me and I need to keep it practical and in the business orientation
    • I should be in a position to handle it with my emotions in control
  • The growth of my team people, my growth, and the benefits we earn can be impacted
  • Business and its dynamics are so unpredictable, it changes and it brings an impact on people who are with it
    • I have been impacted by it!
    • In a way it is good that it happens
      • But, can it be prevented and get off from being impacted?
      • How to spot and understand the change and the dynamics of the change?


How I'm solving it?
  • For first, I need to remain calm and not in the anxiety when there is an impact or when I spot the changes
  • The floor reflects the changes; just I have to be observant
  • I share the same with my team and tell them to spot a few heuristics
    • For example
      • If someone on your team who did not bother about what you are doing comes all of a sudden and asks for a demo of your testing, automation, and any of your work
      • The regular catch-up or one-on-one is no more done or its frequency has increased
      • The type of questions coming to you and what is expected in an explicitly said time period
      • The body language
      • How I'm included in the project and team for my role?
      • Is my work appreciated in public on the floor?
      • Did I get a personal message or email as appreciation and not as public as others in the team receive?
      • And, more
  • I should be in a place where I can spot it if something of this kind is happening
  • Talking to people helps
    • This is okay if it is something to do with me; that way I can fix it
    • What if it is nothing to do with me or my work, but happening?
      • I seek clarity from the person whose opinion matters and from my manager
      • I see nothing can be done in much
      • All is, I need to be skilled and be aware so that I don't put myself into the worst situation
      • Today, I work to be a better observer in these areas each day
        • I have not done it in the past as I was lost very much in my work and practice
        • I missed the indicators which I could have used for my benefits and the team's benefits

As I said, know your organization and its business. Know your team and its people.  It is different from other organizations, businesses, and people.



Being Hard to Replace -- The Myth


Why it is a challenge?
  • We are said and expected -- to be skilled and be so skilled it is hard to replace
    • This is a myth!
    • Software Testing is also helpful to break illusions and know the myths to which we are blind and biased
      • When the software versions we build are replaceable, we, who are developing it are also replaceable
      • If not by another version, the competitor will come up to replace
        • It is about serving value that is needed and building the strengths to sustain being resilient enough
  • I was in assumption, it is hard to replace if I'm skilled
    • 10 years back, I learned, that's not actually the story
    • I'm easily replaceable given the context demands it
    • I saw my fellow team members being replaced
    • I saw myself getting replaced
  • We all are replaceable
    • It is a norm in business, competitive and political space
    • There is always a valid reason and necessity for business to do so
  • It is easy to fall into the illusion that I'm contributing and adding value
    • Well, I will be actually contributing and adding value
      • But, it may not be needed anymore for the business and organization
    • If not needed, what's next?  I need not say that to you, right?


How I'm solving it?
  • I accept, I'm replaceable no matter
    • what are my skills, expertise, personality, and 
    • what value I bring and add to the board, organization, business, team, and product
  • I keep myself in a position to not spoil my mental health and physical health
  • I'm learning and being much more courageous than yesterday
  • I ask for help when I need it with my network and communities
  • I find alternative ways to have an income so that I help my family with the basic needs
  • I also replace, what I see -- it has to be replaced
  • By being better in
    • Awareness
    • Being contemporary
    • Upskilling
    • Being "the match and approachable"
    • Being focused




Click here for returning to the blog posts:


Software Testing Practice: The Top 5 Challenges I See Today -- Part 4A

 

The practice is one of the areas where I dwell, fall, and rise again.  I'm part of the practice. I'm, what I practice.  It redefines me every day.  This blog post is a sub-part of the blog post "The Common Challenges as a Software Tester and How I Overcome -- Part 4".


Here are the first few challenges that I witness in the Practice context

  1. Awareness
  2. Being Contemporary
  3. Upskilling
  4. Being "the match and approachable"
  5. Being Focused



Awareness


Why it is a challenge?
  • If I'm not aware
    • I cannot be contemporary
    • I will not know why it is the way it is
    • Without the awareness of what's happening,
      • I cannot help myself with what to unlearn, learn and upskill
  • Multiple sources exist that "appear" as an awareness source


How I'm trying to be aware?
  • I find the sources that help me to be aware
  • I get involved with the sources
  • I learn and understand what these sources have to say and offer
  • I keep asking myself
    • What I'm aware of here?
    • What should I be aware of here?
    • What I'm not aware of here?
  • Being aware of the different ideologies, thoughts, and schools in
    • Software Testing & Engineering
    • Software Engineering
    • and, its businesses ...




Being Contemporary


Why it is a challenge?
  • If I'm not contemporary
    • I may not fit well for the needs of today's industry and business
    • I will have content, experience, and skills
      • But, I may not be able to offer them in a way it is expected
        • My practice, thoughts, and mindset will appear as not matching or not aligning with the organization or/and stakeholders
  • To an engineer,
    • This is an everyday challenge!
      • The landscape of technology changes so fast, that upskilling is a necessity
      • Being adaptive and upskilling is a necessity for remaining contemporary
    • How to be a specialist? How to remain a specialist while being a generalist?
      • How to be the contemporary and T-shaped full-stack engineer that the industry looks for?


How I'm trying to be contemporary?
  • I don't see the programming languages, tools, platforms, libraries, architecture patterns, and business as contemporary
    • But these are byproducts of what defines -- being contemporary
    • And these changes with time and problems to be solved
  • There are no defined and particular ways to be contemporary
    • Hence it is a challenge!
  • For today, in my opinion, there is no solution to be contemporary in Software Engineering
    • And, being contemporary is not a problem to solve
      • It cannot be solved
    • Being contemporary means evolving, adapting, and growing in the environment -- to the need or to the need created and manifested
      • It is a context
      • Who is fit to the context with the value expected to add, will have a better opportunity
  • Growing and adapting with time by learning the day's engineering problem and drawing a solution, is a headlight in the journey which shows what is contemporary
    • I focus here
    • I will try to be aware and upskill consistently here
  • Being aware and evaluating how the business and money are getting tabulated in the balance sheet at the workplace
    • It is a critical detail and skill needed after certain years in the industry for one
    • If not known, one may not pivot to a better position and opportunities for being contemporary and see [and get] its benefits
  • Being contemporary in what area?
    • One has to figure out what are her/his areas to be aware of to be contemporary
    • This is another set of problems to identify
  • Is the T-shaped full-stack engineer a contemporary term today?
    • I do not think so!
    • What fills in the T-Shape and the Stack changes consistently for the need and to the need created
  • Meet people in your areas; network with them
    • Also meet people who are not part of your area
    • Talk! Network
      • See what you can catch here and learn



Upskilling


Why it is a challenge?
  • I do not want to remain in the same learning, role, and earning
    • Status Quo is not possible here
    • All who are on the payroll need consistent and pragmatic upskilling, today
  • Upskilling in Software Testing & Engineering has always been under debate in my last 17 years
    • The practice is different within teams in an organization
    • The understanding and practice between two testers in a team are not close, forget being the same
    • What to practice in Software Testing?
      • Testing?
      • Automation?
      • The blend of every role in Software Development?
      • This confusion is being fostered here
      • This confuses and gives the space for arguments and not a healthy discussion
      • Eventually who are getting better identity and benefit, her/his thoughts get promoted in that place
        • And, more likely these thoughts and practices get followed
        • Does this influences the people who are practicing Software Testing?
      • Information is abundant today on the web for Software Testing
        • As said whose content gets better likes, reposts, and shared, that information gets more visibility
          • How I consume this, influences my upskilling
  • Few of my friends moved from Software Testing to different roles
    • Maybe your friends too in your org and team
    • Does this challenge your aspiration to continue in Software Testing & upskilling here?
  • I get calls from the training startups asking to switch to other roles saying Software Testing has hit the roof
    • Further, they try to influence me by saying
      • No career progression in Software Testing
      • I cannot make money
      • I can make money if I move to different roles where I do full-time coding
        • I can grow in my career and move to different positions
        • And more ...
    • We have the people who say to not choose software testing
    • This influences those who are fresh, experienced, and finding rough times in the practice of Software Testing
  • For example, how many times do I speak and hear about the Test Design?
    • It is one of the most ignored, unaware, and unspoken areas of Software Testing
    • This is one example of where to upskill


How I'm trying to upskill?
  • One of the strengths of a Software Test Engineer is to not get easily influenced
    • I get lots of factors and people who influence me to their interests and intents
    • As a Software Test Engineer, I have to pick anything upon questioning and scrutiny
    • This is one skill that I try to upskill everyday
  • To upskill, I see a determined self as a need for the first
    • The key area of upskilling is the unlearning part
    • Knowing what to unlearn is not evident most of the time
    • In the journey, I discover what I should unlearn
      • The faster I discover, I help myself to save time
  • I evaluate where I stand on the path of -- where I want to continue my journey
    • I do it consistently
  • While I do this, I classify the areas of my upskilling
  • I observe,
    • For every 18 months the list in this area gets outdated and updated as well
      • This is like the tests getting retired or taken off the execution list, while the new ones are added
  • I collaborate with the community and people who can help me to upskill
  • This is not a straight and simple task
    • I unlearn a lot
    • I fail a lot
    • But, importantly I learn in this journey and it builds me with an experience
    • I share the learning I make here with the software testing communities
  • I have a map, territory, and details of where should I be upskilling for the next 6 months
    • I refer to Open Source works which is consumed by the tech organizations
    • I refer to how tech organizations are building their services
    • I identify the layer of testabilities in the technologies
    • I refer to tech blogs and books, and I relate them with the help of programming
    • I do more here
    • My map, territory, and what to explore keep refining and get updated every 6 months



Being "the match and approachable"


Why is it a challenge?
  • For first I should be visible and identifiable that I'm a match
    • How to be so?
  • How do I build myself to be approachable?
    • After a certain point in the career, 
      • One can navigate further only if she or he is seen as approachable
      • My words, thoughts, what I speak and write, and how I respond, all of these can set a different tone and personality for the stakeholders
        • This can give an image of me that I'm actually not
        • In fact, those who are with me  at work and in communities for years can frame a different image of me
    • This is a tough ask
      • Perceptions of stakeholders and what stakeholders need, influences in what and how they perceive me for -- Am I approachable?
        • We will have a gap here no matter what
        • How do I bridge the approachability with the people with whom I want to associate and work? This matters!
      • Whether it is a job or association or organization, what primarily differs are
        • The people, culture, and how I associate with them and their expectations
          • This changes the dimensions of how approachable and visible I'm in their perceptions


How I'm trying to be "the match and approachable"?
  • I try to understand the expectations and needs of the stakeholders
    • The needs and expectations are two different sets in my experience
  • I consistently work on my communication and how I share my thoughts
    • Also, I keep watch on the words I use in a given context knowing who all are in the discussion
    • Communication is not just spoken and written words and language
    • Being practical, pragmatic, and empathetic helps to an extent
  • By upskilling, I try to balance the equation of "the match"
  • By being approachable and contemporary
    • I learn to know the people, organizations, and communities with whom I want to associate, work and grow
  • I learn to be aware and have awareness so that I'm focused
    • This is not a cycle; all these happen in parallel and drive each other
      • Awareness
      • Being Contemporary
      • Upskilling
      • Being "the match and approachable"
      • Being focused



Being Focused


Why it is a challenge?
  • There are distractions outside and inside
    • We want to fulfill and meet someone's perception and expectation

  • The changes that we see every day in the space where we work and at the family end
    • It will have an impact on the focus and awareness I want to be with
      • Every day I work to keep my focus and awareness to be fit and healthy
      • So that I can identify and mitigate the distractions
    • Having mental and physical health balanced is crucial


How I'm trying to be focused?
  • I'm learning to prioritize and decide what I have to work upon
  • By improvising and developing the skills of having and using:
    • The clarity, decision-making, and accomplishing the milestones that I set
  • Goals with the timelines and milestones
  • Not skipping or postponing my priorities and losing sight of what I should be focusing
    • I have a daily check on my focus on what I have gotten into
    • I evaluate and align with it
    • I use multiple and ideate with the strategies to be focused and evaluate the same
  • And, I tell myself it is okay when I fail
    • But, I look for the lessons when I fail and why I failed
    • I do not give up unless it is a necessity




Click here for returning to the blog post:
  • The Common Challenges as a Software Tester and How I Overcome -- Part 4
  • Business and Software Testing: The Top 5 Challenges I See Today -- Part 4B
  • Project and Software Test Engineering: The Top 5 Challenges I See Today -- Part 4C