Tuesday, January 28, 2020

Testing Tour Stop #8 : Pair exploring about exploratory testing with Simon Tomes

I was on my eight stop with Simon Tomes to discuss all about exploratory testing. When I was very new to exploratory testing, where i was trying to figure out how I can structure my exploratory sessions and show value to my team, I came accross Simon's #PQIP Problem , Question, Ideas, Praise and here's the blog for more details.  I started using this approach along with various different approaches to document and share it with my team. It was so great to pair with Simon and learn more about exploratory testing.


When I reached out Simon about doing this session, he was so kind that he just gave me his available date straightaway and we booked in 2 weeks time.

It’s incredibly kind of you to ask, I’d love to pair up on a testing tour session with you. It’s not something I’ve done before and I’m super curious to learn from the experience and from you.


Session


We started off our session with lot of energy and excitement and the first thing we discussed about was about testing community. Then I asked Simon, how and when does he integrates exploratory sessions and how does he plan for it. And I shared that I sometimes use mindmap as well to take notes during each session and then add all this information to the ticket. The reason why I add information to the ticket is not as a proof or something, but to help us reflect/revisit our testing approach. Simon translated this very well - 

“We don't document our discoveries to cover our backs. We document our discoveries to give back to the product.”

Then Simon ran ran through an example of exploratory testing notes for an exploratory session : "Explore Lean Coffee Table, cross-browser, to learn about sharing a board".



Then Simon mentioned that we always need to think first about what value does the product need to provide to the users, what are the potential risks that might come up, what questions do we have to come up with to identify those risks and then taking those questions and turning them into tests. This for me was #VRQ - Value, Risks, Questions.

Then after a long interesting discussion we decided to explore the product I'm working on. Zoom was great to share the screen and then I started to give some context about my product. Simon asked me how did I approached to understand this product when I was new to this. Initially it was difficult to go through the documentation and then explore the product because I was completely new to this domain. Our product is called Mia platform  which is a cloud platform that automates the accounts receivable life cycle which delivers greater efficiency, accuracy, visibility and cost savings for companies.

Then I shared with Simon that , I started to pair with project managers/product owners who were very close to the product and the users/clients to understand how it used.  I then reflected back on what Simon mentioned about asking questions to understand risks on one of the functionality of our product.

  • When the user logs in, the user can see a diary panel that gives the information about what kind of tasks needs to be done and for which customers and lot of other information. Its just like a simple diary or journal with notes of what needs to done today. 
  • Once the user clicks on one of the item from the diary panel, it takes the user to the customer account to perform the task or action or can also create a task.
  • If I'm exploring these two steps without asking any questions then its just a page with some call to action links which takes the user to customer account and we can click through to create or complete a task. It feels simple. 
  • But, if we ask some questions like - 
      1. How does the user use this diary panel?
      2. What problem is the user trying to solve by using this diary panel?
      3. What is the impact or risk of this diary panel not loading up with the items?
      4. What is the impact or risk of this diary panel loading up with incorrect details?
      5. What is the impact or risk if each item on the diary panel is not clickable?
      6. Where does the information come from on this diary panel?
  • By asking these questions(which are just few and there might be more questions that can be added) we can understand what value is this diary panel providing to the user, what are the different risks and then these could be in turn tests to check this. 


  • Then we discussed what if we applied the same approach for creating tasks functionality to find out value and risks. 
It was really interesting to share and discuss different approaches while testing. Here is the video which Simon shared  about - Exploratory testing  - Risks and questions and a handy note taking template .

Learnings from the session

  • A new approach of converting questions into tests and using those questions to find the value and risks. 
  • Being a solo tester you always have that fear of being not sure if you doing it right, by having conversation during this session and sharing my approach and getting the validation gave me so much confidence. 
  • We can always prioritise(by getting what is important from the team) which part or where to explore and come up with risks.
  • Its not just about finding issues while exploring but also finding useful information.
  • Technology can always give us troubles, even if you have back device as an option :D. We did face lot of unstable connection issues which is part of the remote pairing challenges but we overcame by switching to back up devices we both had. 
We could have really continued for another hour or so if we have not had this technical difficulties. Simon did mention that he would be happy to collaborate again which was awesome. Thanks to Simon for sharing all the valuable information and being part of my #TestingTour



Monday, January 27, 2020

Testing Tour Stop #7 : Pairing up on Restful-Booker-Platform with Niranjani

It was the time for my next #TestingTour stop number 7 with Niranjani where we paired up on restful booker app. There were few amazing things about my learning partner :
  • I met my pairing partner at Hustesf Conference at Budapest in 2019
  • We both are Angie Jones mentees 
  • Niranjani as well is on her #TestingTour

Session

We started off our session by cloning the restful-booker-platform from the github page and launched it in Eclipse IDE. 


Resftul-Booker-Platform cloned and opened in Eclipse IDE
Next steps was to check based on the requirements, if I have Maven, Node, NPM and JDK installed and which versions did I had.

So first we checked if I had NPM installed and if its already installed which version it was by running the command -- npm -version from command prompt. I had 6.12.0 version installed which was the required version for restful-booker-platform.

Next I had to check if I had maven installed by executing - mvn -version from command prompt again and I had Apache Maven 3.6.3 version and the requirement for restful-booker-platform was 3.6.2 so that was fine.

Then I checked if I had Node installed and the version if its installed by executing - node -v from command prompt. I had v12.13.0 which was as per the requirements. 

Now next step was to check Java and JDK , we faced lot of challenges here when we were trying to set this up as I had windows and Niranjani was used to Mac. It's weird that even the most common and simple thing gets challenging when we are trying really hard to complete something ๐Ÿ˜
After all those challenges we were able to set up all the requirements Yay!! 
As I my laptop was running java version 8 we then went into pom.xml file of each service and changed the version for each of them to 8 and saved the changes to ensure the target version is 8.

Now next we were set to build the and check if its successfull so we executed the command build_locally.cmd . We had some failures here in fact it took quiet a lot of our time in trying to figure where the issue was and then trying to resolve it. Then we went back into each folder for each service and made sure the pom.xml had been changed to version 8 and all the changes had been saved. 
Then finally the build was successful and next we executed the command - run_locally.cmd. And this is what we were able to view on - http://localhost:8080/
We also tried to run end to end tests before the time was up for our session.

Learnings

  • Being patient and going through each error at a time and try to resolve it. When I see loads of errors, I loose my patience and sometimes I try to give up on trying further. In this session Niranjani had so much patience to read each error and figure out what and where the problem was and then tried to resolve it.
  • When you cannot find a solution for the error try various ways to find it on Google. Google is your solution finder if we try to frame our questions well and try to find the answers. Not just that but try to use different answers to find the solution.
  • Niranjani was very well organised in following each step at a time and going through the readme file again and again if something wasnt clear while executing the commands.
  • Initially I was bit embarrased that I used the entire session for only setting up restful-booker-platform and dint use it for api testing or anything else. I realised that sessions might go in a different direction and not always as planned. But either ways the end goal was to pair up, learn, share and most importantly enjoy the session which we both did. 
It was really to great to pair with Niranjani to do this session. As I mentioned earlier if anyone is interested to pair with me or Niranjani as she as well is on her #TestingTour please reach out on twitter.

Tuesday, January 21, 2020

Testing Tour Stop #6 : Pairing on Roman Numerals Kata with Johnicholas

I had my sixth session with Johnicholas who is a programmer from New York who approached me to be part of my #TestingTour so I was really looking forward for our session.

Session


We started off our session by introducing each other and sharing our interests. Johnicholas introduced me a new tool Yayy!! Glitch. This tool is used for coding which is like working together on Google Docs where multiple people can work on the same project at the time. Wow there's no need of any setup and we can see the changes live on the web as we type. Isn't it cool.


Then next step we decided to pick something to work on. Out of so many interesting options we picked Roman Numerals Kata with Gauge to try work on which was implemented using Javascript and Gauge was used for tests. We also decided that we will be using navigator and driver/strong style pairing for our session. Johnicholas became the navigator first and we started off by looking at the readme.md file to understand what it does. It was a simple application that converts a number into a Roman numeral. 

Then it was time to switch role, now it was Johnicholas turns for being a driver and me being a navigator. We decided to check what tests have been already written by going to roman.md file. There were some tests already written to convert "1" to "I". Then I asked if we could write a test - convert "1" to "II" and run and see the results. This is how the results could look like :



We then decided to add some more tests and run. The most interesting part was that we dint use any timer tool to check the time to change the role but still we strictly followed shorter cycles while we were changing the role and it really worked very well.

While we were writing the tests we realised there was no implementation details for few tests. For example, I wanted to write a test - Convert "5" to "V" and check if the test passes. We picked up roman.js file which had the implementation details written in Javascript and this is how an example implementation looked like before we started writing the implementation code.



Once we had this implementation code written we then added the tests to check if it works and converts 5 to V. We continued writing more tests and run to see if it does what it is expected to do. I was really enjoying using this Glitch tool as it was so easy to use. 

Learnings

  • Got introduced to a new tool Glitch which really awesome. There were so many different projects to work on and practice and the most interesting part of this tool is that multiple people can collaborate and work on the same project. 
  • We don't need any timer tool if both pairing is familiar or very much willing to do strong style pairing. We dint use any timer tool but we were still following regular short 5 mins cycles to change our roles.
  • I knew that not just testers would like to pair with a developer and learn to pair but developers as well are interested to pair with testers.Johnicholas was interested to pair with tester's outside his team to learn and share. 
  • Discuss about the application to understand it better before starting to work/test on it. This would make sure that both have same understanding about the application.
It was such a great and interesting session and in fact we decided to pair again to collaborate on another project on Glitch. 


Tuesday, January 7, 2020

Reflecting back at 2019

This is the first time I’m writing a blog post on reflecting back on a year. Its been a different year so I thought its good to look back and see what I have learned, what challenges did I tackle or face and what was new during the last year. I always end up in not appreciating or acknowledging myself on what I learned or achieved. So I thought it would be good to look back so I know what’s 2019 been like for me.

  • I also presented at 3 online conferences, 1 online meetup and was part of a panel discussion with Lisa Crispin, Simon Prior and Joe Colantonio. It was such an honour to be on this panel and I had a great experience being part of this. 
  • I gave my first conference talk at Testing Summit London 2019 and I got invited to present again at Test Summit London in 2020.
  •  I was new to this entire testing community and 2019 was the year of networking. I never used twitter or slack groups but I started being more active since this year. It really helped me in lot of ways. I could share my learnings, my happiness, my achievements, I'd reach out if I had any questions. What's more wonderful was the overwhelming response from the community to help me find my job 
  • The pattern for me in 2019 was all about coming out of comfort zone, doing things which I  have never done before, being brave and courageous, had ups and downs and still trying to learn to deal with those things, learning new topics. Overall it was an awesome year for me and really looking forward to continuing learning and sharing more in 2020.