среда, 4 декабря 2013 г.

Нажимаем на кнопку – получаем ошибку

      Расскажу про еще одну довольно-таки часто встречающуюся ошибку: использование для срабатывания кнопки метода keyDown вместо keyUp. Обычно такие ошибки появляются, когда программисты не понимают, как разница этих методов повлияет на поведение программы.
      В результате, нажав на странице на кнопку, которая срабатывает по keyDown и удерживая ее, действие будет выполняться до тех пор пока мы не отпустим кнопку. То есть вместо одного запроса будет выполнено несколько, или форма будет сохранена несколько раз и т.п.
      Найти такую ошибку довольно просто: наводим на кнопку указатель мыши, нажимаем и удерживаем кнопку. Или переходим к кнопке, нажимаем на Enter и удерживаем некоторое время. Если в результате страница не зависла, в базе не создались дубликаты, не начали открываться миллионы одних и тех же окон, то критичного бага тут нет)))
      Однако, если проверяемое приложение требует особой надежности, и есть сомнения в том, какой метод срабатывания был использован, то все же нужно привлекать программистов и смотреть код.

четверг, 21 ноября 2013 г.

Ограничение длины поля: считайте правильно!

      Эта ошибка встречается довольно-таки часто, поэтому я решила, что о ней стоит написать.

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

      Вроде бы всё.  Кажется, что проблем с сохранением этого поля быть не должно… Но тут все же может оставаться ошибка. Дело в том, что программисты зачастую при проверке введенного значения считают, что максимальная длина поля равна длине колонки в базе данных. Но ведь длина в базе указывается в байтах, а в поле вводятся символы, которые могут занимать от 1 до 3 байт! То есть реально возможное значение, которое нужно сохранить, будет примерно вдвое меньше длины колонки.

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

      Будьте внимательны, проверяйте правильно. Ну а «Ё» нам поможет)))

среда, 16 октября 2013 г.

Zabbix: веб-мониторинг

      У Zabbix есть интересная возможность – веб-мониторинг. Веб-мониторинг позволяет проверять доступность веб-сайтов, код ответа страницы, скорость загрузки и время ответа, а также проверять наличие определенного текста на странице. Благодаря тому, что можно передавать переменные в post, можно проверять авторизацию, заполнению форм и т.п.
      Подробный пример создания сценария для веб-мониторинга есть на сайте zabbix.

      Добавлю несколько замечаний, с которыми я столкнулась при создании веб-сценариев. Возможно, кому-нибудь они пригодятся.
  • При создании шага сценария нужно учитывать, что значение url имеет ограничение в 128
  • ·         символов (но где-то в настройках zabbix длину можно изменить).
  • При создании шага нужно сначала сохранить изменения на вкладке «Шаги», а потом сохранить сам сценарий на вкладке «Сценарий», иначе ничего не сохранится.
  • В документации указано «Как только сценарий будет создан, Zabbix автоматически добавит сопутствующие элементы данных для мониторинга и привяжет их к выбранной группе элементов данных», однако при просмотре этой группы данных или списка итемов для хоста эти добавленные элементы показываться не будут. Не нужно думать, что что-то сломалось. Просто элементы данные для веб-мониторинга считаются «внутренними» и поэтому не показываются пользователям для редактирования. При создании триггера эти итемы показываются и их можно выбрать из списка.

четверг, 10 октября 2013 г.

Слайдкаст «10 принципов Agile тестировщика»

       Замечательный вдохновляющий слайдкаст от Андрея Дзыни «10 принципов Agile тестировщика». Вроде бы все перечисленные правила очевидны сами по себе, но к каждому пункту даются хорошие советы и рекомендации (где прочитать про техники тест-дизайна, как задавать вопросы программистам...). Все очень хорошо и по существу.

       Вот сами правила:
  1. Быть смелым и решительным
  2. Задавать неудобные вопросы
  3. Обладать техническими знаниями
  4. Дружить с программистом
  5. Знать все практики тест дизайна
  6. Исследовать и экспериментировать
  7. Смотреть по сторонам
  8. Заряжать духом тестирования
  9. Приносить ценность продукту
  10. Постоянно улучшаться

четверг, 12 сентября 2013 г.

Zabbix: Срабатывание триггера для net.tcp.service

      Еще немного про zabbix…

      Нужно было создать триггер, который бы срабатывал, если сервис не отвечает более 5 минут.
      Вроде бы логично предположить, что триггер будет выглядеть так:
            net.tcp.service[http,,8080].last(300)=0
      Но это решение неверно, т.к. в описании функции триггера last сказано, что параметр сек – игнорируется.

      А правильно использовать avg() вместо last():
            net.tcp.service[http,,8080].avg(300)=0

      В таком виде триггер будет работать именно так, как нам и нужно.

среда, 28 августа 2013 г.

Когда ищешь, смотри по сторонам...

      Недавно мне нужно было на работе немного позаниматься настройкой Zabbix для мониторинга серверов. Одним из пунктов настройки была настройка отправки email-уведомлений. В документации все довольно хорошо описано, поэтому мне казалось, что трудностей возникнуть не должно. Делаю все как описано, а в результате – вместо ожидаемого вида сообщения получаем весь текст одной сплошной строкой.

      Почему так происходит? Может быть zabbix не воспринимает перевод на новую строку? Может быть нужно использовать в шаблоне сообщения какой-то особый символ для переноса строки? Или это какой-то баг zabbix?..

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

      А через некоторое время я обнаружила, в чем была причина. Я просто не там ее искала! Видимо из-за того, что с zabbix я работала впервые, мне казалось, что все ошибки будут только из-за неправильной настройки zabbix. А причина была в почтовом клиенте Outlook! Нужно было всего лишь запретить удаление дополнительных переносов строк в сообщениях, и теперь сообщения от zabbix приходят именно в том виде, как это указано в шаблоне.

      Итак, в Outlook идем на вкладку Файл, переходим к пункту Параметры, далее в разделе Почта убираем флаг для «Удалять дополнительные переносы строк в текстовых сообщениях», и перестаем ругать Zabbix – он тут не виноват. :)

      Еще раз убедилась, что на любую проблему надо смотреть шире. Ведь все гораздо проще, чем мы думаем ;)

вторник, 27 августа 2013 г.

Оформление таблицы со списком в Excel

      Очень часто я создаю для себя различные таблицы с параметрами, требованиями или чек-листы. Все это удобно делать в виде таблиц в Excel. При этом для удобства я использую следующие «очевидности»:
  1. Использую сворачиваемые списки для группировки значений (Данные - > Группировать). Если свернуть все группы, то по заголовкам групп первого уровня можно быстрее найти нужную группу.
  2. Закрепляю верхнюю строку с заголовком (Вид - > Закрепить области). Это очень упрощает просмотр длинных таблиц, всегда понятно , как называется столбец, даже если он находится в самом конце длинной таблицы.
  3. Использую цветовое выделение различных групп.
В результате мои таблицы имеют такой вид:

В свернутом виде


В развернутом виде