Dawn v/s Don: Context and importance of BDD

Dawn v/s Don: Context and importance of BDD

Let me give the story behind this title.  Myself and two of my friends and colleagues,  Harsh and Valerian were travelling from Mumbai to Pune on 15th of July for ATA’s 15th meetup which was being hosted by FiServ. The meetup was supposed to start at 9:30 am. We had targeted to reach Pune before 9:00 am. July being a monsoon month in Mumbai we decided to leave Mumbai quite early around 5:30 in the morning. The cab picked me up from Airoli first and then Harsh from Ghansoli and last Valerian at the Jui Nagar bus stop. On our way we were discussing about different things. In one of the discussions I mentioned about a movie I saw previous night and how much I liked that. Immediately after that Valerian told that we liked Don (that is what me and Harsh heard). I immediately told that Don is a great movie too with Amitabh Bachan (Bollywood’s) as the lead in the same. Harsh agreed with it. Valerian then said what don he is talking about DAWN – that morning Dawn he witnessed while waiting for us on the Jui Nagar bus stop. While living in Mumbai high rises we seldom get a chance to witness DAWN. It then dawned (J) on us that the context changed and the phonetically sounding words DON and DAWN have created this confusion.

During the meetup we had an excellent presentation on “Whole TEAM approach to Agile Testing  – BDD can help better” by By Shraddha Gupta and Saket Deshpande.

Their entire presentation is available on ATA Slideshare (https://www.slideshare.net/ATASlides/whole-team-approach-to-agile-testing-bdd-can-help-better-pune-15th-meetup)

 

Saket and Shraddha talked about Context and how BDD plays an important role in getting the context related issues resolved. In one of their slides they talked about perception v/s perspective. Please see the picture below

(reference https://qph.ec.quoracdn.net/main-qimg-73f348d1d5ee87af6955de6c53a444cf.webp)

This is where the context comes into play. How elephant parts can be perceived to be different from different folks depending on the context they are looking from. Similarly agile development team, Ops team, Testing and QA Team and the Product Owner (Business) might have their own perspective as per the context they are speaking from. Exactly like DAWN and DON confusion that happened on 15th morning among us.

If the context and perspectives are not matching it may result into key issues. Saket and Shraddha talked about the whole team approach which is really important to get this confusion out. But the confusion will not come out unless there is a formal way to get things discussed. BDD (Behavior driven development) is one such technique which come in very handy to resolve this.

There are some great benefits of BDD, other than the contextual problems that it automatically resolves. An excellent post – 10 reasons by BDD changes everything has this elucidated very nicely by Lary  Apke. Here are the 10 reasons from the post.

  1. Communication between business and development is extremely focused as a result of common language.
  2. Business needs to tie directly to the code that is written.
  3. Developers know what test cases they should write to accommodate TDD.
  4. All the underlying benefits of TDD become more easily realized.
  5. Code is easier to maintain.
  6. Code is self documenting.
  7. Stories are easier to “groom” – breakdown, task and plan.
  8. Teams can be more agile.
  9. Developers can be trained / on-boarded easier.
  10. There is more visibility into team progress and status.

The top most in this list again is communication between the business and Dev team. The Dev team should now include a wider perspective and have QA and Operations too part of it. Let them all use the full power of BDD from day 1 to get things going confusion free.

In another interesting post from Rachel Davis (http://agilecoach.typepad.com/agile-coaching/2012/03/bdd-in-a-nutshell.html), the definition of BDD is explained as shared understanding. Quote from the same blog and picture below. “The B in BDD stands for Behaviour, the desired behaviour of the software to be developed. The DD part stands for Driven-Development. BDD is an approach for building a shared understanding on what software to build by working through examples. “

These differences in understanding, the contexts and confusions are some of the important reasons projects gets delayed, defects are not found until late and the overall costs gets escalated. BDD is resolving this problem and is getting popular in most of the agile and DevOps setup. Choice of tools are Cucumber with Selenium or Appium.

Here is picture from our meetup – thanks again to FiServ, Mayuresh, Rajiv, Amit and the whole ATA Community which makes learnings a fun during these meetups.

We are also running hands on BDD/Cucumber/Selenium/TDD/ATDD programs – part of CP-AAT certification programs. If you want to learn practical BDD along with implementation using Cucumber, Selenium or Appium do let us know.

Should #TestersBhiCoders ? Which programming language they should begin with?

With the ongoing shift in the trends and the needs of IT industry, lot more is being expected from the testers. Tester is obviously expected to have the prime skills of finding defects (which is and should remain a passion always), but apart from that most of the recent job requirements have started to expect a lateral testing recruit to know two or more from the below list and the list keeps on growing.

  1. Automation tools like Selenium, Appium etc
  2. Programming in Java or Python, Ruby or CodedUI , Junit,
  3. RDBMS, SQL skills
  4. Cloud – AWS / Azure
  5. Performance testing tools – Jmeter or like

Please find below sample latest JD’s from one of the leading job portals in India

🙂 One thing is sure, 2017 or beyond – today’s tester need to be a Super man/woman nothing less than that.

Another thing which is also in vogue is that many organizations are spending lot of money in getting their testing teams up-skilled on automation side.

Going by the current trends it is quite evident that even though we testers cannot be super humans and know everything on this earth, but knowing some automation tool is a must. It will not only come in handy but also help get us into a lucrative job or better still, help keep our job.

Our first take is that Testers should definitely move into coding sooner or later. #TesterBhiCoder is a trend that is more of a necessity in today’s changing world than anything else.

Recent post on Linkedin about the most popular tools hint a massive shift from legacy tools like QTP/UFT to new age open source tools like Selenium and Cucumber. Reference http://qarevolution.com/popular-testing-tools-2017/

And recent updates on the most in demand programming languages is as below. Reference : http://spectrum.ieee.org/computing/software/the-2017-top-programming-languages

Although Python is having the No. 1 slot, the top four—Python, CJava, and C++—all remain very close in popularity.

Let us correlate  the popular languages and the most popular automation tools

With 30% preference towards Selenium, 7% for Appium and 5% for Cucumber and 8% on Jenkins – that makes it close to 50% of tool set which are actually working together in some form or other in today’s agile and DevOps environment. All of these work well with Java.

I would like to thus recommend Java as the starting point for the testers and then pick up their choice of most popular testing tool

Agile Testing Alliance is also trying to get more and more testers learn Java under their #testerbhicoder initiative (https://www.townscript.com/e/java-boot-camp-for-testers)

Please check the following out  – Free Java Boot camp for testers from ATA. Instructor led online training program..

https://www.townscript.com/e/java-boot-camp-for-testers

 

Queries from Agile Testing perspective?

Agile has been a buzz word for some time now. Everyone feels they know agile and they are already doing agile. Still, some times while working in our agile testing world we get into a situation where we get a breather to have a peaceful morning coffee or an afternoon break. While having that cup of coffee or just relaxing on our own..  the thoughts sometime linger on back to work and we tend to have too many questions than answers..  Worrying indeed

 

  1. My client is asking me to increase the testing speed and also reduce the testing resources at the same time – has he gone nuts ?
  2. If I think differently, I start getting a feel that may be my client is right. Me and my testing team can do things much better, specially with so much time pressure and cost pressures. Is there a way out ?
  3. I always feel that there is an urgent need for the team to learn and innovate new things in testing? Should I give them more time to learn and participate in the community events and some training programs even though the time lines don’t allow me such liberty
  4. We have improved much from last year, our testing now is not one sprint behind: what can be done next.. In sprint Automation ?
  5. How can we scale up to the next level of testing ?
  6. Given the increased workload, Is there really a way to maintain the velocity and still increase testing coverage and overall quality ?
  7. Is DevOps the way for me and my team?
  8. Should I make my entire testing team learn coding ?
  9. …..

I am trying to bring some of the queries out here and want your help in commenting with your queries. Please bring out your worries and queries.

Let us see what is bothering todays teams (Testing and Agile Testing teams).

 

Dinosaurs! Extinction or Survival for today’s testers and QA Professionals – Is there a choice?

(image credits - A supplied image of Aboriginal elder and Goolarabooloo Law Boss Richard Hunter alongside a 1.75m sauropod dinosaur track in the Lower Cretaceous Broome Sandstone of Dampier Peninsula in Western Australia on 26 March 2017. Photo: Reuters http://www.livemint.com/Science/Ex9B1MRatHF6H6piNe61oL/Scientists-uncover-dinosaur-footprint-that-may-be-worlds-la.html))

Whenever I read any article about Dinosaur I always get intrigued about Dinosaur’s extinction. While reading through the article about uncovering of largest foot print of Dinosaurs in todays LiveMint article similar thoughts came to my mind, is there something Dinosaur’s could have done to save themselves? Was it their fault or was it destiny? I believe that it was nothing much that Dinosaurs could have done. It was sudden, too swift a change for them to adapt or evolve.

But in our professionals life can organizations and individuals go extinct (become less or no more relevant in the market) ? Do organizations and individuals get time to adapt or the change is too swift for them to handle?

In a recent, very large global conference, #ATAGTR2017 one of the most interesting keynote was given by Mr. Tarun Sharma.

Tarun brought about the classic examples of Nokia v/s Blackberry v/s Android smart phone story in his keynote. Question here is could Blackberry or Nokia would have done things differently for them to not become Dinosaurs of the mobile space. Here I feel that even though the warnings were clear and straight they were not able to manage it properly. There could be potential so many other examples where large organizations are not able to evolve and they get extinct not because the change is swift but due to their large size and their inability to adapt.

This is more than true in today’s changing IT landscape. With DevOps, Agile and new age technologies like BigData, Analytics, Machine Learning, Deep Learning, IoT, RPA all around us can large IT Service organizations who are not able to adapt fast be the new Dinosaurs.

Is this true for individuals as well?

Someone who was expert in Cobol language in y2K era, if they did not pick up new skills wouldn’t they would have gone out of market soon after y2k was over?

The biggest worry according to me is the QA and testing professionals, more than 90% are not comfortable with coding or they get scared by seeing few lines of code.

Going back to Global Testing Retreat #ATAGTR2017, this fact was highlighted during the panel discussions. Brijesh Prabhakar who is head of L&T Infotech Testing services, highlighted his initiative where the entire population of manual QA and testing professionals are being groomed and coached in Java and Selenium. 

Kudos to this initiative and Kudos to the entire testing population to get over the fear and take the challenge of learning automation skills.

Agile Testing Alliance also ran #TesterBhiCoder initiative where every tester was given free selenium training and exams for CP-SAT were conducted for more than 300 professionals during November, December 2016

I would request all the IT Professionals specially QA and Testing professionals to start looking at avenues for their own upskilling and not wait for their organizations to nominate them for trainings and workshops. The warning signs are loud and clear. Look for your own benefits. The changes are happening. We have time to adapt. We have time to learn and go one up, lest we go extinct.

For every tester, test lead or test managers acquiring more technical skills is really a must.

Look for Java boot camps, look for selenium training programs. Also do not miss a chance to showcase your new skills by acquiring new age certifications like CP-SAT and CP-SAT advanced or CP-MAT and CP-AAT and definitely not miss a chance to be a part of conferences like #ATAGTR2017.

Also look out for DevOps++ Alliance. If you want to be part of these great initiatives individually or at corporate level do let us know.

This post was first published on my linkedin post.