Showing posts with label Diary. Show all posts
Showing posts with label Diary. Show all posts

Saturday, April 1, 2023

I Transformed In The Heat of Software Testing's Words & Glossary


I'm talking about the words, glossary, and jargon we use in our communication, especially in software testing.


Words in Use

Manual Tester, Manual Testing, QA, QA Automation Testing, Automation Testing, Automate, Automation, Tests, Checks, Verify, Validate, Test Case, and more.

Are these words right or wrong to have in Software Testing's glossary?  I want to see beyond right and wrong.  I will share my learning on this in a different blog post.


Then

When I started my career, I advocated for using the appropriate words and glossary when talking about Software Testing.  I was in this state of mind. I continued in it.

The information on the web for Software Testing was minimal and not abundant as it is today.  I observed practitioners questioning, debating, arguing, and challenging the words and glossary used in Software Testing.  I see, it is good that this scrutiny happened.

It took me years to come out of it and realize what I should be focusing on.

Eventually, I realized it is not changing; it continued and continuing.  I changed. I transformed.  I'm evolving!



Now

Today as well, I see practitioners questioning, debating, and challenging the same words and glossary.  Is this a need?  Yes, it is a need.  Who else will do it if we do not do it?

But, how do I do it now?  I do not discuss it with all and everywhere I see a discussion and opportunity.

Today,

  • I listen to people as I did
  • I understand what they mean by the words and glossary used in the discussion
  • I take an opportunity to trade and introduce the word in discussion in a light way
    • I see the other side interprets it as I interpret their word
    • We mutually agree on what is expected and to be delivered
    • I will move on to continue our discussion and accomplish what we have to
  • How often do I do this?
    • I choose when to do it
    • But I keep the happening calm and a delightful conversing

I'm not stuck or getting into a discussion on words and glossary as I did.

I'm watchful about what I use in discussion and testing delivery.  With my fellow software test engineers on the team, I share my insights, discuss and focus on our work.  I do not enforce or impose anything.  But, I always welcome questioning and challening me.

This has brought me calm, peace, energy, and time for what should I be learning and doing.

Do I ask other fellow practitioners to do the same?  I will not get into this thought.  Let one do what one wants to do.  I converse and discuss if I have any questions and it makes me curious. I move on!

As a practitioner, I know, it is important that I speak up for my craft's and subject's words and glossary.  I introduce it in a light way.  If one is interested, I will be asked about it.

Change in the self is a first progress and I feel peace with it.



Monday, August 9, 2021

The Not Well Thought Talk

 

That Day

It was in 2016 April at the MITC - Moolya Internal Testing Conference.  I was a Moolya employee then and it was a conference for Moolyans by Moolyans.  I went up to the stage and shared few thoughts of me, then.  Today, when I look at what I spoke, it looks to me as not a talk that I should be doing.


The Talk

I see, my thoughts were not mindful when I spoke that day, and I was blinded.  Yeah, blinded.  This is one of the talks which I keep as an example; so that I do not share my thoughts and talk like this.  Today when I look at me of that day, I look wrong and not sound.  I question myself, "Is that me? Ah! How bad!"


Not Thoughtful, Why?

I see it is not thoughtful for these reasons:

  1. It did not reflect the awareness I have on the subject and practice
  2. I sent an incorrect message with my short talk for young people who were at the conference
    • I should have shared how to look at it than saying what has to be done ignoring the other
    • Ignoring the one and doing other is not a beneficial approach in any means
  3. I'm a person and with the role who will  influence people in the direction, the work, approach, and delivery
    • How can I do this as a leader?
    • But a leader will also fail and a leader encounters failures often and frequently
    • Leaders deal with the failures than with success often and continue what they have to do
    • I failed in my thoughts and talk, that day!

None spoke or shared anything about it.  I'm not sure why.  I myself see it is not right.  Could be they would have received in the intent what I wanted to share.  But, what did I say and how, that's not right.  Ravisuriya, himself cannot take it today and acknowledges it.


What I do today!

I take my time and think before I see an opportunity or when asked to respond.  It is not that I did not think earlier prior to responding.  That day, I did not see how it will be received and interpreted.  

Today for first, I will test if I can receive and acknowledge what I'm communicating.  If this fails, I will pause and think of a better way to share and communicate.  Before sharing, I try to make sure that I have not tampered with the intent of my words and thoughts.  Can this be done each time?  I'm making a practice that I articulate and persuade better and with the right intent.

This is one of the very essential learning I have made from MITC 2016.  Thanks, Moolya and Moolyans for giving me this reflecting and retrospective learning.



Friday, October 30, 2020

Test Leadership Congress 2020 - Vote of Thanks


With the permission of Anna Royzman, I wrote and shared the below Vote of Thanks note for Test Leadership Congress 2020 vote on 09th October 2020.


Hello All,


On behalf of Test Masters Academy, I express my vote of thanks with gratitude to the conference chair, organizers, sponsors, speakers, facilitators, and support. I thank 
@Anna Royzman and her team for giving us the engaging and educative conferencing hours. 


When I recollect the moments and calendar, it will not be a happy story without thanking the people who registered and eventually became the conference. The 47 days of the virtual conference having 179 hours of live streaming is not an ordinary conference story. 


Maybe none of us would have imagined that we will be attending a virtual conference from home for 179 hours or close to 7.5 days. It is a story to be said and embraced with celebration.  


I thank all the attendees, speakers, facilitators, and support for giving your time and making this conference happen and successful. I will remember this conference for all time! I have motivational, influencing, and happy stories to tell from this conference.


Today the Test Leadership Congress 2020 officially comes to an end, and I convey my regards to you all for being part of it. This conference has accomplished the purpose of it, and I happily share a few journey data with you all.



A quick briefing on the engaging and connected journey of TLC 2020:


  1. 47 days virtual conference (pre-conference days, conference days, and tutorials days)
  2. 60+ speakers from all geographical continents
  3. 135 hours of pre-conference and conference sessions
  4. 44 hours of tutorials
  5. 179 hours in total live-streamed
  6. Summer Leadership Season -- 20th July 2020 - 21st August 2020
  7. Fall tutorials -- 01st September 2020 - 08th October 2020
  8. Time Zones covered -- AEDT, IST, BST, EST
  9. No downtime of conference streaming
  10. Support available throughout the streaming time and offline
  11. 10 members support team -- facilitating & tech support
  12. Timely broadcast and announcement in Slack
  13. Pre-conference and Conference session's live-tweeting
  14. Following up with speakers, facilitator & support to make sure the scheduled slots are intact
  15. Conference web and SwapCard consistently monitored and updated with details of speakers and topic
  16. Backup plans in case of facilitator & support experience trouble during live streaming
  17. And not to forget -- the conference design and program planning, communication with speakers, and following up



You all made TLC 2020 -- our conference.


Thank you all. Stay safe!



Ravisuriya

Support Team, TLC 2020

I, Stuttering, Support, Hosting and Test Leadership Congress 2020

 

The gratitude is what I sense in me at present as I write this post.  I thank my friend Ajay Balamurugadas for letting me know about Test Leadership Congress 2020 (TLC 2020) is looking for volunteers. I express my humble gratitude to Anna Royzman and Test Masters Academy.  

I was part of TLC 2020 in the host and support roles.  I received remuneration for it.  I could take care of my family for a couple of months with this remuneration when I did not have a job paying me a salary.

If Ajay had not discussed volunteering TLC 2020 conference, I would not have attempted hosting the virtual online conference so soon in my career.


Test Leadership Congress 2020


TLC 2020 was a virtual online conference.  The COVID19 pandemic has made the technology and software testing conferences to be online.  The good part is, I could attend it sitting from home.  If not, I could not have traveled to the USA for this conference bearing the conference ticket and travel expenses.

TLC 2020 was 47 days of the virtual conference having 179 (or close to 7.5 days) of live streaming, which is not an ordinary conference story.  I did not imagine that I will be attending a virtual conference from home for 179 hours.


Here is the gist of TLC 2020:


  1. 47 days virtual conference (pre-conference days, conference days, and tutorial days)
  2. 60+ speakers from all geographical continents
  3. 135 hours of pre-conference and conference sessions
  4. 44 hours of tutorials
  5. 179 hours in total live-streamed
  6. Summer Leadership Season -- 20th July 2020 - 21st August 2020
  7. Fall tutorials -- 01st September 2020 - 08th October 2020
  8. Time Zones covered -- AEDT, IST, BST, EST
  9. No downtime of conference streaming
  10. Support available throughout the streaming time and offline




Hosting and Volunteering the TLC 2020 sessions


I did not speak as a speaker. I hosted, supported, and shared by facilitating the in the below sessions slot:


  1. Interactive APAC/South Asia/Europe -- Lean Coffee Session
  2. Interactive South Asia/Americas/Europe -- Lean Coffee Session
  3. Interactive Americas/Europe -- Lean Coffee Session
  4. Interactive Americas/APAC -- Lean Coffee Session
  5. Happy Hour
  6. Pre-Conference Social: Game + Networking
  7. Fireside Chats and Happy Hour APAC/South Asia/Europe
  8. Fireside Chats and Happy Hour South Asia/Americas/Europe
  9. Fireside Chats and Happy Hour Americas/Europe
  10. Fireside Chats and Happy Hour Americas/APAC
  11. Testing of New Technologies (and Fun Competitions!)
  12. As a host/facilitator I spoke in slots of other speakers for the intro, follow up and closing


It all started on 23rd July 2020, where I saw an opportunity to grab the host role for the session -- Pre-Conference Social: Game + Networking at 1:30 PM IST.  I networked with participants by playing the game -- Questions For Testers (to trigger conversations and build connections). It is an engaging game compiled by James Lyndsay.


I hosted another two talks on the same day at 11:30 PM IST -- "The Art of Situational Leadership by Geosley Andaredes" and "Scale your automated tests using all in one automation tool - TestProject (demo)" by Sumeet Punjabi.


As part of Lean Coffee, Fireside Chats, and Happy Hours, I spoke (along with other participants in these sessions) on varied topics of Software Testing, Automation, Programming, Technology, non-technical, and more.  Importantly, I learned much better by listening to participants in these sessions. I could not have covered such topics in 30 minutes or 60 minutes talk if I had presented in TLC 2020. I shared by learning the context of participants; this helped me tailor what I share, how much I share, and how I shared my content with fellow participants. 




I and Stuttering


I have a speech disorder; I stammer while I talk. I have got control of my stammering today. It is not as bad as I experienced it in my childhood, school, and college days. People at the other end did not wait for me to complete my verbal communication, and some did not listen at all. Hardly I have one friend who listens to me patiently and waits for me to complete my part of converse in the discussion or chat.


Conversing was not a pleasing experience for me in childhood, school, and college days. When I had to buy a ticket on a public bus, I use to get verbally abused by conductors. I had written my destination on a piece of paper and show it to the conductor for having my ticket.


In 2009, I attended a walk-in drive for a Software Testing position. Those days 1000+ people would attend a walk-in drive in Bengaluru if announced publicly. I cleared the first round. It was a spacious hall where 300+ people were seated for the face-to-face interview. The interviewer asked, "What's the difference between verification and validation?" In 10 seconds, the interviewer said, "you may leave now." I explained to interviewers by writing that "I stammer, please listen to me." I remember the expression and tone of the interviewer when saying no. That day, I was disappointed!  When returning home, I said myself when I take an interview, I will listen to the candidate and I will converse.


When I had been to give my test for driving license, the person who was asking questions and reviewing my application forms threw it on the floor and said to get out of the hall. The girl behind me said to him he has difficulty speaking. I had to wait for others to finish their test. The other person came and took my test. I got my driving license. I think of this girl for the empathy she had when saying it. 


Inside my family, it was not easy for me. Except for my father, all others have spoken about how bad I'm when I talk. It made me not to open my mouth for conversing with anyone. I'm much better today; I stammer but not that bad as I did.


Now, when I had an opportunity to host a virtual conference, I said to myself. "it is an opportunity; I have to grab it." I have been waiting to spot such an opportunity for me; it came to me. I made use of the opportunity and worked honestly on it.


I have this thought in me. People have empathy for physically challenged people. But people make fun of people who have a challenge in speaking. Why? The movies I have watched make fun of people who stammer by showing it as a comedy scene or frame. Why? Though it is not a physical challenge, it is a challenge for a person who stutters. Stuttering is not my identity; it is part of me.


Above said are a few incidents from my experience with people while I'm stuttering.  It has impacted me and has its influence on me.  Today, I have control over it, and I'm trying to master it consistently.


I tried my best in TLC 2020 when I hosted and supported. I was aware there will be people from different geographical locations and who might not know my speaking challenges. I remained affirmative and confident while hosting; I believe I did it. I thank Test Masters Academy, speakers, support team, and conference attendees. You all made me better and helped me to see my strength!


In TLC 2020, I hosted/facilitated and volunteered as support for:

  • 31 pre-conference and conference sessions as host/facilitator
  • 36 pre-conference and conference sessions as support
  • 20 tutorials session as host/facilitator and support



Closing Note


I feel the same sense of gratitude while I'm ending the writing of this post. 

I thank Test Masters Academy, Anna Royzman, and Ajay Balamurugadas for the opportunity.  I have used my time in a valuable way by being part of the Test Leadership Congress 2020.  Thanks to the Software Testing Community.

I can host.  I can engage.  I can speak.  I feel a sense of accomplishment!


Friday, January 17, 2020

My Starting Days with BDD, Cucumber and Automation



I think how to put a thought of me into discussion mode before I start to speak. I take several approaches and strategies on same i.e. to bring into discussion mode rather as a argument and debating tone. Yet there will be set back at certain times and I learn from it. I have not let it to demotivate it me, but I have taken it as an opportunity for communicating better. The intention is doing the job best and right for context and vision of the organization.

I once said, "I don't know and this is what I know" in a meeting to a team member. When I reflected on myself later that day, I could see that I had given up on holding it for long time. Which usually I don't do i.e. I don't give up. I get stuck to it and have patience with silence in doing the task, which looks odd most times to people around me. The point here was not doing it to perfect or excellent, but doing the work in the right way. Figuring out the right way is not easy when we have team with diverse skill sets and culture practice.

Most of the times I wrote feature file (outcome of the collaboration in BDD practice) that was written, though I know it should not be me writing it. I wanted to keep it at least on average though not at good, hence I rewrote on review. Different teams practicing it in different ways and none knows who is better and not better.

If there is a design approach for a product in programming, every programmer follows it in the team, say. But this does not go in testing and automation practice, most of the times. When I sit back and ask myself, "why it is this way?", I happen to see -- could be the team is not trusting on what I'm saying? Then whom do they trust? I don't have an answer for that as well. I asked myself, "why are they so confused when we have clear cut solution approach with clarity?" I learn this is where the skill and expertise gets distinct in the work.

During this time, I observed the work we were doing and I use to analyze by staring at it to know -- what are we doing and are we doing it right? That was one of key job I believe in my role. To mark where we were right and not right, I had to learn the subject which was new to me as well. I took time here thinking it will benefit the team and organization. I asked myself, is it worth doing it? Then who else had done it? I have no answer for that in me.

In this context for me the best thing to do was, to let the testers do it and if they see a failure or difficulty later, so they might reflect back. That was a hard call which I took. I failed! You see, that's how the failure tag is put on a senior or junior in team for doing and not doing a work, when nothing goes as expected. Anyways, I failed!

What did I learn from this, then? It is okay to fail and I have pride in it. What I got from this fail are incredible learning.

I'm glad when a friend Nikolay wrote about it here -- https://saucelabs.com/blog/is-bdd-automation-actually-killing-your-project

It is not just me who goes through it. There are other people too and I saw on reading the post of Nikolay. It is one of the good posts which I will refer to a tester who is practicing automation using Cucumber and the word BDD.

As well, I observed, at times even I give up and lose bit of my patience which I hardly remember doing in my career so far.

At the end, if the question is "Who is wrong here?", I don't see anyone. There comes the time -- where a person A feel other person B is wrong; then the person A feels I'm wrong and person B is right; then the time comes, where person A see that both Person A and person B both were right (or wrong).

It was the outcome which counted most that day and the decision that was made for the outcome, speaks out more unsaid. The team has to move on and continue doing what it is expected to do and in a right way for context.

Monday, September 16, 2019

Software Testing as I see - A decade back and today, here is a start to the story of reality



This blog post shares insights of a tester who have crossed a decade, doing testing and practicing the testing.  If you are also a decade young, or bit more younger, or a tester who got into testing in recent times, you should be reading this.  If you are not a tester but you work with tester or the testers report to you or there are testers in your organization, then you should be reading this blog post.

It was around 2006, when I got into testing.  Among the standard questions, these question was common in the interview then -- explain the SDLC and explain the V model.  Forget the word Agile, it was not even relevant then.  By 2012 i.e. the word Agile started to appear as a question in the interview.

A decade back the internet was not strong as today.  Today, we have information written and web can host it.  Then, there was no community visibility as today, though it existed.  Internet was not available to all then, you won't believe this.  Today we carry internet in our pockets and palm.  

Most who hired a tester, would have asked to write test case and ask how test would be, in interview. The question around QTP, Load Runner and Cross Browser Testing.  Further a case asking the difference between sanity and smoke.  If went ahead, it was how would you test a pen, that was the question.  Then the tester was said -- you don't have to code; you don't have to learn programming; you have to test, that's big enough task.  Today, the story has changed -- we hear you to have code and not test, for a tester.  Don't you agree?  You have not been said this today?  Or did someone from your friend did not share this with you, that what happened to her or him?


If stood above all this and looked, there was one missing element.  The Software Industry then did not know how to assist a Software Tester to build her/his career.  So the management and peers, did not have much idea on how to assist a tester in her/his team.  That have come in generations passed on and as my seniors went on and got it, I too received it.

If there was one exposed and relevant tester who had vision for today's need, probably the shaping of me would have been so different.  I have tried my best and trying my best, when I learned this isn't what I should be doing as a tester.  



I know in 2019, still there are management and team, which do not know how to help tester in their organization and team.  It is no change, I see there.  But there are few companies which have shown the changes, but it is invisible when seen a picture as a whole.  All the buzzword -- Agile, Sprint, Backlogs, Automation, x Testing, CI & CD, DevOps, xDD etc., have come and striving to remain.  Yet there is no much change in life of a Tester in the Industry.   I had the same thought then as well and today as well.  Then, why didn't I solve it and just saying i.e. writing here?

I have done my best to the team and to organization with which I have worked.  I have to align to vision and goals of the organization as well, while I say the testing can be this today.  Change in the organization and industry, is not so easy.  But I see, it is a ripple, someone did there and when it ripples, the industry i.e. different organization want to ripple the same.  Note that the culture and practice who did it initially, had it so much into it; but the one followed the ripple just imitated it and imitating it, without knowing, without understanding and by not practicing like the one who did and found the value out of it.  This created the difference and misunderstanding, in my opinion.  And this is continuing today as well.  May be it will continue.  This is not a worth problem to solve in my opinion.  Because the delusion of ripple cannot be changed to who see it and want to do same.  Then, what's the point in reading further in this writing, right? Wait!


I see testers asking what should I do to programmers and managers despite they are testing for 'n' years.  Do a chef in hotel and mother in home ask how should I cook and can I do it this way?  Won't we wait for their cooking and eat?  Then, why the testers ask their managers/programmers should I do this or not -- while manager has no idea of testing as the tester has?  Learning from manager/programmer by asking is good; but not how to test and what to do after certain point of time.  I understand, we should inform the manager and stakeholders on what we are doing and why, but not asking what to do.  If asked that probably the manager should get additional (part of salary) salary of tester as well.  If the manager is not getting that additional salary, that manager is being cheated miserably.  This problem did exist a decade back, two decades back, exist today too, it will be there for in future as well, if a tester don't understand testing and practice testing.  If I'm a manager, I will in-turn ask "what you want to do, you do, just let me know in brief before you do that; if there is anything I want to say on that, I will.".  Further, I will ask, "how can I help you?" to testers.  As a manager, I will be wanting to build testers who decide what they should be in their job as a practitioners; I do not want to be instructing as steps in the test cases, step-1 do this, step-2 do this, and this is expected result and asking what is your result? It is our result, when I assist them to grow! You can read it again, the last 5 sentences in this paragraph and it is worth, I see.  

On the upper view like a view from the eagle eyes (see it is so clear), the testing management most times was in hands of people who never tested and it is continuing to be so.  Could be this is one of the primary reason why the testing takes a big hit most times and the testing practice goes to below par each time.  What could be done here?  As a tester, I feel, I should be assisting the testers who are interested and determined to be a value adding tester.  I don't want to change management mindset or testers mindset.  I want to assist a tester by pairing up in practice, that's all.  If I can do that with just fewest testers, that's enough, I feel.  Those testers will do much better when they see their practice and what it has to be.  I just want to pair up and practice with testers in their mindset and not in my mindset; this is easier than working to change the industry and management.  I see the tester as a velocity; while the industry and organization is the acceleration.  To see a better picture of acceleration, velocity has to be clear in its deeds.  Hey, I have a fundamental problem topic i.e. tester not getting the thoughts of business and management. I will write it under a different series of post, soon.  This fundamental problem has created much bigger problems than management and industry not understanding the testing. You know why, because tester did not understand manager, business, organization and industry.

In the next continued post of this series, I will share about the testing practice assistance that was received a decade back and today.  Till then, if you disagree or agree or neither of this, do let me know, if you wish.


Friday, August 2, 2019

Challenges in Building the Skilled Software Testing Team and Testing Leadership



In testers meet, I was asked, "I happen to see overlooking the value of building the testing team and contributions team make to shipment. Do you see same in your work? How to solve it?"


Before I went ahead to discuss on this, I had silent in me.  I see certain problems are in the culture and mindset for first.  Bringing a change here is not that easy - culture and mindset. It also applies to testing teams. It also holds good to any others (or teams) interacting with the testing team.

Taking the analogy of skilled carpentry work (say, "pepperfry") - we will see how this exists not just in testing but anywhere. But in testing, it is not changing after decades too. That's the problem causing unbearable costs and not the actual problem. It's not being attempted to understand by who needs the testing, in my opinion for today.

A skilled and experienced carpenter can do her/his work quickly and with values, right? How many carpenters exist today who can do job at least to level of saying this is the minimal must value and job, I need without the supervision and initial assistance from skilled carpenters.  If seen, the assistance in carpentry work is not for weeks or months.  It takes longer time depending on the skills, mindset, passion and attitude of person learning the carpentry.  Now comes the context - there is a list of orders coming in; the skilled carpenter has people who started carpentry and the people who can do job on consistent supervision for 'x' period of time. If the skilled carpenter puts her/his time in doing the work day in-out to deliver the orders alone, may be orders delivery will be met but with diminished values in work eventually? How long the skilled carpenter can do this i.e. all alone? The skilled carpenter should not assist her/his fellow carpenters and help herself/himself or people who will be hiring them for job?  I learn, the skilled carpenter will assist and give her/his more time in closely watching her/his fellow carpenters while chipping out the core part of the orders.  What if the fellow carpenters quit and join elsewhere? That cannot be stopped by any means. Due to people quitting does one has to lower the standards of one's work? Do the furniture brands say we lower our standards of product as we find carpenters quitting the job? NO!

Relate the same to Software Testing and Automation.  Including me, we have people in software testing -- who knows jargons; who knows how to use what they know in shallow or not know at all; and starters. Here we will have serious people who are interested and also not interested.  Considering the current time (future as well hopefully) of people or team who needs the testing team, isn't that a skilled tester job to build a team on which they can sustain and rely in coming days?

This long activity i.e. building of testing team can take years. And in my experience when had a people with right attitude, consistent efforts and passion - it can take close to 2 to 2.5 years for one.  In these 2 to 2.5 years, we can see people tackling the testing problems if practiced well. But people do change job in 2 years or so, now should I invest in it?  This is one of the invest-cost-value problems which has made Software Testing to take back seat.

It has gone to least priority when considering of having the skilled testers and testing team. Because, practicing testing is not done by most. Later saying this is testing to people boarding the team/org do this and getting the lower returns and values for team & org. Eventually blame the testing and testers. One simple example, we are aware of Design Patterns in programming and know several books/authors who has authored.  Do we know the Test Designs and design techniques apart from black box, white box, grey box, and any books or authors who have authored on same? Blinking of brain starts here!  I feel there is no need of better example than this.

Everyone has experience but that does not mean they are practitioners.  This is the trouble with people boarding into practice of testing. They happen to hear and work upon hearing - just do this, like this, this much, and as this. Write your test cases, automate all, bug reports and everything here. If that can be said in ease, it can be done in much more ease. Why hiring of the testers and having testing team?  Now you know the trouble and pain points of building the testing team and testers?

The expectation from the skilled (carpenter) tester is X+1, but the people who gave the job/orders see it is y-X and not far close to X.  This is the exact case with people or team hiring the testers and wanting to see the "proportional" value right away in the product and to the organization.  It can be achieved, if considered just the skilled (carpenter) tester and for a shorter period of time. But is that the expectation of people who pay for the all carpenters (testers) doing the job in a business?

To see the value of a test, it can happen in a release or few releases. To see the value of testing being done or not done, it can take few releases.  To see the value of having the skilled testing and their work, on which people rely, it will take years.  I see same applies to programming team as well. But in programming space we have people who practices it and then assist boarding people.

In the testing space, we don't have practicing people to assist the boarding people and existing people, in the right way.  This contributes to laggard and continue giving a low mark to the testing team and testers.

Now is it -- problem of the industry; problem of the org; problem of the people or teams wanting to have testing teams; problem of the testers itself?  Whatever, the impacted entities are -- industry, people or team who want to have skilled team and of course testers too.  Help the testers, testing teams and testing practices you have in your org. By this, you are investing. When investing know if it is done in a right way and on right stuffs. Otherwise, the investment made today in testing can become blocker cost.

If a skilled (carpenter) tester is working on building the future carpenters by giving her/his assistance, it is not a simple job! That's the bigger value. Doesn’t the business find returns one day out of this assistance? I say it is not simple job.

The skilled (tester) carpenter knows that he/she is not doing in full what she/he has to do in a given context while continuing to assist other carpenter.  But negotiate in open mind with stakeholders by bringing the understandable and mutually agreeing communication - what is expected immediately out of carpentry work given or the orders that came in.  If this is done, half-the-problem is solved when you have skilled testers.  Often, this will not happen and skilled tester too fail here. 

The communication of expectation for a carpentry work coming from different people; to whom should the carpenter look upon and deliver the asked delivering the work?  We testers and testing team have this problem as well in getting our work set and delivered.

How to solve?
1.   It needs a leadership in testing at org and in teams.  The test leadership, if they are testing practitioners it is good and boon. But hands-on practitioners might find time constraint to be in management and hands-on delivery. Yet this is do-able in my experience.
2.      Testers need to pull up themselves and bring the change in-out.
3.     Culture and mindset problem, needs better way of solving and not the software testing way i.e. how software testing solves problems.  Unless having the faith in software testing and how it solves the problem, it cannot be used as a relativity in learning to learn and solve the problems.
4.   At the bottom, skilled practitioners will be on the hit list most times. Unavoidable! But that should not put down the Software Testing community and practitioners growing. One day you will be recognized, remembered and highly valued for what you have done.  Just make sure you don’t incur big costs personally by doing this activity. Balancing is the key here and it comes only by incurring the costs while doing this activity

If not bothered about
·        need to transform into skilled testing practitioners;
·        org not having/wanting the efficient testing teams;
·    continuing the shallow and low returns testing & automation, which is highly accepted, paid better for doing that and you don’t care a penny anymore about it,
then do not attempt solving this problem for you, your team, and your org. It will never be solved. It will just increase the troubles to all.  One day it will be realized and it will be picked to solve by stakeholders upon having the costs.


Note: I admire how the "pepperfry" crafts its furniture. I wonder why the same cannot be achieved by carpenters who do carpentry while constructing the house. I'm left with many thoughts on this and I try in discussing them with a tester in me.


Wednesday, December 20, 2017

The Test Data Stopped Me from Committing a Blunder



Recently, I took up testing of a feature and it was one of the critical releases from a point of business. We had to create new systems technically and associate with the existing system for a flow to complete the business need.  This involved testing from at least 5 different endpoints other than different client endpoints.  But how to test it with the time I had? 

To test this effectively, I could have made use of existing data from the stage database and mapped it or dumped it to create a copy for the new system.  Then, I thought, let me create a fresh set of data.  The challenge for me in creating test data was:
  1. I did not understand existing test data as it was not that straightforward and simple; most data were junk i.e. entered randomly, and created with automation aid to have some data, probably
  2. It has to sample for 100000+ entries in production and its mappings to different fulfillment
  3. It has to help in testing the newly built system in the unit wise and integrated system in each node wise
  4. It has to help in figuring out the problems in each microservices and different client nodes
  5. I had time of 2 days to prepare the test data
  6. I had to understand the logic of how various associated microservices evaluates the same data for fulfilling the request
  7. I had to understand how the data has to be constructed such that when it is fed to the cron job or scheduler, it will just pick it and insert them in the database and then associate the mappings
  8. How to make sure this mapping is done right? How shall I test this mapping?
  9. I will be getting almost 1 day to test this new feature on one client node after data creation.  How do I make sure the client endpoint is dealing it right along with other client nodes and microservices endpoints?
  10. The products get shipped at the day end that is on the one day testing of a client node
  11. What is the space I have to correct my error If I did in my testing now?
  12. I was said not to test anything and just see if that functional flow is good enough to make one as usual fulfillment, to keep it simple one transaction in a business use case. Should I take this and just do this and nothing else?
  13. I said to the team not to make junk data entry and call this as test data; I had stopped the team from entering data for two days in all interfaces
  14. Data being created from automation in systems was posing challenges each minute during this time and I had to collaborate with different teams on the same while I had left with little time to complete my testing tasks and delivery from test team

I learn, my testing can be strong here if at all, only if I understand the data and how it gets fulfilled.  I decided to sit and create the test data.  While I created test data, I started referring to the production environment and created the data to simulate them.

I prepared 42 test data and I knew exactly what it is and I had sampled it enough to simulate 100000+ data.  I had taken close to 3 days for designing these data and associating it without the help of any cron job or scheduler.  I figured out how to evaluate these data in each node and microservice endpoints by this time.

This is the advantage of test data creation. I spent most of the testing time here i.e. in preparing the test data. It helped me very much!

With this, I had sets of tests that are "must" and any problem in these will be a blocker. In another set of tests, if there are any problems, then it can be called out by stakeholders if that has to be fixed or not for releasing the product.  I was left with 3 hours before they take a call of shipping the product, that day.  I had to cover my tests by this time.

It was about 2 hours left for the shipping decision, I noticed a behavior that seemed to be a release blocker. On informing it, I started looking at different client nodes to see if it existed there as well.  I could identify this blocker, because, I had designed the test data. If I had not designed the test data, it would have not been possible for me to identify it that day. One of the disasters probably in the product's and business history if this blocker bug had gone out as part of a release.  The functionality seems to work and fulfillment runs. But the feature is not doing what it has to do.  See how tricky it is - it functions but it does not do anything that it is supposed to do eventually. The disguise!

If I had just carried out the functional flow per communication I received from the engineering management, I would have done a blunder as a practicing tester. The business does not do this purposefully; they assume it will be handled and there is no need to test this.  If I have to make the same decision as a tester that is as engineering management and business, I should be convinced enough to say, there is no need to test this at this point in time given the context. I took it up by making time in available time to test each endpoint. 

The functionality flow seem to look good but the outcome was not what the business wants and it is not obvious anywhere in the GUI.  Debugging this behavior, I learned this is a problem. I figured out the root cause of it and shared it with the programmers.  I was given a new deployment to test for the same, later.  The shipment of the product did go on the same day. I wrote the RCA for the same on receiving a fix.


Why did I share this here?
  1. Test data is an important part of a test
  2. Time what we spend on creating tests and data, usually it is not seen as part of testing and not included in the time given for testing
  3. Sampling and creating the test data is a skill to be improvised each day by the tester
  4. When said don't test this, as a tester have enough confidence and rational analysis before not testing it; else, as a tester, we will be supporting the growth of the risks in product and risk for using the product
  5. The creation of test data helps to know different endpoints of a technical system; if it did not help, then we are not preparing the right test data
  6. Blockers, bugs, and ambiguity always exist; the tests and test data should help in making it simple to understand and know the root cause
  7. If I had not worked on this test data, I would have not identified the blocker and it would not have been possible for me to test each end node of client and microservices

Now if the use cases are automated in this feature, the automation can assert for same on different end nodes because we know what is the data and what is expected out of it. There is no need for me now to do this as extensively as I did this time.  This is one of the benefits of automation which lets me focus on other stuff in testing.


Note:
  • Never exaggerate the bug report saying technical investigation and root cause. Rather, we can provide, this is what we learn from our test investigation.
  • Never exaggerate the test data and underestimate the test data. Anything associated with test data is worth investing time to look at it and know it better.


Saturday, July 8, 2017

Problem Not From SDK; But, I Said, That's the problem. I'm Wrong!



Today's software is not like the software and hardware what I saw in 2006 to 2010.  I see the software which we are building today, it integrates third party software vendor's SDKs.  As well, today's software what we are building are not desktop application like in the 2000s; but the applications on the desktop and mobile which can connect everywhere else and serving the user.

Recently, I was testing a product which is in its initial state of MVP. It integrates four SDKs from different software vendors.  Among these, one SDK showed a behaviour which was unusual and the engineering team which I was part of, raised the request for support from that SDK's vendor.  While the behaviour what I observed in the product was uncertain and over a period of week, it took a stable behaviour.  When asked, I was said it is due to SDK.

Here is the miss, what I did for first. I took those words as I had got used to this behaviour for two weeks with no technical solution. I did not question enough that and debug around as the time what I had for testing was also crunched. I and other fellow tester owned the ownership of testing for the release. Stretching late nights and weekends, it all drove me to take words when said it is technical limitations and nothing can be done.  Here is the second miss what I made -- I took these words as the behaviour due to SDK and previous experience was consistent and synching very well.

The story got different in production.  One of the user reported the same behaviour and I was confident in my reply and said, it is as a known behaviour.  My other programmer friends had same opinion.  My programmer friends here are highly skilled and they know their job very well.  But we all were fooled by the software as the pressure which eventually starting building upon us. That was also due to the experience of us talking with that SDKs team.

I took up that behaviour for investigation again today after hearing from production and from a techie friend who said, "it should not happen for so long".  Yes, it should not happen for so long as I expect it should be gone after the synch is done, is what I think as well.

I started questioning myself and doubting what I have learned.  Isolated all the environments for my observations and started watching my actions, the requests, the responses, the pay load, the race conditions, the served and unserved data streams, the logs, and the breakpoints & values in code eventually as I did all these moves. 

I was wrong! Yes, I was wrong in what I said confidently to every stakeholders right form CEO, CTO to all other business stakeholders. Also the engineering team had the opinion what I had.  It was time to go back and tell them, "I'm wrong in what I communicated in behaviour of the client software and rational behind it".

I gave the reason why it happens, when it will happen, when it will not happen, the impact of the behaviour, work around for same in production, is it dependent on anything else and awaiting, and why it was a missed from our end technically.  It was not a problem from third party's SDK. It was a UI that got triggered each time when the activity got triggered. 

Though I have to investigate much lot for other problems in using that SDK, this behaviour is not due that SDK. It did work well in this case here.


What I want to say here?

  • No matter how confident in the code and in tests, we will be fooled and are fooled each time
  • There is no harm in doubting ourselves for second time on -- what we have listened; what we have ignored; what we have learned; what we have not carried technically while we observe the behaviour from the tests consistently
  • Being non-technical in our observations and work helps a lot
  • Knowing the benefits of not thinking technically each time
  • Giving time to ourself so we sit back and investigate the behaviour which everyone claims it is due "that"
  • If it is due to that, you will happen to learn about it so you can test it better
  • If it is not due to that, then you will happen to learn it is not so and can figure out the cause of it; help team in fixing it
In this case I see no impact to user in terms of data and performance of product, but the experience is definitely annoyed.

So I learn again, that I should build the tests technically -- which will put the product into test for the experience of each feature; each UI; each actions of user on a UI; each interactions with backend and its outcome to the client; and evaluate the outcome of the same.

How will I do this? I can do this sitting in person and also with help of automation.  But the point is what is the scale where I have to be with my tests samplings to experience it and investigate further. This takes time to learn and it won't happen in crunch time of releases.  Having said this, it is not bad to go and talk with stakeholders and buy the time quoting the priority and impact of the behaviour. We testers will have to initiate and assist the stakeholders in learning when there is a need for it.