пятница, 1 января 2016 г.

Непредвиденная ошибка с кодом ()

Вот и наступил новый год, а пару дней назад по случаю праздников мы заказывали пиццу в разные локации, и, похоже, заказать пиццу в Москве или Саратове можно без проблем, а вот в Харькове при оплате заказа картой онлайн на сайте одной из пиццерий уже как минимум пол года воспроизводится ошибка - вместо сообщения об успешной оплате заказа сайт радостно сообщает, что произошла неизвестная ошибка с кодом (). Пицца при этом приходит, но вот ты подтвердил оплату и получил подтверждение списания со счёта, а вместо подтверждения оплаты заказа получаешь "неизвестную ошибку" и думаешь придёт тебе заказанный товар или нет.

Написал им сообщение с описанием проблемы, надеюсь поправят.

В Тамбове вообще не обнаружилось пиццерий, которые позволяют оплачивать заказы пластиковыми картами через сайт - только наличными курьеру :)

И снова всё это навело меня на мысли о качестве. Когда нет конкуренции, можно не внедрять новый функционал и можно допускать разные ошибки и не исправлять их, но если конкуренция есть, то у вас не остаётся шансов, если вы хотите получить хотя бы что-то, вы будете стараться быть лучше конкурентов, работать над своими ошибками и придумывать новые способы привлечения клиентов.

Почему большинству хватает быть не хуже чем другие, и что заставляет немногих из нас становиться с каждым днём лучше чем мы были вчера?

воскресенье, 20 декабря 2015 г.

Подведение итогов - это начало планирования

Полезно иногда подводить итоги. Этот пост не совсем о тестировании, но и о нём тоже.

Когда что-то делаешь, важно знать зачем всё это. Важно, потому что тогда ты сможешь делать это с полной самоотдачей и чувствовать удовольствие от процесса и гордость за результат.

Конечно, люди все разные. И даже мы сами каждый день не похожи на себя вчерашних.
Это и завораживает и пугает меня иногда - когда понимаешь что каждый день меняет тебя и не зная наверняка как всё будет через много лет ты неизбежно меняешься и ищешь чего-то нового или пытаешься вернуть старое, но любое действие или бездействие не дадут тебе шанса остановиться там где ты есть.

Это происходит и в тестировании - каждый день мы над чем-то работаем, что-то улучшаем и добавляем, решаем проблемы, строим процессы, оттачиваем свои навыки. Если сравнивать любого из нас с теми, кем мы были лет пять назад, то удивляешься, как много поменялось и у нас, и в индустрии в целом. И все что мы делаем даёт нам возможность представить какое-то будущее, то, ради которого мы это всё делаем сегодня. Но будущее будет ещё лучше и совсем не таким, как мы его представляем, хотя и сбудется всё, чего мы хотим (мы ведь не сидим на месте), но произойдет и много других изменений, о которых мы даже не догадывались и которые мы не планировали.

Так вот об итогах. Полезно подводить их, чтобы увидеть чего мы хотели достичь раньше (ведь наши желания и планы дали нам возможность получить то, что у нас есть) и понять, что пришло время задуматься о том, что будет дальше.

Именно подведение итогов даёт нам возможность начать продумывать своё дальнейшее развитие, поэтому уделяйте время на то, чтобы иногда посидеть и подвести итоги всему. Очень полезное упражнение.

понедельник, 7 декабря 2015 г.

Проектирование API клиентов: попробуй использовать сам, прежде чем отдать другим

    Сегодня в очередной раз столкнулся с "сюрпризами", оставленными мне какими-то разработчиками, на этот раз объектом моих экспериментов стал OpenStack Keystone Python client (link).

   Взяв пару примеров из коротких руководств я попробовал получить список OpenStack Endpoints (ссылки для доступа к OpenStack сервисам) - но не тут-то было, примеры из документации отказываются работать.

    Поэкспериментировав и прочитав пару десятков страниц из гугла я не нашёл ничего "готового", однако решение было на виду.

    Разбор данного примера наглядно показывает как не надо проектировать python клиентов для сервисов, чтобы ваши пользователи не сходили с ума, пытаясь их использовать.

    Давайте разберём на примере.

четверг, 3 декабря 2015 г.

Поиск неправильных ссылок на сайтах

   Посещая различные сайты я постоянно сталкиваюсь с тем, что на них встречаются устаревшие ссылки, ведущие на уже несуществующие страницы, либо на страницы, возвращающие различные ошибки, например, "ошибку № 500" (она же Internal Server Error, внутренняя ошибка сервера) - я как раз описывал пример недавно.

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

   Иногда даже приходится сталкиваться с просьбой "проверить быстренько новую версию сайта" - когда заходишь на новую демо версию сайта и через 10 секунд уже идёшь заводить баги.

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

   Вот ссылка на скрипт (осторожно, Python): ссылка на github.

вторник, 1 декабря 2015 г.

QA аура: ещё один баг в коллекцию

Только сегодня узнал о новом портале для обучения (https://stepic.org/), куда можно отправлять свои собственные курсы - утром ещё работал их сайт, а вечером уже возвращает 500 код, хорошо хоть без трейсов.

суббота, 28 ноября 2015 г.

Ok Google, where is Hangouts OnAir?

  До недавнего времени у Google был отличный сервис онлайн трансляций, доступный по этому адресу:


  Я даже готовил статью в блог чтобы о нём рассказать.

  Это очень удобный сервис для проведения презентаций, когда количество участников велико и обычные сервисы для проведения конференций не справляются. Во время презентации все участники могут видеть трансляцию с веб камеры или рабочего стола в формате HD, с неплохим качеством звука, после трансляции запись всего митинга/презентации будет сразу же доступна на youtube в виде ролика, так же в формате HD.

  Попробовав зайти на эту страницу, я обнаружил ошибку "404 Страница не найдена", с печальным роботом.

  Теперь можно воспользоваться чем-то очень похожим на Hangouts On Air, это "живые" трансляции на YouTube:


  Сервис классный и спасибо Google что они делают такие продукты бесплатными. Но можно было бы сделать перенаправление со старой ссылки на новую или хотя бы разместить страницу-заглушку, сообщающую о том, что сервис был перенесён на YouTube.

понедельник, 19 октября 2015 г.

Автоматизированная проверка синтаксиса, грамматики и сложности предложений

Можно проверять свой "английский" перед отправкой важных писем на этих ресурсах:

http://spellcheckplus.com/
http://www.hemingwayapp.com/
https://www.languagetool.org/ru/

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

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

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

Вот ещё один пример. Есть некий ресурс в Интернете, посвящённый самообразованию и онлайн обучению, авторы которого очень стараются и предоставляют реально полезный материал, причём часть этого материала публикуется бесплатно. Они постоянно допускают ошибки и опечатки в этих материалах. При чём регулярно - это может быть какая-то статья на их сайте, или PDF версия какой-то полезной лекции или книги, или рассылка в электронной почте. Мы с ними на эту тему уже не раз списывались и я им посоветовал:
1. Проверять орфографию автоматическими программами, например, встроенными проверками в Google Docs или Microsoft Word, а так же встроенными плагинами для браузера.
2. Прочитывать текст несколько раз перед отправкой.
3. Добавить возможность на сайте выделять фрагменты текста и отправлять отчёт об ошибке если ошибка всё равно была обнаружена пользователями (т.к. до этого приходилось искать адрес их электронной почты и писать письмо со скриншотами).

Ошибок стало меньше, но они не ушли ;)

Я иногда задумываюсь над такими вещами и вот какая мысль приходит мне в голову в этом случае и не дает покоя: а что если бы человек, печатающий для них тексты, обладал бы высоким уровнем грамотности, перепроверял каждое написанное предложение и не допускал бы ни единой ошибки (конечно, на уровне русского языка, а не излагаемого материала)? Что если бы они не допускали ошибок? Совсем.
Тогда бы и все средства проверок были бы не нужны. И ошибок бы не было.
Эта мысль не дает мне покоя :)