This is a blog where I (Ajay Balamurugadas) write about my experiences with SOFTWARE, testing software, enjoying defects in software and my learnings in software testing :)
After the Mobile App Europe conference held in Sep, I was invited to QAI STC at Bangalore and Think Test conference at Delhi.
QAI STC - The conference's theme was: Conscious Quality – Delivering Value Continuously, Constantly and Consistently
Last year, I had challenged the theme of the conference in my proposal. My proposal was not accepted. This year, I thought of supporting the conference theme :)
My title for the talk was: Software Tester's Role in Conscious Quality Delivery
I had started my professional speaking with STC way back in 2009 with talk on Weekend Testing. It was nice to go back to STC as a Keynote Speaker this time. I met many friends and made many more. I missed meeting Shrini as he was to talk the next day and I was flying to Delhi for the Think Test conference.
The talk went well and the audience seemed to like it. Many appreciated immediately after the talk.
Today, I got to know that I had won the "Community Choice Speaker of the Year" along with Shrini Kulkarni.
After STC conference, I and Abi flew to Delhi on 04th Dec. Thanks to Smita and Santhosh, we had the Mobile Testing Workshop at Times Internet office. It was a full day workshop and was an excellent opportunity to take Test Maniac to Delhi. After the workshop, we went to meet James Bach. He gave us an exercise and we solved it. It was a good thinking session and we chatted close to two hours. The next day, we were on time for ThinkTest. I presented on 50+ tips to improve tester-programmer relationship based on my book. Good sessions were on offer. I need more time to go through my audio recordings again and collect my takeaways.
After the conference, we left for Panipat for Sanket's wedding - our first experience of a North Indian wedding.
Till next time, take care and be fearless while testing !!!
I was reading the book 'The Memoirs of Sherlock Holmes' and found this interesting case called - The Yellow Face. This is a good read. Sherlock is asked to help a man who feels that there is a secret between him and his wife. Sherlock suspects that its the lady's first husband who has come to the cottage and blackmailing the lady, along with another lady.
Only when they reach the cottage, Sherlock and the man realize that it is not the first husband but the child who was unwell and has now recovered. So, Sherlock fails to solve the case or to be fair, his assumptions and inferences about the case is false.
After reading this story, I realized that investigation is a key skill in software testing as well. Think about how we listen to the facts, lay our assumptions, build a story, conduct experiments and prove our theories or learn from it. Sometimes we go ahead and without any experiments, conclude that our theory is correct. Just before the story ended, Sherlock tells Watson
'If it should ever strike you that I am getting a little overconfident in my powers, or giving less pains to a case than it deserves, kindly whisper 'Norbury' in my ear, and I shall be infinitely obliged to you.'
Just when I read those words, I felt that it can be turned into a heuristic - "The Yellow Face" heuristic. A heuristic which warns the testers against complacency. Against believing a theory without enough investigation, without enough critical thinking.
Imagine in a project when someone is building assumptions after assumptions, just tell them - Beware of the yellow face heuristic
When I started testing this feature, it looked quite simple. On a page, the user would be provided an option to view the default number of entries. This was helpful compared to the current UI where the default was set to X. Also, this feature was supposed to be a widget level change which meant that it can be applied across pages with minimal or no change. Also, one could jump to a particular page using a button.
The typical test ideas that came to my mind were:
- Change the defaults
- Compare with production
- Try every value
- Try combination of the Jump button and the drop down to change the default value.
But as I started testing, I discovered few interesting issues which I would like to highlight here:
Issue 1: Incorrect text displayed when the product of default value (drop down) and Jump to page value equaled 1000. The text read 'Displaying 1-1000' instead of 990-1000
First of all, I wanted the test data setup part to be automated. I wanted to have more than 1000 entries for my testing. Thanks to my colleague Vinod G Srinivas, who gave me a quick script to create X number of entries. This particular bug was present only for the value 1000 and worked fine for any value below 1000 and up to 2000.
For example:
This was an example of a bug at the boundary. Strange things happen at the boundary. To our surprise, this bug is existing in production. With 10 as the default, someone would had to navigate till the 100th page to see this bug. No one reported till now.
Issue 2: Action on records messes up the page count For example, I have set 25 as the default in the drop down. I populate 26 records. I can now navigate to page 2. If I delete the record on page 2, I am left with 25 records and should be redirected to page 1. But guess, what happened? I was left at page 2 without any records and the text which read: Displaying 26-26 records.
Issue 3: Switch between default values displays incorrect records Suppose I had 11 records and default was set to 10. I saw the results in two pages. Without navigating to second page, I expect to see all 11 records when I switch the default to 25. Everything worked fine till now. When I switched back to 10 from 25, I still saw 11 records. The switch back to 10 as default was not respected.
Think about these three issues. These don't look straight forward. You play with the software and slowly you get the ideas. And these bugs were interesting according to me. I had never predicted that I would have seen these issues when I first got the feature. And that is what makes me test - The uncertainty, the joy of exploration and investigation. Till next time, do share your interesting bugs.
It was January 9, 2015. 7.20 am IST. As usual, I checked my emails first. There was this email from Matt Heusser asking me if I would be interested to do a keynote at CAST 2015. Pete, the Conference Chair was copied on the email too. It took me less than a minute to reply and I gave them a green signal. In two weeks, the abstract was finalized. And time flew. Soon, it was July and I had not formally prepared anything for this conference. Thanks to Suresh from Sanky Travels, Bangalore who took care of the flight and currency for this trip.
Last week of July
I read the abstract multiple times to understand what I promised to speak on. I then thought about the different ways to deliver the keynote. Should I go the Prezi way or the XMind Pro way? Should I have word clouds or just images? Should I hire someone experienced to help me create the presentation? These were some of the questions which were dominating my thought process.
When I started my testing career
I failed many times. I could not deliver what was expected of me. Many friends, colleagues helped me cross the stage. Some of the best lessons I learned was from the developer friends who pointed to me on how I could improve my testing. I tried thanking most of them through this mind map.
I started thinking
about everyone who helped me in this journey.
My school teachers who gave me the confidence that I can dream big.
My parents who supported me at every stage of my life. My grand parents and relatives who continue to bless me with their wishes. Immediately, I realized that I could start my keynote by thanking everyone who helped me. There were many people whom I had to thank but could not fit on the slide. It does not mean that you don't matter. It just means that I trust you that you will not mind.
Reached Chicago on 31st July Dhanasekar S joined me and we both reached the Amway Grand Plaza at 11pm. We got the Luxury suite and it was too good. The next day I wanted to attend the Test Retreat conducted by Matt Heusser. We did have pizza for dinner and were surprised by the 14" sized pizza. We could finish only half of it. (Next time, do pay attention to the size before placing the order). Test Retreat - 01st Aug
The venue was at a walking distance from the hotel. Thanks to Google Maps, I found the venue and Matt was right there at the entrance. We had an issue. The lift was locked. In few minutes, we had that sorted and we got started. Each one proposed a topic to speak on. There were three rooms - one for each group and we split based on the topics we chose.
The discussion was good and most of them have been captured here with links to Michael Larsen's blog. 02nd Aug - Rest day
I slept for most part of the day and also prepared for my keynote while most of the Test Retreat crew went on a boat trip.
03rd Aug - Tutorial by Fiona Charles
Location doesn't matter to me and I tend to sleep well irrespective of the location/time-zone/weather/sound/light. I got up early around 6 am and got ready for Fiona's tutorial - Speaking Truth to Power. Dhanasekar was also ready for presenting his tutorial - Mobile App Coverage Using Mind Maps. I had never been in any session by Fiona and was really excited to attend this tutorial. When I arrived, there was no one in the room. Soon, Fiona arrived and set up the laptop and Erik helped us set up the flipcharts and projector. I don't like PowerPoint approach a lot and when Fiona started with PowerPoint, I was slightly disappointed. What followed changed my whole mindset and I really liked the approach. She split us in teams of 3-4 and gave us an exercise. This exercise gave me a new insight about the different contexts tester can experience.
I met Barbara Streiffert there who works with JPL (Jet Propulsion Laboratory). Her thought process was so clear and structured that I was happy to be part of this team. I also met Ben Simo in the tutorial. It was a dream come true after fours years.
I also had an opportunity to interact with Carol Brands, Kate Falanga, Diana Wendruff, Mark Parratt and many more testers whose names I am not able to recollect.
The different teams, their experiences and the role play exercise helped me come up with a few lessons for myself. The simple act of asking everyone to drop their posts with lessons learned and asking people to read out lessons from others was an interesting experience.
One long post to absorb would be the one on SATIR Interaction Model by Dale Emery - Untangling Communication
04th Aug - CAST Day 1 Tutorial by Karen JohnsonIt was cold outside and in the room where the keynote happened. If it was not for Karen's inspiring keynote, I would have left the room within five minutes. She has close to thirty years, yes, thirty years of experience in software development. Check out the diversity in her experience - presentations and publications. After her keynote, I attended the talk by Carol Brands - Learning to Lead: Making an Impact By Improving Yourself. This was her first talk and was mentored by Speak Easy team. I was impressed on how she tied every slide to the main theme.
After lunch, I attended the tutorial by Fiona Charles - What's My Context?
We had to come up with factors that affect the 'context'. Our team came up with the following:
After the tutorial which went till 3pm, I went back to the room and prepared for the keynote next day. I had a good night' sleep and left room early for the 9am keynote.
05th Aug - CAST Day 2
I was quite nervous as I had never given a keynote. It went well. There were many tweets (more than expected) about the keynote. Few testers came up to me and told that they were inspired by the keynote. :) It was a happy moment.
After the keynote, I attended the talk by Erica Walker and here is my mind map from the talk.
And the next talk in the same room by Jeremy Traylor. Immediately after the talk, I had to give a talk on 'The Power of Exploratory Tester'. Mob mind map from the session is here:
And we played games - SET, SQUISH and few other games I could not participate. There was Pizza and Lightening talks :) And we officially wrapped up CAST 2015.
I went back to my room, slept well and left for India the next morning.
The twitter feed was still about CAST and we made new friends, met old friends and learned a lot.
Yesterday I went to Trivandrum for a one-day trip. Nazreen from STeP-IN Forum had requested me to assess few testers who are graduates from National Institute of Speech and Hearing (NISH). They have been trained on software testing from a philanthropist, based out of Trivandrum. Out of the five students who got trained, three students got placed in a single company. Only two students - Appu and Kannan were not placed in any company yet.
When Nazreen called me and explained me about this situation, she did mention about an interpreter too who could help me communicate with the two boys. I gave them few exercises over email and I could not assess the skills to my satisfaction. I wanted to spend time with them to understand the context better. V-Shesh decided to fly me there and get me back to Bangalore, the same day.
New Context
As soon as I reached NISH, the two boys were ready and raring to start learning? No, they thought that I had come to interview them. Once I clarified with the interpreter that I am only a software tester and have no say in hiring any individual. I did not want to give them a plan without understanding their context. I had never interacted with any software tester who was deaf.
I assumed that they would be able to lip-read and understand. I was wrong. When my colleagues themselves find it a bit hard to follow me sometimes, I shouldn't expect much in the first interaction itself.
I asked for few sheets of paper and we communicated by writing on that paper.
Challenge 1: Assess the current situation
When I gave Appu to write about what he knew about software testing, he started writing about the definition, requirements, validation, verification and so on. I realized that the day was going to give me new challenges.
Kannan responded to my questions in his own way. His task was to test Amazon.com - Search feature and give me list of bugs. He showed me the first bug report with a smile [Remember that there is no sound involved here. I am not talking and they are communicating using their fingers] When I asked Kannan about the oracle behind the bug (I used simple terms - Why is this a bug), he pointed me to the invalid test data. I asked wrote "So?" and he could not answer.
I knew that this would take a lot of time and I have only 3 hours left before my departure to Bangalore. Meanwhile, I had asked Appu to read about Context-Free Questions blogspot and Kannan to refer the 400 Common Software Errors.
I then wrote a letter to Appu and Kannan and requested the interpreter to convey the message via sign language. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A letter to Appu and Kannan ---------------------------- Congratulations on giving your best to learn software testing. I am impressed by your attitude and your willingness to learn about software testing. You are better than many software testers available in the world, working in different companies. They are already in the company, we are yet to get into one. I have a plan on how you can get into the company of your choice. Yes, your choice. When will any company want to hire you? - You are good. You are better than their test team. - You can test any software and have experience testing different types of software Right now, you know to find bugs but you lack practice to explain why you think it is a bug. If you are ready, I have a plan for you: It is a 10-day plan. With this plan you can learn to test any software. -------------------------------- 1. Understand the requirements - Context Free Questions - Mary had a little lamb heuristic - Understand the purpose of testing 2. Write test cases / Have checklist ready - Write test cases - Different Quality Criteria 3. Find bugs - List of common bugs - Techniques to find bugs and justify why a bug is a bug - Tools to help you find bugs 4. Prepare test report - Details of what you tested - Details of what is pending - Details of status of project and product If you learn how to test mobile apps, websites, desktop applications, you will have higher chances of getting into a company. I will demo you how to test website, desktop, mobile app. Then you can also demo it to me with another example. Then we will have online sessions. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Challenge 2: No Internet
They were ready and I asked for a room with whiteboard and few markers. As soon we moved there, we realized that there was no internet. Well, what is the fun without challenges?
We continued without internet and this is the outcome of the discussion over the whiteboard.
Then I showed them how I would test a website. I did a lot of commentary in between by typing why I was running a particular test, what did I use to achieve a particular goal and stuff like that. Here is the snapshot of the text file used.
Challenge 3: Limited Time
And then I received call from the cab driver to drop me to airport. I realized that I had spent close to 5 hours explaining testing without opening my mouth!!!
I could see the smiles on Appu and Kannan's face. You know what was the most satisfying moment in this whole experience?
Communication - Straight from the heart
When Kannan went to the whiteboard and wrote - 'How do you know Sign language?'
I had tears in my eyes and wrote - I do not know.
I conveyed that I know acting and he nodded. I was smiling inside...
What do you think are the next steps?
I will coach them and get them job-ready in a month or two. I do not know(as of now) the time frame yet. They will work on their skills and get ready for job.
What can you do?
Spread this post, spread the news about them and maybe help them get trained.
My email id: ajay184f@gmail.com
One of the surveys which might help us testers understand how the world chose to respond is the State of Testing Survey. It was conducted in 2013 and the results are here.
If you have not participated, here is your chance to participate.