Test Expo 2019

Bartek presenting at Test Expo 2019

Bartek presenting at Test Expo 2019

Today I presented “The Unified Model Of Regression (TUMOR)” at Test Expo 2019.

I would like to thank the people arranging this incredible conference and the people who complimented my presentation.

If anyone is interested, then I will gladly present it in your organization.

Python is not just a programming language.

Python script

Python is also a neat automation tool, like a calculator, that can help you with many tiny tasks. 

I use it every day in test automation, like 

* getting the sum of all characters in a text, 

* scrapping webpages, 

* decipher system encoded texts into human readable text,

* splitting data or combining data,

* draw a graph of a dataset (more options than excel, even though they not always look as good).

* automating ftp access (to download or upload files)

* reading or editing Excel sheets with openpyxl

* and much much more.

Fun code example

list_texts = ["knowledge", "hardwork", "attitude", "bullshit", "asskissing"]

for text in list_texts:
    text_sum = 0
    for char in text: text_sum += ord(char.lower())-96
    print(text, ":", text_sum, "%")

What tiny tasks do you use Python for?

The following article gives great examples:

Simple test automation

commercial with spelling error
commercial with spelling error

Do you find test automation complicated, unreliable, and costly?

It don’t have to be; for example a spell checker is also an automated testing tool, which is intuitive, reliable, and free. The right test automation will make your life easier 😉

What simple test automation tools (like the spell checker) do you use in your daily life?

#testautomation #testautomationtools #rpa #spelling #testingtools #funny #roboticprocessautomation

Deal with change in software development (TDD)

Using a metal bucket as a measuring unit

I often hear developers complain that the specifications, demands, and technology change to quickly. So how can developers deal with it?

Change is after all the key aspect that complicates the design and development process. Often it is not even a question of delivering quality, but pure survival of the delivery.
One day I got the following question:

  • How can you trust anything, if everything is constantly changing?

I thought about it and expanded the question:

  • How can science and truth be possible in a world of chaos?

Speed is the key

I came to the conclusion that everything is changing, but things changes at different speed.
For example a metal bucket changes slower than my body and therefore can be used as a measuring unit to measure how my body grows:

Using a metal bucket as a measuring unit

A shadow on the other hand changes quicker than my body and will be difficult to use as a measuring unit:

Using a shadow as a measuring unit

How to deal with change

A unit test changes slower than the code and I can use it to measure how the code changes.

This is why I apply Test Driven Development as a design methodology: First I design a single unit test, then implement the necessary code to make the unit test pass. Then I design another unit test with the necessary code implementation, then another, and another, etc.

As a developer, I am able to implement great ideas as solutions. But as a developer, I also forget about the great ideas after I have implemented the code.

I Therefore write the unit-tests to document my great ideas, before I implement and forget them. If I don’t, then it is only a question of time, before the complexity becomes large enough, so when something breaks; nobody will know how to fix it. We would end up like the elves in the Lord of the Rings:

“The world is changed.
I feel it in the water.
I feel it in the earth.
I smell it in the air.
Much that once was is lost;
for none now live who remember it.”
– Galadriel, Lord of the Rings.

Read my blogpost on:

  • SogetiLabs: http://labs.sogeti.com/deal-with-change-in-software-development-tdd/
  • Bartek.dk: http://bartek.dk/wordpress/deal-with-change-in-software-development-tdd/