Monthly Archives

July 2017

Japanese

Learning Japanese: A journey of ups and downs

Two years ago I decided to pick up Japanese as my third language. My journey is full of rewarding moments, but there’s also frustrating ones (especially at the beginning). My first real contact with the language was not until I decided to sign up for group classes. I bought the books for the course which are the infamous Minna no Nihongo (Everybody’s Japanese). In my opinion, not a very beginner friendly book, especially if you don’t have any guidance.

One of the most frequent question that pop up for new students is  “Where do I start?”. Believe it or not, not getting a proper answer to this question can lead to many frustrating moments!

こんにちはエクトルです!

Hiragana and Katakana, are the foundation of the Japanese language. Learning well Hiragana and Katakana makes life much easier for people getting into the language. Back then, right at the start I wish someone told me that I should memorize them like there’s no tomorrow. At any rate, if you’re not familiar with the language, you might be wondering what the heck are those. Along with Kanji, Hiragana and Katakana are part of the Japanese writing system. By the way, the text above translates to: “Hello, I’m Hector!”.

Without turning this article in to a full fledged class, Hiragana are those “cute”, round characters you might’ve seen in a Japanese TV Show. Hiragana is basically used for writing native words. Some examples:

  • くま (Kuma) – Bear
  • りんご (Ringo) – Apple
  • えんぴつ (Enpitsu) – Pencil

Katakana characters are less round, and unlike Hiragana, is used for writing foreign words. Example:

  • タクシー (Takushii) – Taxi
  • ジーンズ (Jiinzu) – Jeans
  • メキシコ (Mekishiko) – Mexico

Learning Japanese, an unexpected journey

After two years studying the language, I decided to go back and review my old notes. One of my favorite moments is realizing how far you can get and how much you improve after putting some effort into something.

Although I’m not yet proficient in the language yet, little by little I had been able to construct more complex sentences. At least now I can, somehow, keep a basic conversation. To be honest I didn’t expect to get this far, although my journey is far from finished.

Wait! There’s more…

One of the things I observed during these two years is that many students quit before the first year. Many underestimate the effort required to get far into the language. The Japanese language is not for the faint hearted, it is quite a different language than Spanish or English.

If you decide to pick up the language, take Classes, check online resources, get in contact with others and most importantly, have fun!

Lack of Software Testing causes...

Why Software Testing matters?

Every time I hear someone saying that Software Testing is not important or necessary, a part of me dies. Through recent history, we got plenty of examples of what can happen if companies skip testers town. However, some companies don’t learn from other companies mistakes. No doubt, someone, somewhere in the world might say…

What could possibly go wrong?

Amazon Christmas Glitch

Back in 2014, what for customers was paradise, for Amazon’s third party sellers was absolute hell. A bug introduced by a piece of software called RepricerExpress  caused a bunch of products to have a price tag of a penny. For an entire hour, people could purchase clothes, electronics, games for prices not seen before. As a consequence, some retailers lost thousand of dollars, other simply went out of business.

Source: The Guardian

Hive’s Heating App turns homes into an oven

Hive owned by British Gas, somewhere in 2016, received a bunch of complaints as a result of soaring temperatures caused by a faulty “smart” heating application that can control temperature at homes. The iPhone app caused temperatures to reach more than 30C, causing concerns in customers for increasing energy costs and possibly cause a fire.

Source: DailyMail

“Those who cannot learn from history are doomed to repeat it.”
George Santayana

Why is Software Testing so important?

No doubt, we all make mistakes, we are not perfect. As demonstrated in previous examples, bugs can cause monetary loss, at best. Software Testing is not a mere whim of some sketchy engineer, but a practice that can mark the difference between a successful and unsuccessful application. In fact, an article published by TechCrunch in 2013 mentions that users have a low tolerance for buggy apps. Numbers show only 16% will try a failing app more than twice, the rest won’t even look back!

At any rate, we can agree, if you want to stay in business keep testers close by.

Old Testing Tutorials

Revising Old Tutorials with The Joy of Testing

Back in 2015 I decided to start doing tutorials for Automation Testing, more precisely with Selenium/Java combination. Although I managed to gather little audience, I did learn a lot. Teaching or transmitting information can be quite an enriching experience. Besides having a good laugh, looking back at my videos makes ponder how much I had improved in those two years.

Testing Tutorials with Rough edges

Although it isn’t one of prettiest works, here’s one my videos, judge for yourself. If you’re wondering how did I come up with the name, it is a reference to Bob Ross’ show “The Joy of Painting”, which I enjoyed watching as a kid.

Sharing knowledge

A lot of people out there may agree that sharing knowledge is a great practice that benefit us all. At a company level, not only help us fill knowledge gaps but also to increase efficiency and promote innovation. At a personal level it helps you grow, stay motivated and get a sense of purpose.

We are fortunate enough to live in a time where sharing knowledge is incredible easy. Thanks to today’s technology we can transmit information to virtually any place in Earth. You can read a book without having a physical copy in your hands or be able to read an article that was written by a guy from the other side of world.

So, my dear reader, I encourage you to share what you know, write a book, a blog, make a video!  Be your sharing knowledge platform Youtube, WordPress, don’t keep what you know to yourself!

Selenium Webdrive in Python Tutorial

Tutorial: Getting Started with Selenium in Python

The best things in life are free, and for Software Testers this is particular true thanks to Selenium. Being a portable testing framework for web applications, Selenium allows us to interact with web elements either without coding skills at all (Recording Tool) or with an easy to learn test domain-specific language (Webdriver). It is perfect for automating the boring stuff!

I’ll show how easy is to get started in Automation Testing using basically only Selenium and Python.

This tutorial assumes that the user is running a similar working environment with the following software:

  • Debian based Linux distribution, like Ubuntu
  • Python 2.7.x
  • Python Pip
  • Firefox 54

Don’t get discouraged if you have an operative system different than Linux. Python and other tools can be installed in other Operative Systems. One of the greatest advantages of these type of software is that they are multi-platform!

Creating an isolated Python environment with Virtualenv

Virtualenv is a tool that allows to create an environment that has it’s own isolated installation of Python and libraries. This is useful if we want to avoid having compatibility issues between projects that require different version of a particular library or simply because we don’t want to mess our global installation.

To install Virtualenv, open a new terminal and type the following command:

pip install virtualenv

Then we create a new folder for your Virtual Environment:

virtualenv selenium

To start using your new virtual environment enter (within your project folder):

source bin/activate

To exit from the your virtual environment, simply type:

deactivate

Installing Selenium with pip

Once our Virtual Environment is up and running, we can proceed to install Selenium via pip:

pip install selenium

Grabbing Geckodriver

In order to run our tests in Firefox, first we must install the Geckodriver. To check the latest version available visit:

https://github.com/mozilla/geckodriver/releases

Download the version corresponding to your Operative System and Architecture using wget, example:

wget https://github.com/mozilla/geckodriver/releases/download/v0.17.0/geckodriver-v0.17.0-linux64.tar.gz

Then we uncompress the file:

tar -xvzf geckodriver*

Also we make the file executable:

chmod +x geckodriver

Finally we move the Geckodriver to /usr/local/bin/ so it is accesible for Selenium to use:

sudo mv geckodriver /usr/local/bin/

Running a quick test

Now we are ready to test our environment, let’s write a small script that opens a new browser and navigates to Google:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://google.com')

Feel free to use your favorite code editor, since is a simple script you can even use nano. Once you’re done writing your script, save your changes and go back to Terminal and run your script:

python demo.py

If all went well a new firefox window should open and the browser should display google’s homepage. Congratulations! You wrote your first Selenium Script! Stay tune for more tutorials.