10

В описаниях вакансий на должность тестировщика чего только не увидишь. И тест-планы надо уметь писать, и багрекерами владеть. Столько-то лет опыта в тестировании веб-приложений, основы Java или C#. Желательно знать Selenium. Быть коммуникативным, умным, добрым.

И вот только одного на мой взгляд абсолютно важного для тестировщика скилла вы никогда не найдете в описании должности, или в тестовом задании: владение слепым методом печати.

Скажите, зачем вам тестировщик, который знает Selenium, если он печатает двумя пальцами, опустив голову в песок? Слепая печать (десятипальцевым методом, но если вы вдруг можете печатать вслепую меньшим количеством пальцем - ради бога) - базовый скилл любого айтишника, который изо дня в день должен писать большое количество связного текста, и особенно для тестировщика (баг-репорты, отчеты, тест кейсы, коммуникация с коллегами).

...грустно глядя на коллегу, который со скоростью черепахи вносит баг-репорт в систему...

1

Понадобилось как-то Петру скрепить вместе 30 страниц формата А4, инструкцию по работе с актуальным программным обеспечением. Пётр сидел в одном просторном офисе со всей командой, состоящей из 8 первоклассных программистов.

- Конечно, не вопрос! - отозвался Андрей, сосед напротив. - Держи мой степлер.
- Бзык, - сказал маленький степлер, который и близко не смог пройти через 30 страниц.
- Понятно! - сказал Андрей. - Нам нужна более большая модель. Ребята, у кого есть степлер побольше?
- У меня! - охотно пришел на помощь Кирилл.
Ручной степлер был действительно солидный и почти сшил 30 листов - один кончик скрепки даже торчал на пол-миллиметра из бумаги.
- Эх, не везёт. - вздохнули ребята. - Ну ты ж понимаешь, мы программисты, мы с экрана читаем, нам бумага ни к чему.
- А может лучше дыроколом...? - предложил Иван, и тут Олегу пришла в голову идея. - А ты сначала сшей 3 кусками по 10 листочков, и потом отдельные части между между собой!
Какой вариант выбрал Пётр?
Пётр был тестировщик, поэтому он спустился на один этаж в бухгалтерию, где промышленный степлер легко скрепил все 30 листочков между собой одной надёжной стальной скепкой.

-------------------------------------------------------------------------------------------------------------------

Какая мораль у данной сказки. Часто бывает, что программисты не способны самостоятельно выйти из своего контекста. В данном случае они действительно охотно пытались помочь, и даже очень креативно придумали костыли и альтернативные решения, которые они могли бы самостоятельно исполнить. Но иногда программисту трудно представить, что лучшее решение лежит "не на его этаже", то есть, например, не в написании кода, а в организационных изменениях.

Как писали великие  (Jerry M. Weinberg, кажется) -  каким бы странными и глупыми вам не казались решения, которые принимались в прошлом, наверняка в момент их принятия были вполне логичные и разумные аргументы в пользу этих решений.

Переделанный пример из личного опыта.

Вижу в приложении (допустим, портал частных авто-услуг) примерно такую формочку (прокат частных авто):

Untitled

Вверху поле, где нужно задать примерные пробег автомобиля. Внизу - выбрать максимальное разрешенное расстояние для поездок за день. Везде точка разделяет дробную часть, запятая - тысячи (американский стандарт). Да, внизу записаны 20, 50 и 80 километров. А вверху 25 тысяч тех же километров.

Казалось бы нули в дропдауне - абсолютно бессмысленные и лишние, нет? Кому могла в голову прийти идея так реализовать?

Разгадка такая.

...читать далее О странных решениях

Пришел на новый проект. Через неделю не могу в апп залогиниться в браузере со своего компа, а с других могу и автотесты с моего же компа - логинятся с теми же браузерами. Программист ищет баг уже 3-ий день, сегодня вокруг него еще 5 коллег сидело.
Я вообще не могу понять, как написать такой код, даже если захотеть, с такими странными эффектами.

А вы говорите не нужны юнит-тесты.

Дали мне сегодня весь проект запустить. Скачал из git. Запустил на сборку. Выдаёт ошибку в юнит-тесте.
Окей - говорю программистам. У нас не выдаёт, отвечают. Запускают - действительно не выдаёт, у меня при запуске теста из IDE тоже не выдаёт. А из командной строки - выдает. Программисты, хотите упражнение? Метод модифицирует web элемент таг с атрибутами вроде:

И assert сравнивает строковый результат, и у меня из командной строки валится потому что атрибут один меняет порядок (сперва attr2, затем attr1). Примерно так:

Симптомы - выше (где-то меняет, где-то не меняет). В чем проблема? Решение ниже.

...читать далее Походные заметки про простое тестирование

1

Вспомнил после линча на тему безопасности одну проблему сервиса, которым я достаточно часто пользуюсь. Кажется, теперь я догадываюсь, откуда ноги там растут.

Рекомендация по безопасности от OWASP (описано в линче): удаляйте сессию на сервере для критичных приложений через 15 минут неактивности, для среднекритичных - через 30, для остальных - через час.

Теперь история:

Время от времени я планирую сложные маршруты на сайте Deutsch Bahn (Немецкая Железная Дорога). Ну там, пересадка там или сям, часом раньше - часом позже, тут чуть быстрее - а тут чуть дешевле. Тот, кто ездит или летает по новым маршрутам меня поймет. И вот нужное соединение найдено! Можно расслабиться и заскочить в фейсбучек, ну на 3 минутки всего. И вот эти козлы дропают мою сессию через 30 минут!!! А я же всего через час вернулся!

Мой вывод такой. Рекомендация в этом виде - вредная! Мое дополнение - разделяйте в вашем приложение части с критической безопасностью от прочих. В момент поиска я еще не залогинен, поэтому убивать мою сессию через 15-30 минут антигуманно! Когда я в стадии покупки билета - ради бога, тут задействованы личные и критичные данные, я согласен с тем, что уничтожение сессии - правильная идея.

Рекомендации - хорошо, рекомендации и здравый смысл - лучше!

 

А теперь об успехах юзабилизаторов. Компания LinkedIn твёрдой рукой ведет Slideshare к триумфу плохого UX во славу "требований". Казалось бы, что главное в платформе, демонстрирующей слайды? Слайды? Вряд ли, иначе трудно объяснить, почему на огромном экране они занимают примерно 10% пространства.

"Тестировщик - это который по сайту кликает?".
"Ты тестировщик? То есть ты знаешь программирование? И ищешь в исходниках ошибки, да?"
Студенты-стартаперы. Обоих обратил в правильную веру, день прожит не зря.