Wrong usage of metrics could be devastating

Reading Time: 1 minute
credit: www.canddi.com

TL;DR

In this blog post I will compare wrong usage of metric in economy and software testing.

Croatian economy is on the wrong path. One of the main reasons is very low level of economy reforms. We are still in chains of economy from socialism era. Croatian forces that are against change enjoy using wrong metrics in their favor. One of my favorite is:

“It was much better economy situation during the socialism. For example, city of Sisak alone had 30000 jobs.”

Using that metric, they want to stress out that unemployment rate in Sisak was very low and that was good for economy.

Software tester does not need to be economy guru, but he/she has at disposal HICCUPPS consistency heuristics. Let’s take comparable product (Cuba) consistency heuristics. In 2014 Cuba unemployment rate was 3.3%. Something fishy?

The problem was with efficiency of those 30000 jobs in Sisak.  There were jobs without any purpose, many of workers did not provide any additional value. Let me clear that that was the system problem, not the workers.

In software testing we have comparable wrong metric situation: number of test cases created and executed. If you need to explain your product owner why counting test cases is this wrong metric, you can use this blog post as a claim to prove that this is wrong and dangerous metric.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Report on Testival.eu

Reading Time: 2 minutes

TL;DR

In this post I will give brief report how we successfully connected 35 software testers. Testival.eu is an software tester event that was held last weekend in Microsoft Inovation Center Split.

Format

We mixed unconference model with two speaker sessions.

Venue

We had at our disposal three rooms: one with 40 seats, smaller one with 15 seats, and hall that also contained chairs.

big room

hallway
small room

Participants.

Conference was free. Problem with free conference is that some people will register, but will not show up at the event. Our heuristics is 50% drop offs, and that was the case with Testival.eu 2015. From 70 registrations,  we had 35 participants with 34% of female testers! In the week of event, we asked registered participant to confirm their arrival.

Friday

We started with introductions. After that, Zeljko, Davor and I explained unconference format using post-it cards, in manner that we first time saw at CITCON conference. Great way to keep people interested in the conference. Here is table with proposed sessions:

Alert! In unconference manner, participant are encouraged that they arrange sessions and merge them. We forgot to put deadline on that action! For example, I found out too late that my proposed session was moved earlier and I miss it. Also, Maaret said that before merging topics, it is very important to consult the card authors before you can do that.

Saturday

We had open and closing sessions. Open session was “Collaborative Exploratory and Unit Testing” by Maaret Pyhäjärvi. That session created my a-ha moment. Maaret is putting a lot of effort in collaborative testing. Which I think is a great idea. She also had a session about mob testing.

In between opening and closing keynote, we had unconference sessions. Microsoft Information Center was witness of lively discussions about software testing. We had lunch at konoba (dalmatian restaurant) with traditional local dishes.

lunch time

Closing session was “How do natural scientists test their ideas?” by dr. Dario Hrupec. Dario explained how scientists test ideas. After his discussion with Maaret, he got his A-ha moment, what scientists and testers have in common: they both need to explore in order to be able to discover potential problem and propose its solution. For that activity, intelligence is not enough, curiosity and creativity are also very important.

closing session

In the end, every participant shared its a-ha moment. We also draw lucky winners of three tickets for WebCamp 2015 conference.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Simple upgrade? Yeah, right!

Reading Time: 1 minute
credit: kt421.wordpress.com

TL;DR
In this blog post I will explain how I was bitten by simple library update. This example could be used to learn how to create your testing strategy in such cases.

I think that Ruby on Rails is very valuable web framework. You can be ready to create you first Rails application after you learn it by reading and doing examples in excellent free book: Ruby on Rails Tutorial by Michael Hartl. You will learn all development tools ecosystem that is needed in modern software development team. Ruby on Rails is one of Ruby libraries, or in Ruby world this is called gem.

In order to apply what I had learn in Hartl book, I created my company site in Ruby on Rails. It is basically static site, not many features, but despite that, it requires more than 200 Ruby gems in order to work.

When there is Rails security issue, I always update Rails. My test strategy is very simple. Check static page’s links and send inquiry using contact form. Contact form has the business value for my company, because if does not work, I will lose potential customers. And after one Rails upgrade, it stopped working with following error.

It was not in my code, issue was because of turbolinks gem version. Rails upgrade broke the compatibility with dependent gem. So I had to upgrade all my gems with

bundle update

Point of this post is that software dependency libraries upgrade must also have appropriate testing strategy. There is no such thing as simple upgrade.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Selenium webdriver unable to connect issue

Reading Time: 2 minutes
credit: seleniumhq.org

TL;DR

In this post I will explain the cause of selenium webdriver unable to connect issue and how to resolve this issue.

In order to understand this issue, you first have to understand selenium webdriver (also known as Selenium 2) architecture. Selenium webdriver is a http server that uses not standard 80 port. I will provide example in Ruby and watir-webdriver library. Watir webdriver library uses selenium-webdriver in order to create more intuitive api for browser manipulation.

Run this code in Ruby irb. You will first need to install watir-webdriver gem:

gem install ‘watir-webdriver’

Now in your unix terminal, run:

netstat -a | grep localhost

and you will see something like this:

cp4       0      0  localhost.7055         *.*                    LISTEN     

selenium-webdriver server is ready on your local machine on port 7055. So if you have anything that already runs on that port, selenium-webdriver will fail to start.

Your selenium-webdriver tests, written in any language in which library is provided, are client to selenium-webdriver tests. So, there is possibility that in your console you see something like this:

unable to connect to phantomjs @ http://127.0.0.1:7055 after 20 seconds.

If you see that error, you need to check if you run on your local machine any firewall software. If you are working in corporate environment, you are probably not aware that you are running firewall. Firewall default settings is to not allow any connections on localhost, because this is the usual way how malicious software operates. But in the case of selenium-webdriver, we have a false positive, selenium-webdriver is not malicious software.

DO NOT TURN OFF YOUR FIREWALL! Often, this is not possible. You need to add firewall exception for port 7055. Here is how to do that for Symantec endpoint protection:

In windows tray, right click on Endpoint protection icon and choose Open Symantec Endpoint Protection.
Choose yes.
Select Change settings.
Select Exceptions configure settings.
Add Security Risk Exceptions, Web Domain
Enter 127.0.0.1 and click ok.
Close exceptions window.
Close settings window.

Run your selenium-webdriver script in order to check that issue is gone.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather