40 грешни схващания на програмистите (или защо QA е нужен)?

Вече 10 години работя като специалист по осигуряване качеството на софтуера или, казано на чист български – QA. QA е професия, в чиято основа са валидацията и верификацията, т.е. дали софтуерът изпълнява изискванията за него, дали работи според очакванията на клиента, по правилния начин, дали е достатъчно бърз, надежден и удобен за ползване, ще издържи ли десетки потребители и т. н. Днес попаднах на чудесен пример за 40 грешни схващания при нещо толкова просто, като да си въведеш имената в ей-такова поле на някоя обществена система, да речем, илюстриращи за колко много неща трябва да мислят тестващите, докато си вършат работата:

Въведете Вашите имена:

 

Ето го и списъкът с 40 погрешни схващания на типичния програмист:

  1. Хората имат точно три официални имена.
  2. Трите имена винаги вървят последователно: име, презиме, фамилия
  3. Хората имат само официални имена… Петър си е винаги Петър, какви са тия Петьо, Пепи, Пешо…
  4. Хората никога не пропускат презимето си.
  5. Да го кажем така: Хората имат точно N имена, където N е някъде между 2 и 4.
  6. Имената на хората се побират в Х на брой символа.
  7. Абе вие ме бъзикате! Как ще има човек, който реално се казва Adolph Blaine Charles David Earl Frederick Gerald Hubert Irvin John Kenneth Lloyd Martin Nero Oliver Paul Quincy Randolph Sherman Thomas Uncas Victor William Xerxes Yancy Wolfeschlegelsteinhausenbergerdorff?
  8. Имената на хората не се променят.
  9. Добре, де, променят се, но само при конкретен и краен брой поводи: сватба, осиновяване и обидно име.
  10. Уф, добре, променят се по всяко време и всякакви поводи.
  11. Имената на хората винаги са на кирилица.
  12. Тези, които не са на кирилица, се пишат на латиница. Какво искате да кажете с 辉龙, да се напише Hui Long просто!
  13. Сигурен съм, че модулът за филтриране на мръсни думи няма имена на хора в речника си… Е, не може ли да го напишем Хуи вместо Хуй този китаец?
  14. Има супер голямо значение дали имената са с главни или малки букви…
  15. Всъщност, май няма никакво значение.
  16. Принципно имената започват с главни букви, ама колко идиоти ги мързи да си натиснат shift-а?
  17. Само ЧЪК НОРИС пише името си изцяло с главни букви, идиоти такива!
  18. Някои имена имат префикси и суфикси, ама кой нормален ще се напише като Lt Col John-Alexander van der Sar Maria de la Salete Jr.
  19. Ще ги махна тия титли… Е, как ще има „д-р Драгомир Драгостинов“? И ще вземе да се напише Dr. Dr. Dragostinov?!
  20. Имената на хората не съдържат номера, как ще се казваш в днешно време Александър Иванов XVI? И ще се напишеш като Александър Иванов 16?!
  21. Името и фамилията са различни имена. Ако се казваш Yang Yang Yang, как да разбера дали си „Yang Yang  Yang“ или „Yang  Yang Yang“? Ох, обърках се…
  22. Хората имат глобално уникални имена. Не може 10 души да се казват Иван Иванов Иванов… аз как ще ги различа сега?
  23. Добре, добре… но да знаете, че не повече от милион души в целия свят имат съвпадащо име с някой друг.
  24. Как така Ива Иванов? Или си Ива Иванова, или Иво Иванов!
  25. Добре, имало и Вовеки Веков Иванов. Ясна е работата.
  26. Добре, де, почти всички хора имат глобално уникални имена, трябва ли да пренаписвам цялата система за това, че на някой можели да му съвпаднат имената?
  27. Е, много важно, че вместо Sørensen излизало S?rensen… Той си знае как се казва, разбира се.
  28. Виж, тази система е за България, никога няма да се ползва с имена на латиница…
  29. Или от японци. 猿も木から落ちる
  30. Или от корейци. Как така ще са различни символи от японските? 원숭이도 나무에서 떨어진다.
  31. Този О’Хара въобще не му пишете апострофа, чупи цялата база!
  32. Да, сега ще кажеш, че и 1′ or ‘1’ = ‘1’ е валидно име… SQL инжекция ли? Това пък какво е?
  33. Знам алгоритъм, който транслитерира без проблеми от кирилица на латиница и обратно. Пътка Пътева ли? Ами…
  34. Естествено, че ако има две свързани информационни системи за даден човек, те използват абсолютно същото име за този човек.
  35. Разбира се, че всеки оператор на системата въвежда имената по еднакъв начин…
  36. Кк тка ще прпусне или рзамени няккви бкуви, докаот пише?! Къде гледа?!
  37. Имената на хората винаги се дават при раждането, нали?
  38. Е, не веднага при раждането, но много, много скоро след това…
  39. Пет години? И как сте му викали докато стане на пет?!
  40. Хората имат имена. Винаги! Как така няма име… ХОРАТА ВИНАГИ ИМАТ ИМЕНА! Напускам.

По този японски оригинал на Патрик МакКензи (има и още поне шест имена, които ще пропусна): http://emptypage.jp/translations/kalzumeus/falsehoods-programmers-believe-about-names.html

Transforming Automated Software Functional Tests For Performance And Load Testing

Първата ми научна статия е вече публикувана в International Journal of Scientific Engineering and Applied Science. Всеки, който проявява интерес, може да я види тук:

http://ijseas.com/volume1/v1i3/ijseas20150363.pdf

International Journal of Scientific Engineering and Applied Science (IJSEAS) – ISSN: 2395-3470, Volume-1, Issue-3, June 2015, p. 447-453

Transforming Automated Software Functional Tests for Performance and Load Testing

Authors: Peter Sabev, Assoc. Prof. Katalina Grigorova

University: „Angel Kanchev“ University of Ruse

Functional testing is a quality assurance process that could be automated. Functions are tested by feeding them input and examining the output expecting concrete results. However, the performance measurement and execution times of these tests are rarely considered when executing functional tests. Adding simple timestamps for every functional test execution when such a test is started or stopped could bring a valuable benchmarking data for analysis, save a significant amount of time for executing performance tests separately from functional tests, and increase defect removal efficiency.

Keywords: Software Engineering, Software Testing, Testing Model, Automated Testing, Functional Testing, Performance Testing, Regression Testing, Benchmarking

QA: Challenge Accepted – една моя сбъдната мечта

Не съм писал през март… нямах време, защото с помощта на моите приятели, близки и колеги сбъднах една моя мечта – да направим яка техническа конференция за специалисти по софтуерно тестване… и мисля, че ни се получи!

Disclaimer: Всичко написано тук си е мое лично мнение и не бива да се счита за официално мнение от конференцията QA: Challenge Accepted по какъвто и да било начин.

Какво трябва да знаете, ако решите да правите подобно събитие?

DSC_4691Първо, трябва да се заредите с много добро настроение, много енергия и да се заобградите с такива хора (сами няма да се справите).

Второ, това е тежка и неблагодарна работа, която отнема много време, енергия и ресурси – дори подготовката на сватбата ми беше нещо по-лесно: пак имате наем на зала, осветление, видео и фотозаснемане, гости, DJ и афтърпарти, но на сватбата поне няма спонсори, фактури, договори и лектори…

Трето, ако правите подобно нещо за първи път, ще минете през десетки итерации за всяко нещо… например дизайнът на лого. Преминахме през десетки итерации, за да достигнем до крайния резултат:

logo-iterationsБлагодарение на Боян Колев достигнахме до финалното лого, но дори то не се оказа съвсем финално – Деница Ноева направи допълнителни илюстрации, като любимата ни от тях превърнахме в стикери и подложки за чаши, раздавани на конференцията:

qa-challenge-podlozhkaИмаше и по-брутални идеи, които се чудех дали да споделя, но хайде:

qa-challange-accepted-smashedqa-challange-acceptedИ това е само един пример! Сега си представете толкова итерации и за дизайна на сайта, брошурите, баджовете, плакатите с програмата, тениските, рекламните торбички за участниците, тяхната предпечатна подготовка и отпечатване, но също и осигуряване на зала, Wi-Fi, лектори, билети, фактури, кафе, чай, захар (а, да, бъркалки), мед, мляко, минерална вода, сандвичи (и вегански!), бира за афтърпартито, кой взе връзки за баджовете, платихме ли на Интерпред, как ще преместим барбароните от офиса до залата, сложихте ли рекламните материали на Елфи Турс в торбичките, включихме ли представянето на трета лекция в сценария на водещите, кой ще вземе тениските от рекламната агенция, обадиха се, че Иван няма да идва и на негово място ще пристигне Пенка, ама дали може да сменим мъжка XL с женска S за неговия пакет…

DSC_4637…барбароните в кръг ли ще ги редим, къде е тоалетната, недейте да лепите тук, абе вие взехте ли бъркалки в крайна сметка, къде е фактурата, как ще пренесем 800 бутилки минерална вода на един курс, пуснахме ли обявление във Facebook, как така не може наливна бира за афтърпартито, къде са водещите… през последните дни лудницата е неописуема 🙂 А аз си представях лежерно събитие с много бира и две-три лекции за аромат.

DSC_4651Един бърз пример с направата на баджовете: първоначалният дизайн там си остана, но всички знаем, колко е дразнещо, когато баджът е отпечатан само от едната страна… Неизбежно се случва така, че се обръща точно от другата, „бялата“ страна. Затова решихме, че трябва да е двустранен – разбира се, няколко часа преди конференцията. Дребен детайл, който обаче се оказа проблем, доста труден за разрешаване. На една страница А4 излизат 8 имена с размер А7, а на следващата трябва да излязат същите тези 8 имена в разменен ред… Представете си следния списък:

1. Яна
2. Благовест
3. Милена
4. Ивелина
5. Боян
6. Веселин
7. Светослав
8. Златьо

За да стане двустранен бадж, трябва този списък да се превърне в:

1. Яна
2. Благовест
3. Милена
4. Ивелина
5. Боян
6. Веселин
7. Светослав
8. Златьо

2. Благовест
1. Яна
4. Ивелина
3. Милена
6. Веселин
5. Боян
8. Златьо

7. Светослав

Само по този начин можете да направите print merge така, че от двете страни на страницата да Ви се получи:

badges_rotationИ това – за списък от 300 души, като Excel-ските формули ги смятате при 6 часа сън за последните 48… После се оказва, че навсякъде баджовете били 9х5 см, а нашият е 10,5х7,5 см (А7) и търсим калъфчета, които да паснат на вече купените щипки. И се оказва, че голяма верига като „Метро“ в София няма налични калъфчета за 300 такива баджа. Ето защо броени часове преди конференцията хукваме към незнаен склад на едро, намиращ се между с. Бусманци и световноизвестните улици с гръмки имена „5002“, „5007“ и „5010“, където има повече лунни кратери, отколкото асфалтова настилка. Но това са подробности 🙂

DSC_4777Защото QA: Challenge Accepted не беше обикновено събитие – имахме лекции както за начинаещи, така и за напреднали – общо 6 (поради тази причина всеки имаше поне една лекция, която му допада супер много, но и поне една, която не му допада чак толкова). Докарахме лектор чак от Лондон, но говореха и едни от най-способните и известни хора у нас…

DSC_4744Имахме много подаръци от спонсори, уъркшоп, комедийно шоу, зала за дискусии, lightning talks, дъъъълъг обяд с огромни сандвичи, обилни кафе-паузи и дори една с коктейли Club Mate, подарихме и екскурзия до Санторини, а да не забравяме и афтърпартито с бира на корем. Като за конференция, провеждаща се за първи път не беше никак зле…

DSC_4894Аз лично научих страшно много за графичния дизайн, социалния маркетинг, предпечатната подготовка, фактуриране и осчетоводяване, видове юридически лица, договори, документи, спонсорски пакети, работата в екип…  Да не забравяме и друг важен фактор – останаха и средства, които ще отидат за благотворителност и организиране на бъдещи подобни събития… когато отново съберем сили за това.

DSC_4751Специални благодарности на Яна, Бояна и Борислав, които също като мен жертваха много време, усилия и енергия, за да се случат нещата, на спонсорите, които ни подкрепиха, на приятелите, доброволците и семейството ми, които активно се включиха във всичко това… защото удовлетворението също е голямо!

Автор на снимките: Николай Зайнелов, flare.bg
Логото и илюстрациите на QA: Challenge Accepted са със запазени авторски права.