We had the first longer workshop organised by TdT Cluj, and it was really fun and useful! 27 people (3 instructors, 1 person responsible that we had all we needed, 1 PR and 22 students) spent more than 6 hours to learn how to write tests with Selenium Webdriver and Python for a Mozilla website, and I personally would have continued if the time we had reserved the room for hadn’t been limited.

People started to arrive around 11:30 and we had some tea and coffee until 12:00 when Alex Lakatos started with a short presentation of the mozillawebqa team. Then, Bebe (aka Florin Strugariu) took control of the event :-).

The workshop had three phases:

The setup of the test environment. Something that should have been like a walk in the park, as we already had installed some of the tools, turned out to be a real software project :). We had lots of configurations – Win 7 and Win 8 (one even on a tablet – you should see the picture with the Windows tablet and the Apple keyboard and mouse! As Ioana said, could it have got more hipsterish than that? :-D), MacBooks and Linux machines, different IDEs (Aptana of pyCharm) and even someone with a custom version of Firefox – which revealed many problems. After more than one hour and a half everybody had the setup running:

python virtual environment created and working – I personally struggled with this as I had too many versions of python installed on my laptop, the default being 3.1, and the virtual environment didn’t like that too much

python dependences installed in the virtual environment – that turned out to be quite challenging too as the internet connection wasn’t ready for so many people downloading all at once

IDEs configured

we were able to run the two existing tests from the repository.

During this period Bebe, Alex and Alin – our instructors 😀 – moved from one person to the other to solve everybody’s problems. I think they handled this really well, especially as there were so many of us, and only three of them.

The next step for Bebe was to show us how they write tests at Mozilla. He was writing the tests and sharing his screen on the projector, and the rest of us followed along. Together with Alin (and Alex) they answered questions, helped people debug if something didn’t work or presented us some of the practices used by their team. We implemented two tests:

one for going to the Events page of the website, and looking for an element on the page

one for searching an event (entering “test” in the search field) and verifying the number of results returned (in our case we had 1 result).

Eniko had a really nice comment on the meetup page, that it was great to see us working as teams: people were talking and helping each other, debugging failures and trying to understand why something wasn’t working. It was so nice, that we didn’t even feel when time flew. If it wasn’t for the pizza and a small incident in one of the other rooms, most probably we wouldn’t have stopped until the end.

Once the new tests were running, we moved to the next phase of the workshop: writing tests for the tickets opened on github. Unfortunately it was already late, and we had less than an hour for that, so I guess only few were able to finish theirs.

My takeaways from this workshop are:

we start to be a real community! People feel comfortable asking for help, and offering help even if they meet for the first time

open source projects are a great opportunity for people to learn new things and do that in a way that others can benefit from their work

we should have a follow-up for this workshop; now that many of us have the setup running, and know the basics on how it works, we should spend more time on writing tests

Windows 8 tablets are real computers, if one can install the setup for test automation and run tests from one! 😀

One challenge I see in organising Tabara de Testare is finding testers that want to share / present their stories. This is something that we struggle with quite often in Cluj, and I know that the other chapters are in a similar situation.

We came up with the following solution for the meetup organised in Cluj: if for a particular month we’re not able to find testers that want to present, we’re having a Testing Clinic, where every participant can come with their own testing / managing / scripting / teaching problem and discuss it with the other attendees.

We had two meetups with this format, and I think they turned out pretty OK as everybody who shared a problem left with some ideas (I saw them writing things down :-D).

I’d like to share with you my impressions and the things I remember from the second Testing Clinic, the one we had this month.

To give you some ideas about how it happened, we were 28 testers, we arranged the chairs in a circle / oval so that we have eye contact with each other, and we waited for someone to break the ice and start with a problem.

(For the sake of confidentiality, I won’t use the real name of the testers or the company they work for.)

Problem #1: “I need to make a demo for a possible client, about automating testing for their mobile application (iOS), but I don’t have the code for the app. Does any of you know any tool that can be used for a case like this?”

This is when the discussion began:

somebody said that they could look at Sikuli – http://www.sikuli.org/

others asked why they need to have a real demo, as they don’t have the app, and not go with some mockups?

others asked why they don’t ask for the code; if they want to make a demo, wouldn’t it make more sense to have a real demo and use the tools they will most probably be using during the project?

Problem #2: “I work on a medical software project, we have no automated scripts but I would like to start implementing some. One of the problems I have is that the management is afraid of doing test automation as they don’t know how it will impact our FDA and ISO certifications. How could I present this to the management?”

I shared a story from a medical software project I worked on, where I developed a tool that helped us verify some of the requirements (FDA requires that every requirement of the application needs to be covered by a test). In my case, I had to write a requirements document for my tool, and one other colleague to write a test plan and test my tool. This was required by FDA for the type of medical software that we were building, so I suggested that she checks FDA requirements for their project to see if they need to validate the automation tool.

Problem #3: “I have two teams of testers, team1 works on a mature project, is very organised and everything works fine; team 2 works on a startup project, they don’t use documentation to test, but follow developers instructions and then they do ad-hoc testing and don’t keep track of what they test. Team 2 have trouble giving status reports about their work, and also don’t test some important features asked by the client. For the moment the client is happy with what we deliver, the project manager is also happy, but I’m afraid that in 6 months when the project will be more complex, everything will fall apart. How can I sell the approach used by team 1 to the project manager from project 2?”. We asked some clarifying questions, and understood that he was the test manager for both teams.

this was the most discussed problem of the evening; after several questions, we were able to break the problem in two:

the testers from team 2 were not motivated to do a good job, and they didn’t want to improve their testing (as long as the client is happy, why should we change anything?)

the PM for project 2 was overwriting all the decisions taken by the test manager. The development process, so also the testing process, had been defined by the PM, and she was not willing to change anything

several solutions have been suggested for the “PM problem”:

go and meet the PM, to have a better relationship with her

if you think the quality of the product will suffer in the long run, escalate the problem to the PM’s boss

present the reports in such a way that the PM will understand that the testing team is not doing a good job (they don’t cover all the requirements, which causes patch delivery; if this will continue, and the product will grow, it’ll be hard to keep track of things)

implement changes and don’t tell the PM; use the results to show her the benefits

let the team fail once, and then use the results to show the PM what can happen if the testers are left by themselves (they used 2 weeks sprints, they were in an early stage of the product so it’s better to fail now than in 6 months)

several solutions have been suggested for the “team problem”:

make a documentation reading session, something like a book club where they could go through the user stories

find someone within the team that has the same values as you, and that is willing to help you improve the team’s work

go and work with them side by side; spend more time with this team to win their trust

go out for beer / dinner with the team, to get closer to them

when evaluating the testers, give them negative feedback and decrease their salary; if this won’t wake them up, they might leave the company which in long run might be beneficial

one of the testers asked how could he be sure that the approach used by team 1 will work for team 2; after all, they are two different teams, working on two different projects, with different PMs and different clients… His answer was that experience shows that team 1’s approach worked well so far, even on other projects, so from his point of view it will also work on this project.

Problem #4: “I noticed that some of the tests and test data I use on different projects (for example: valid addresses for every EU country, tests for using a Mastercard Card). How can I handle all this test data to be able to search through it if I need it on future projects?”.

After asking some clarifying questions, we found out that she doesn’t always remember that she previously tested a similar feature / project or had to use this kind of data, and she would like to have an easy way to search through her documents. Plus the other team members could benefit from her work.

one solution was to have all the documents put in a source control system, add tags or descriptions for each file, and then interrogate the SCM to see if something similar can be located. One downside of this approach would be that, depending on how you organise your test data, some files might have lots of tags. Another one is that people need to install SCM clients to access the data.

another solution was to have a wiki and enter the details there. As she wanted to search for text, wikis are very good for doing that, and they are also much nicer to use than SCMs (you only need a browser, and you don’t need to be a developer to understand how they work). Plus you can attach any type of files if needed…

a tester shared a story where he was bombed with questions from his fellow testers, so he decided to build a wiki and put the things he knew there. Even if he did that, his colleagues still preferred to come directly to him for information, so they come up with an idea to give incentives to people to use the wiki more: they added a Google Analytics account for every page, and the authors will get a bonus at the end of the month based on the number of views their pages had. Another good aspect, from his point of view, was that this way they could see which computers, and thus testers, use the wiki, and which don’t. I found this approach a little too much for me, as people might abuse of such a system, but he said that it has been working OK for them so far.

Problem #5: “I work remotely with a team from Finland, formed of an experienced test lead and several developers. I am the only tester in the office that works on this project. The remote team is not very communicative, moreover they have a culture for not disturbing people with too many questions. Even if they reply to my emails, I sometimes feel the need to talk to somebody about my work, but I don’t have who to talk to as I don’t want to bother the remote team too much, and the local team is too busy. What can I do in this case?”.

communicate more with the test lead – they do talk, but the test lead works on another project too, so she’s quite busy…

attend team’s meetings – because the developers don’t feel comfortable talking in English, they don’t do that. The test lead attends the meetings and sends her the meeting notes. The developers reply to emails / chat, but when it comes to spoken English they don’t have too much practice.

go there and meet the team – the team works remotely most of the time, so when she visited their office, most of them weren’t there. For example, she thinks she communicates better with one of the guys because she has had the chance to meet him.

find and use focusing – defocusing techniques to not feel bored.

find someone in the office you could talk to; I said that I find it hard to believe that everybody is so busy that she has nobody to talk to.

We had 4 testers that presented 5 problems within the 2.5 hours of the meetup, lots of new testers joining the conversation and presenting their ideas. I would like to thank the ones that dared to share their problems. I also want to thank the testers that joined the conversation and offered solutions.

At the end of this article I’d like to stress that this kind of format will not ensure that you’ll implement the ideas presented by the other participants, and that it’s up to you what you do with all this information. But I think it can be a great way to build an interactive discussion, and get input from testers working in different contexts.

Alex

P.S. the evening ended with 8 of us going for a drink and food, and discussing about strange customs from marriage, funeral and baptising ceremonies until midnight, which was a lot of fun 😀