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

Игра на кодове (The Imitation Game)

imitation-game-1

Българско заглавие: Игра на кодове

Оригинално заглавие: The Imitation Game

Жанр: трилър, драма, биографичен и донякъде военен

В ролите: Бенедикт Къмбърбач, Кийра Найтли, Том Гудман-Хил, Тъпанс Мидълтън, Рори Кинер, Марк Стронг, Матю Гууд, Чарлс Данс, Хана Флин, Стивън Уодингтън

Режисьор: Мортен Тилдум

Държава: САЩ / Великобритания

Времетраене: 114 мин.

IMDB: http://www.imdb.com/title/tt2084970/

Trailer:

Като човек, занимаващ се с ИТ и още повече, като човек, работещ за Certivox – компания, занимаваща се с криптография, няма как да гледам на този филм безпристрастно.

Да започнем от това, че влязох в кинозалата с големи очаквания и въпреки това не излязох разочарован. Филмът много ми хареса.

Защо ли? Защото с една човешка история се поставят много теми – за войната и героите, които спасяват хора извън бойното поле; за различните хора – с различно мислене, различни схващания, различна сексуалност и как обществото реагира на това; за великите идеи и борбата за това да докажеш колко са велики…

imitation-game-2Алън Тюринг е британски математик, криптоаналитик и информатик, един от основоположниците на компютърните науки. Още от дете има силен интерес към образованието. Първият му учебен ден на 14-годишна възраст съвпада със стачка във Великобритания, така че 14-годишният Алън отива с колело на училище, изминавайки… 97 километра! (няма го във филма, затова го разказвам). И макар изключителен лекоатлет, истинското амплоа на Тюринг е математиката – завършва в Кеймбридж с отличие и дисертацията му върху централната гранична теорема прави такова впечатление, че на възраст от 22 години е избран за член на колежа. По-късно защитава и докторат по математика в Принстън. А по-късно е нает от британските военни за секретния проект в Блечли Парк, който има за цел разгадаването на шифъра, използван за кодиране на свръхсекретни съобщения в немската армия с използване на шифровъчната машина „Енигма“.

Тъкмо за това става въпрос в „Игра на кодове“.

И ако знаете кой е Алън Тюринг, или поне понятия като „алгоритъм“, „машина на Тюринг“, „програма“, „памет“, „регистър“, „тест на Тюринг“ ви говорят нещо, вече съм сигурен, че в съседния прозорец сте отворили сайта за резервация на билети.

imitation-game-3В противен случай, пак ви препоръчвам да го гледате – най-малкото защото Бенедикт Къмбърбач играе гениално в главната роля, а Кийра Найтли му партнира чудесно (за протокола – третият ми любимец като актьорска игра е Стивън Уодингтън, макар и с епизодична роля).

Като цяло „Игра на кодове“ е супер премерен филм, без излишни преувеличения, с минимални забежки от реалната история, без любовни сцени, без сценичен бой, без кой знае какви специални ефекти, дори актьорите и режисьорът не са от „най-известните“… и въпреки това гениален филм, който държи в напрежение през цялото време! Препоръчвам го за голям екран (не задължително на кино, но на голям екран) – детайлите във филма са изпипани до съвършенство… Вижте как Тюринг заеква, как се притеснява, как не схваща шегите и ще разберете колко гениален е Бенедикт Къмбърбач.

Are you paying attention? Good…

 

Избор на ПИН-код

След поредната новина от kaldata, че ПИН-кодове се крадат и с термални камери, реших да ви дам един прост, но ефективен съвет, който доста ще затрудни „хакерите“ – използвайте две еднакви цифри.

Не използвайте:

  • датата си на раждане – има как да се разбере
  • годината си на раждане – има как да се разбере
  • последните 4 цифри от ЕГН-то си – има как да го разберат
  • регистрационния номер на автомобила си – има как да го разберат
  • четири еднакви цифри (1111, 2222, 9999) – лесно се вижда на термален скенер / камера
  • четири последователни цифри (1234, 5678, 0123) – лесно се вижда на термален скенер / камера
  • четири различни цифри (5921, 4376) – макар и с по-нисък риск, лесно се вижда на термален скенер / камера
  • кодове, започващи с 0, 1 или 9 (0128, 1126, 9327) – заради т. нар. brute-force атаки, макар че това е с доста нисък риск

Ето няколко „идеални“ пин-кода: 3090, 5228, 7199, 7791, 8664, 8892… възможностите са доста! Между другото, никой не е казал, че пин-кодът ви трябва да е с 4-цифри 😉

От тук нататък остава да измислите как да го запомните. Ето няколко идеи:

  • Казвате се Гошо – на нещо като „лийт“ това би изглеждало като 7060.
  • Срещнали сте гаджето си през 1997. Това е добър код, но за по-сигурно може да го обърнете: 7991.
  • Вие сте ръководител, т.е. бос, т.е. BOSS, което може да стане 6055
  • Много обичате шоколад. Ш е 25-тата буква, а О е 15-тата. 2515 е добра идея за ПИН.

От мен – толкова.