BDD in resume

Behavior Driven Development is a term very used in actual days…

Developers, testers, managers talking about BDD. Frequently we heard complains about BDD like:


– The client don’t mind about the tests.

Make all sense that because the client wants that his software is finished and working. Unfortunately, the word test brings a negative image. But we talking about BDD, which is a development by behaviour and it isn’t anything with tests. Testing is something that you don’t can do while there isn’t software. Testing means to verify and BDD we are specifying before of anything.

BDD is an activity of design, where you build parts of a function according with the expected behaviour. In BDD we go out of the vision of tests and enter in the perspective oriented by specifications, what means that this complain born with a bad colocation.


– The client don’t want write the scenarios.

This is the second more used complain. The cliente should write the scenarios by himself. If the client write the scenarios, he won’t benefit himself of cognitive diversity. This diversity only appears in groups heterogeneous that work together.

The client needs the advices of engineers who knows the technical aspects of the problem that he is trying to resolve. He needs of paradigm of an QA Analyst, which will help with the create of scenarios that anyone though before. Otherwise, the solution that the client though can be more complex than the solution needs be.


– The client needs interact directly with the tool.

This isn’t the idea. What he really need to do is to provide informations to the team about the problem that he wants resolve.

– You can achieve the same result without a specific language of domain(DSL)

To finalize, the highlight idea behind the BDD is the focus in prevent fails of communication. This means have all in team  communicating in a frequently form, better and based in real examples – not only in abstraction and imperatives requirements.

Tools of BDD are only complements to this complete agile methodology.

You can read some books like:

– Specification by example – Gojko Adzic;

– TheRSpec Book – David Chelimsky;

– Gojko on BDD: Busting the Myths;


Bye , bye !

Steps to implement a Automation process

Hello guys, i saw a link in the internet with 7 steps about how implement automation tests and I will explain in other words what he told:

  1. Leadership support. Ask support of your boss to automatize the tests, show to him what you will win: time, money, effort. Search about cases in companies that was a success, show the positive points… You have to convince your boss that you will have a lot of gains.
  2. Choose the tool. Search about the tools on the market. You can make a POC with the tool and analyse if will supplement your needs. Make a prove of concept with a little part of your functionality. Costs/benefits ? You have to analyse according to the product will be tested. You can choose some free tools like WebDriver/Selenium or a shareware tool like QTP from HP. 
  3. Language. Talk with your team if they can learn another language and what are the languages that they know. Look in the development team what is the language that they use, take this into consideration too (if you need something about the language, they can help you). Choose a language that the team have more facility to use/learn, the language that the development team use, the effort of change the language.
  4. Time and Schedule. Now that you convinced your boss to automatize the tests and you know the tools that you will use, you have to plan the schedule. NEVER EVER AUTOMATE EVERYTHING !! This is a common error and impossible to do ! Remember the main objective of automated tests is REGRESSION. You have to put criteria what you will automate, like: What is the most used function/process ? …. What is the function/process most important ? … What is the function/process that have more bugs ? Measure the initial investment and don’t forget to show the objective, the results you will achieve. How much time/effort/money you will save ? How you can spend the time saved with another activities ?
  5. Workout. “A stupid with a tool still is a stupid person.” Form a team of automation and equality the level of knowledge. Make some meetings to prepare people in your team to use the tool with wisdom. It is better everyone know everything in your team, but we know that we can have some people who have facility to learn something in specific. 
  6. Include the Automation in your development. You have to know what to do and when do it. Involve SQA, or the team who have the responsibility of the process in the company. They have to learn this new process that will be deployed. 
  7. Structure of Scripts. Make Defaults. This will help you when one person of your team have to change something in the script of other person. Like Parameters, the structure of your automated tests, the name of variable, the comments, the name of classes… It is better that you separate the scripts according to the experience and facility of each person in your team. So, if someone likes and has facility to do the script with the structure, you have to let he/she do this. If you know that a specific person in your team has facility to write scripts about the business, you have to let he/she do this and become the main center of the scripts of business. Focus on reutilize. Yes, enjoy the scripts and have less work. Continuous Integration ! Without this your work will be lagged. You have to update the scripts and use they after each modification to know if they continue working. We have a tool called Jenkins that it help us with this part. The developers can change something and after the deploy, Jenkins will run the scripts of regression tests to know if something in application was broken.


Did you understand everything ? I wrote running today !

If someone has some question, go ahead and comment below 🙂




Help to energy industry won’t be cheaper

In my last class of conversation of my course, there was a Japanese guy who told me that he would like to visit Brazil. I just told to him that he have another places better to visit. He didn’t understand and asked me the reason that I don’t like my country. So, I will tell about one reason and avail the news that I saw in a site.

Lately in Brazil, we are having a problem with dry weather. Everyday the temperature here is very high and it isn’t raining the sufficient to supports the number of air conditioners turned on and the other spends with energy.

Even more, we have elections this year and the Brazil Cup. Yeah, the politicians don’t want stay with a bad image…. Really… This year will occurs many things with interest politic.

OK, with theses informations I think we can continue.

Brazil decreased the value of the energy in 2012 and now it have to increase again to support this lack in industries or it can increase the value of petrol on Petrobras. BUT… if it do this, the people won’t like of ways that government is trying control the situation because will occur a inflation with the prices…  So, for this reason the politics won’t increase any prices and Who will pay the debts with the energy ?

The people’s money ! Yes, the public safes… We will pay the selfish particular interests of politicians… like always here in Brazil. But not everyone here in Brazil will be injured. The most people will be injured is the people who works and don’t need of “Bolsa Família”, a Brazilian program whose pays a salary to the poor people with a lot of kids…
After the elections, the politicians will have to inflate the prices or not… I really don’t know but anyway the people will pay in the end. Future of Brazil is this… will deteriorate more and more… because of ignorant people, a lot of corrupt politicians. In fact, I think the people will finish with everything in this world. Yes, a pessimist (or realist) thought.

But here in Brazil the people don’t know anything and they want keeps in their ignorance.. They like the ignorance.. it is a bless !

Or.. they think that they know something… I think this is the worst type of person !

Median Class supports Brazil in its shoulders (:

Haha, just my opinion… I am not cursing anyone xD


Selenium First Steps

Hello guys !!

I have a friend that asked to me somethings to start in Selenium’s world. For this reason I will write today about first steps to automate in Selenium.

In this example, we will open in the Chrome browser. Install the Chrome in your Operational System and after that, you have to download the driver too.

The link to download the driver is:

Now, you have to download the WebDriver’s lib. You can download in this link:

Import the lib in your Java project. This is how the structure will looks like. Pay attention on the folder of Libraries in this picture below.


This is the package and the libs imported to use in our automation:


This is the code to use the chrome’s driver. You have to put this, because the Chrome won’t open without the driver and this line. If you are using Windows, you have to download the .exe file. Each OS that you use, you have a specific file to download. After write this line, you will instantiate the ChromeDriver and write the command below, to open a site in Chrome.


You can find an element of different ways. You can use the id, the classname, tagname, etc… Xpath is the last option that you have to use, because there is a lot of problems when you have to use it in mutiple browsers. So, you can look all the possibilities in the picture below:




This is the correct way to wait some element to load on your page. You have to put this after load a new page, or click on a new function. It is better put this expected conditions to wait a element than put a time to wait, because unfortunately we depend a lot of environment and browser.


You can use these commands to click and write something in specific field, respectively. You can instantiate the element and you will use only one time to search it. After that, you can use the instance to click, send words and others actions in the element without looking it again.


This is the command to close the browse, to close the driver, respectively, and finish your automation. After this, you can’t use the driver anymore, unless you instantiate again another WebDriver.


This is the final code ! Maybe your code will looks like with mine. Afterward, just put to run and see the automation !


Bye guys !!