30. tammikuuta 2018

The Futurology of Software Testing, part 1/2

“Futures studies (also called futurology) is the study of postulating possible, probable, and preferable futures and the worldviews and myths that underlie them. There is a debate as to whether this discipline is an art or science.”⑴

Whether art or science, futurology is subject – as every human activity is – to the ways of human feeling and thinking, and reasoning, which are studied by the science of psychology. Psychology tells you mercilessly, and with vivid examples, why and how human predictions fail.

Dietrich Dörner in his great book ⑵ describes comprehensively the mechanisms, which make people err often and spectacularly while planning and making decisions. Remembering that predicting the outcome, timing and resources of a software project is doubtlessly beyond your grasp, so how can you expect predictions on a much higher level of  complexity, such as seeing software testing in 20 years’ time, to be even remotely accurate?

However inaccurate my conclusions will be ⑶, due to unexpected events occurring before the future has become the present ⑷, the very process of attempting to imagine the unknown is a very perceptive and useful tool to achieve helicopter view of the present, its ills and its glories: bypassing irrelevant details, fashionable fads and short-lived, superficial technologies and silver-bullets.

So, let the show begin! I have chosen four crystal balls, each looking into a different possible future.

1. Automatic process design

An unpopular, sarcastic, truth-telling person like myself, in order to survive in this world, must perform various unglamorous tasks to earn money. So it happens to me that I teach an unaccredited ISTQB course ⑸ from Monday to Wednesday, and a BPM or BPMN course on Thursday and Friday. Then an abyss of realisation opens in front of me – why, for God’s sake, neither ISTQB nor PRINCE 2, nor PMI, nor ITIL, uses BPMN diagrams to describe their “fundamental(istic) processes”, but relies on logorrhea instead? BPMN has been available for more than 14 years now, and is an obvious tool for serious process descriptions.

I had the privilege once to help introduce a BPMS for an apple wholesaler. Yes, quality control was very much an important part of the wholesaler’s processes, but we did not use any AQCPI ⑹ to analyse it and suggest possible improvements; instead, the apple quality control process (you may call it apple testing, if you prefer) was treated, correctly, as a part of the whole, integrated “apple delivery value stream process”, where customer satisfaction was in focus.

Needless to say, this intelligent apple wholesaler ⑺ knew that no process is prefect, not even good enough forever. Knowing that new technologies will appear, and that great men's favours are uncertain ⑻, he (or she) wanted to be able to change and adopt his (or her) business processes without much ado and without much expenditure – therefore he or she wanted a BPMS ⑼.

What struck me there and then, was the discrepancy between the intelligent sophistication of the apple industry compared to the heavy-handed, prescriptive approach still prevalent in software industry.

One of my visions of software testing future is therefore that, in 20 years’ time, it will become equally sophisticated as apple industry, implementing flexible processes based on BPMS and providing continuous process improvement and continuous business analysis.

TEST PROCESS - possible future 1

2. Paramount test hacking

I try to be quiet and collected – after all, life is too wonderful a gift to waste it going angry and irritated. In spite of some reasonable success in this area – my wife calls me sometimes a “Dalai Lama wannabe”, I still have much difficulty controlling anger when I encounter complacent ignorance. A few days ago, I saw somewhere on LinkedIn the following question: “Please tell me which test tool is better, Selenium or Cucumber?”⑽. Such blatant mixing up triangles and pears, combined with such compulsive-obsessive fixation on tools instead of on issues, goals and processes, made me so angry I mowed the lawn both in the garden and outside, to pacify my murderous emotions.

Testing has developed and grown very, very much indeed during the last 20 years, but alas the development has gone in the direction of what I called test hacking rather than in the direction of quality thinking on all levels. Testing as profession has become the domain of nimble-fingered test execution tools’ programmers, with really great ability to automate anything. However, testing as a general approach, with the ability to ask such vital questions as: “have we really taken all important stakeholders into account?”, or “is the development of such a Web platform really according to what Porter’s Five Forces Model analysis tells us we should do?”, or “shall we be able to achieve this SLA, and at what cost?”, has not developed at all. On business analysis level, and on requirements engineering level, testing is still in its infancy, with naïve, stone age gut-feeling approach dominant.

Sometimes, during my hour of the wolf, embedded in bed and in dark thoughts, a see the future of software testing as a relentless path of phytomisation, and selenisation, and uTestisation of testing, and I feel like some Cassandra indeed.
  1. https://en.wikipedia.org/wiki/Futures_studies
  2. Dietrich Dörner “The Logic of Failure: Recognizing And Avoiding Error In Complex Situations”; unless you want to buy this book, some good summaries are available in http://www.maxmednik.com/home/notes-on-the-logic-of-failure-by-dietrich-dorner or in http://csse.usc.edu/csse/event/2012/ARR/presentations/pres7.pptx
  3. Please remember to verify their correctness in August 2036!
  4. Do you remember Minitel, WAP, OS/2, Modula?
  5. It must be unaccredited, because sarcastic and truth-telling training slides do not get accredited!
  6. AQCPI – Apple Quality Control Process Improvement  no, just kidding, folks!
  7. From the Grójec fruit-growing area - the EU’s biggest apple producer
  8. Meaning that the preconditions for customer satisfaction will change 
  9. See https://en.wikipedia.org/wiki/Business_process_management#BPM_suites
  10. Just not to stress you: Selenium is a test execution tool, while Cucumber is a framework tool for archiving requirements and their respective acceptance test cases, and connecting them to executable tests.

Author Bogdan Bereza is an international multitalent. He speaks six languages and is a true expert of e.g. Requirements Engineering and Testing.

You can find his IREB CPRE certification courses here: IREB CPRE Courses >>

You find also large selection of testing training courses at Tieturi 

15. tammikuuta 2018

Kuinka estää 143 miljoonaan käyttäjään kohdistuva tietomurto?

Vuoden 2017 yksi merkittävimmistä tietoturvauutisista oli Equifaxin 143 miljoonaan käyttäjään kohdistunut tietomurto. Equifax ilmoitti hyökkääjän päässeen www-sovelluksessa olevan haavoittuvuuden kautta usean kuukauden ajan käsiksi 143 miljoonan käyttäjän tietokantaan. Hyökkääjä sai haltuunsa nimiä, osoitteita, henkilötunnuksia sekä luottokorttien numeroita.

Equifax ei ole antanut tarkkoja tietoja julkisuuteen, mutta kyseessä oli haavoittuvuus Apache Struts nimisessä vapaan lähdekoodin kirjastossa. Tämän haavoittuvuuden avulla hyökkääjä pääsi ajamaan www-sovelluksen kautta www-palvelimella mielivaltaisia komentoja. Ohjelmistoissa on, ja tulee aina olemaan haavoittuvuuksia. En puutu niihin tässä sen enempää, mutta tietoturva-ammattilaisen näkökulmasta yksittäisen sovelluksen haavoittuvuus ei saa koskaan tarkoittaa 143 miljoonaan käyttäjään kohdistuvaa tietomurtoa.

Yksinkertainen pelastus: SELinux=enforcing

Valitettavinta tässä on se, että Linuxissa on jo 17 vuoden ajan ollut turvamekanismi nimeltä SELinux, joilla tämän kaltainen haavoittuvuuden hyödyntäminen olisi torjuttu. SELinux tai vastaava ytimen turvamekanismi on uusissa Linux-jakeluissa oletuksena päällä, mutta palvelinasiantuntijoiden ensimmäinen toimenpide on yleensä kytkeä se pois päältä.

SELinuxin tarkoitus on rajoittaa mm. käyttäjien, prosessien, porttien ja tiedostojen välisiä oikeuksia ennalta määriteltyjen sääntöjen mukaan. Tällä pyritään estämään hyökkääjien toimien eteneminen tai ylläpitäjien virheiden aiheuttamat vahingot. Esimerkiksi www-sovelluksen ei pidä lukea tai muokata käyttöjärjestelmän omia konfiguraatiota, joten SELinux estää /etc/ -hakemistossa olevien tiedostojen lukemisen. Esto tehdään siitä huolimatta millaiset oikeudet tiedostotasolla olisi määritelty.

Miksi siis Linux-jakelussa olevia tietoturvakontrolleja ei käytetä?

Yleisin syy tähän on osaaminen, ja kuvitelma että kontrollien hallinta olisi työllistävää. On totta, että väärin tehtynä kontrollit voivat estää kaiken muun toiminnan, mutta oikein mietittynä ja tehtynä ne voivat olla hyvinkin huomaamattomia – samalla silti tuoden huomattavaa lisäsuojaa.

Rohkaisen tutustumaan SELinuxiin, se on erittäin tärkeä työkalu turvallisen Linux-järjestelmän rakentamisessa.

Jos itseopiskelu tuntuu liian työläältä, tule Linuxin tietoturva -kurssille oppimaan.

PS. Myös SELinux on ohjelmisto, ja siinäkin on virheitä. Equifaxin tietomurron aikoihin Red Hatin SELinux säännöstöissä havaittiin virhe, jonka seurauksena Tomcat-sovelluspalvelin pääsi tarpeettomaan laajasti käyttöjärjestelmään. Järjestelmien säännöllinen päivitys on yksi tärkeimmistä tietoturvakontrolleista!

Timo Vehviläinen

Timo innostuu tietoturvasta, erityisesti yhdistelmästä tietoturva ja Linux. Hän vetää Tieturilla Linuxin tietoturva -kurssia.

10. tammikuuta 2018

Vain muutos on pysyvää – muistoja matkan varrelta viestintävälineistä

Työstin juuri markkinointiviestiämme Office 365 -alueesta, ja sen myötä päädyin pohtimaan viimeistä pariakymmentä vuottani työelämässä työvälineiden näkökulmasta. (Tiedän, ei voi olla, aloitin työt maks 10-vuotiaana.)

Tässä pieni katsaus niille teistä, jotka eivät aloittaneet työelämässä 90-luvun puolivälissä. Samat askelmerkit läpikäyneet lukijat, hihkaiskaa, jos muistini tekee tepposet. Internetin ihmemaailma ei ihan kaikkiin vuosilukuihin antanut hyvää vastausta.

Olen sitä ikäpolvea (sanoi hän tätimäisesti), joka muistaa Outlookin edeltäjän, MS Mailin tulon. Siihen asti sähköpostit olivat kulkeneet silloisessa firmassa UNIX-pohjaisessa meilissä. (Tivi muisteli tätä aikaa vuonna 2015 seuraavasti.) Koska muutosvastarinta vaivasi ja varsinaiset työvälineet olivat VAX-maailmassa, vaati MS Mailiin siirtyminen pientä patistelua.

Lyncin/Skype for Busineksen edeltäjä, Office Communicator, tuli päivittäiseen käyttöön silloisella työpaikallani 2000-luvun puolessa välissä. Sitä ennen olin minäkin (humanisti) sujuvasti napsutellut komentoriville työkaverin käyttäjätunnuksen (kryptinen lyhenne) sekä komennon (jota en nyt enää muista). Tämän seurauksena tietokoneen ruudulle pompsahti harmaa laatikko, jossa luki lähetetty viesti. Mitä tahansa kävelyn vähentämiseksi! (Sivuhuomautuksena mainittakoon, ettei tuota nykyisellä tietoturvatasolla enää yrityksen sisällä niin vain tehtäisikään.)

Aiempaan verrattuna Office Communicator oli vallan mahtava väline eikä tällä kertaa muutosvastarintaa siis varsinaisesti ollut. Päinvastoin, Skypen käyttäjät olivat jo hetken odotelleet järkevää työvälinettä yrityskäyttöön. Yhteydenpito eri maassa istuviin kollegoihin (siinä ei auttanut edes kävely) helpottui hurjasti, ja kerta jos toinenkin tuli työstettyä asioita chatissa napsutellen. Office Communicatorilla pystyi myös soittamaan, jakamaan mm. esityksiä ja järjestämään videokokouksia. Ihan aluksi isommassa kokouksessa tarvittiin kuitenkin vielä avuksi puhelinkonferenssilaitteetkin.

Video- ja puhelinkonferenssit olivat arkea jo 90-luvun puolella. (Kyllä, siksi niitä tosiaan siihen aikaan sanottiin.) Tosin videokonferenssi vaati nimensä mukaisesti sitä varten varta vasten suunnitellun huoneen. Etäpalaverit toiselle paikkakunnalle onnistuivat kuitenkin hyvin jo silloin, järjestelmä vaan vaati investointeja. Vielä 2000-luvun alussa puhelinkonferenssia varten piti olla omat tunnukset pystyttämiseen eikä niitä ollut ihan kaikilla käytettävissä. Oli myös edelleen varattava neuvotteluhuone, josta löytyi sopiva puhelinpömpeli.

Lyncin tullessa yrityskäyttöön niin videopalaverit kuin puhelinpalaveritkin helpottuivat. Kuka tahansa käyttäjä pystyi kutsumaan isomman joukon muita palaveriin ja jakamaan niin ääntä kuin kuvaakin. Vieläpä oman työpöytänsä äärestä. Toki Skypella tämä oli ollut mahdollista jo hetken siviilissä, mutta monessa yrityksessä sitä ei otettu tietoturvan vuoksi käyttöön.

Sittemmin Microsoft osti Skypen, Lync yhdistyi Skypeen ja syntyi Skype for Business. Nyt vuorostaan Skype for Business yhdistyy Microsot Teamsiin. Kehitys kehittyy ja kliseisesti vain muutos on pysyvää. Helpompaan päin koko ajan. Seuraavia muutoksia innolla odotellessa.

Anna Sahinoja

Anna vastaa Tieturilla ohjelmointi-, infrastruktuuri- ja toimistotyökalukoulutuksista. Hän uskoo vahvasti, että kiky muodostuu päivittäisessä työssä myös työkalujen hallinnasta.

Suositut tekstit