Цитаты Дейкстры

Edsger_Wybe_DijkstraЭдсгер Вибе Дейкстра - голландский учёный, оказавший в середине прошлого века огромное влияние на развитие компьютерной индустрии.

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

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

  • Если отладка — процесс удаления ошибок, то программирование должно быть процессом их внесения.
  • Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.
  • Вопрос «умеет ли компьютер думать» имеет не больше смысла, чем вопрос «умеет ли подводная лодка плавать».
  • Глубоко ошибается тот, кто думает, что изделиями программистов являются программы, которые они пишут. Программист обязан создавать заслуживающие доверия решения и представлять их в форме убедительных доводов, а текст написанной программы является лишь сопроводительным материалом, к которому эти доказательства применимы.
  • Средства не виноваты в том, что их безграмотно используют.

 

Автоматизация тестирования iOS приложений: наше маленькое исследование UI Tesing из Xcode 7

Менеджерам и тестировщикам iOS приложений, у кого в команде есть автоматизация, на заметку…
В XCode 7 инструмент для автоматизации тестирования UI Automaion был объявлен как устаревший. Он не удалён из набора инструментов… он просто устаревший. :)
На его замену Apple выпустила UI Testing и рассказала о нём на конференции WWDC https://developer.apple.com/videos/play/wwdc2015-406/.

Чтобы понять возможности, пользу и опасность для нас UI Testing мой автоматизатор, Женя А., провел и самостоятельное исследование, и познакомился с тем, что пишут в своих блогах автоматизаторы.

Важные мысли про UI Testing:

  • работает только на iOS 9+
  • необходим доступ к коду самого проекта, в нем создается новый Target «iOS UI Testing Bundle»
  • тесты пишутся прямо в Xcode (на Objective C или Swift). Они не попадают в сам билд приложения, а собираются в отдельный бандл (проект), который устанавливается на девайс
  • запуск тестов также происходит из Xcode. Но, похоже, можно сделать запуск и из командной строки — https://krausefx.com/blog/run-xcode-7-ui-tests-from-the-command-line
  • пишут, будто UI Testing быстрее, но у нас получилось наоборот: тест, который выполнялся за 20 секунд с помощью UI Automation, UI Testing выполнял за 30 секунд.
    так же, как и для UI Automation, используются Accessibility свойства для идентификации и проверки состояния элементов UI
    в целом интерфейс написания тестов выглядит дружелюбнее, родной IDE (Xcode), код компилируется, в отличие от javascript в UI Automation, т.е. ошибки синтаксиса будут сразу выявляться
  • тесты, созданные по методу Record and Play, понятнее и выглядят более надежными
  • UIT не поддерживает комплексные жесты, такие как pinch, drag или tap по указанным координатам
  • UIA не удобный для создания тестов, но более гибкий
  • благодаря интеграции в проект приложения, сами разработчики будут иметь возможность легко запускать эти тесты.

Интересные и полезные статьи:

Выводы, сделанные нами для наших проектов. UIT технология еще новая, не доделанная, есть баги. Но с хорошим потенциалом. Наш, ранее разработанный фреймворк перенести не удастся. Вариант только один — вручную переписывать на новом языке, учитывая особенности и различия UIA и UIT. На данный момент имеющиеся UIA тесты показывают себя более производительными (и более надежными из-за сырости UIT). К тому же ввиду того, что мы поддерживаем iOS7+, ограничение в UIT поддержки iOS9+ является блокирующим для нас. Сейчас решили не переходить на UIT.

 

Будет интересно узнать, если у кого-то есть свой опыт и свои мысли по этой теме.

Исследовательское тестирование и исследовательские туры Виттакера

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

Спасибо моим коллегам, которые на себе опробовали каждый тур и дали свой фидбек! Без них, книги Виттакера “Exploratory Software Testing”  и мировой паутины не получилось бы статьи!

Введение в исследовательское тестирование

Что такое исследовательское тестирование?

Исследовательское тестирование (exploratory testing) — это одновременное изучение программного продукта, проектирование тестов и их исполнение.

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

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

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

 

По ISTQB и по Джеймсу Баху исследовательское тестирование - это неформальный метод проектирования тестов, при котором тестировщик активно контролирует проектирование тестов в то время, как эти тесты выполняются, и использует полученную во время тестирования информацию для для проектирования новых и улучшенных тестов.

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

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

 

Когда следует применять  исследовательское тестирование?

Самые распространенные случаи:

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

Но, на самом деле, теория исследовательского тестирования 3.0 отказывается вообще от термина “исследовательское тестирование”, заявляя о нем как об избыточном и бесполезном. Исследовательское тестирование – это любое настоящее тестирование.

 

Как организовать исследовательское тестирование?

Для управления исследовательским тестированием может использоваться Session-Based Test Management. В основе этой модели лежат:

  • Тестовые сессии — ограниченные промежутки времени, в рамках которых происходит тестирование‎. При этом каждая сессия имеет тему.
  • Отчеты по результатам сессий, оформленные в пригодной для парсинга и сбора статистики форме.
  • Обсуждение лидом и тестировщиком результатов проведенной сессии.

 

Идея туров в исследовательском тестировании

Чтобы систематизировать исследовательское тестирование можно использовать идею туров.  Туры — это идеи и инструкции по исследованию программного продукта, объединенные определённой общей темой или целью. Туры, как правило, ограничены по времени — длительность тестовой сессии не должна превышать 4 часа.

Идею туров развивали в своих работах Канер, Бах, Хендриксон, Болтон, Кохл и другие. В конце статьи есть дополнительные ссылки на их работы.

Джеймс Виттакер, хоть и не придумал саму идею туров, но предложил свой подход к исследовательскому тестированию с использованием туров и в своей книге “Exploratory Software Testing” в доступной форме озвучил идею туров и описал сами туры.

Тур — это своего рода план тестирования, он отражает основные цели и задачи, на которых будет сконцентрировано внимание тестировщика во время сессии исследовательского тестирования. При этом Виттакер использует метафору, что тестировщик — это турист, а тестируемое приложение — это город. Обычно у туриста (тестировщика) мало времени, поэтому он выполняет конкретную задачу в рамках выбранного тура, ни на что другое не отвлекаясь. Город (ПО) разбит на  районы: деловой центр, исторический район, район развлечений, туристический район, район отелей, неблагополучный район.

 

Именно турам Виттакера и опыту их реального применения посвящена дальнейшая информация в статье. Спасибо моим коллегам, которые на себе опробовали каждый тур и дали свой фидбек! Без них, книги Виттакера и мировой паутины не получилось бы статьи.

 

Общая карта районов приложения и туров по ним

 

 

 

Матрица по турам и типам багов, которые они находят

Матрица основана только на опыте применения в моей команде.

 

Continue reading

«Наташа, порекомендуй хорошего начинающего тестировщика»

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

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

В таблице я указываю средний балл, полученный за выполнение практических и теоретических заданий, отмечаю, как выпускник посещал занятия и обозначаю итоговый результат обучения:

  • «Рекомендация» обозначает, что лично я вижу в этом выпускнике перспективу, верю в то, что у него есть способности, возможности и ОГРОМНОЕ ЖЕЛАНИЕ стать хорошим тестировщиком.
  • «Сертификат о завершении» говорит о том, что человек успешно закончил обучение — и домашние задания и теория были выполнены на достойном уровне, сдал выпускной тест. Это хорошие выпускники, которые могут быть хорошими тестировщиками.
  • «Сертификат об участии» обозначает, что человек принимал участие в курсе, знает какие-то базовые вещи. Однако либо мало домашних выполнял, либо мало посещал, либо не сдал итоговый тест.

Если информации нужно больше, то можно обращаться ко мне лично (контакты на страничке контактов).

Вы можете сообщить мне о своем желании получать информацию о моих выпускниках, либо самостоятельно отслеживайть обновление информации по таблице.

Всем добра и успехов!

 

Заметки про тайм-менеджмент

Я закончила университет в 2007 году по специальности математик-программист. Была относительно прилежной студенткой. Домашки делала сама. В обучении была заинстересована. Старалась не пропускать занятия, даже какие-то очевидно бесполезные ввиду неадекватности изложения материала.

Ввиду врожденной прилежности и воспитания я так же себя вела и при обучении во втором своем университете на психолога-менеджера. До тех пока у нас не появился один хороший старичек, который одной простой фразой изменил моё отношение ко времени: “У человека есть только две настоящие ценности — время и здоровье. Именно ими человек расплачивается за всё, что с ним происходит. Ни деньгами, а временем и здоровьем!”

 

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

Continue reading

Правила оформления текста в интерфейсе приложений

Я убеждена в том, что грамотность и оформление текста в интерфейсе приложения напрямую влияют на качество этого приложения.
Поэтому на последней встрече QA Club Minsk затронула эту тему в 4 аспектах:

  1. Соблюдение единого стиля оформления текста
  2. Пунктуация в заголовках (названиях) и пояснительном тексте
  3. Важность кавычек для понимания смысла
  4. И, безусловно, общая грамотность


Забыла в презентации упомянуть, что чаще всего наш пользователь – это не технический специалист. Поэтому общаться с ним нужно простым человеческим языком. Наибольшая беда с этим обычно в настройках, сообщениях об ошибках или других уведомлениях.
Перепроверьте текст в интерфейсе своих приложений. =) Понятен ли он простому человеку?

Как стать тестировщиком? Легко ли?

Недавно выпустила свою 3ю группу начинающих тестировщиков (курс «Основы тестирования ПО. Старт карьеры тестировщика»).
И получила интереснейший отзыв, который, мне кажется, будет интересно прочитать тем, кто хочет войти в сферу тестирования, либо тем, кто уже начал идти по этому сложному пути.
Отзыв публикую весь, т.к. он пронизан и болью и радостью начинающего тестировщика, но ОСОБОЕ внимание читателю рекомендую обратить на часть 6.
Публикую не в целях самопиара, а потому что это на самом деле считаю мысли интересными.
На форме обратной связи задавался вот такой вопрос: «Что было хорошо, что было плохо, чего хотелось бы пожелать?

Амелин Вячеслв, курс «Основы тестирования ПО. Старт карьеры тестировщика», январь-март 2015г.


Часть 1. Давным давно в далёкой Галактике…
Было хмурое утро ноября 2014 года. В воспалённом мозгу мысль о том, что необходимо что-то менять в своей жизни, достигла своего апогея, что вылилось в унылый просмотр вакансий на сайтах соответствующей тематики. Профессия тестировщик по сути являлась багом в выборке вакансий, предназначенных для совершенно другой работы (скажем, экономист). Хм. Посмотрим.
Далее последовала недолгая прогулка по тематическим форумам. В итоге книга Савина была скачана и начато её чтение. Таки да, фитиль она зажгла. Но… Впереди был Канер с Нгуенгом и прочей нечистью. Затем Портнов с его видео-курсами. Должен сказать, весьма общими, но в принципе полезными.
В конце концов среди концов найдёшь конец ты наконец. Если кратко, то стало ясно, что без помощи извне все бессистемные просмотры сайтов по тестированию рано или поздно превратятся в кашу. Начался просмотр курсов.
Списался с одним господином. Он описал Наталью как «специалиста, коих в РБ единицы». Хм! Сначала было сомнение, но зерно было посеяно и дало плоды. И вот я уже заполняю форму на сайте Натальи и самодовольно думаю «Да чему меня учить, я же столько умного прочитал!» Ха-ха-ха.
Если вы считаете, что что-то знаете о тестировании, то вы ничего не знаете, господа.
Забегая вперёд скажу, что тот дядька оказался прав.
Записался…

Часть 2. Source (оно же «Начало» в нашем прокате)
Первое занятие и сразу ступор. Я ничего не понимаю. Что тут происходит? Жестокая реальность здоровенной кувалдой выбила из головы весь мусор, что там скопился.
Включение в процесс мгновенное. Сразу надо делать домашки, причём стараться с меньшим количеством итераций. Что такое итерация, мой юный друг? Приходи — узнаешь! Ещё есть Гугл. Если и он не помог, тогда не появляйся!
Лично у меня втягивание в процесс занял 1,5-2 недели. Затем соображалка начинает раскручиваться.

Часть 3. Непосредственно процесс обучения
Наталья всё объясняет, всё раскладывает по полочкам, заставляет думать и шевелить мозгами. Параллельную литературу в процессе обучения никто не отменял. Её список Наталья даёт сразу, сразу и начинайте почитывать + к этому сами ищите статьи в Вики и на сопутствующих сайтах.
Домашки объёмные и интересные. Сначала думаешь «Дайте мне багги, я рождён их искать. Уааааа!» Терпение. Сделайте нормально то, что предлагают. Баги будут потом, их много. На ваш век хватит.
В общем классно, позитивно. Мне было очень радостно ходить на занятия!!! Я ловлю себя на мысли, что впервые я не заставлял себя учиться. Мне это реально нравится!
И это заслуга преподавателя! Ну и моя немного, наверное.
Будьте внимательными! Слушайте, слушайте, слушайте!!!
Будьте тактичными! Не перебивайте. Сейчас ловлю себя на мысли, что на месте Натальи я бы нас хворостиной отдубасил. Порой не давали слова вставить.
Классный ход с конфетами. У меня выработался рефлекс как у собаки Павлова. За правильный ответ дают конфету. Очень неплохо стимулирует. Без шуток. Я никогда не шучу!
Будьте азартными! Вы включаетесь в новую сферу жизни. Нельзя ходить унылым. Вгрызайтесь в знания, учитесь, развивайтесь. Наталья вас направит и никогда не откажет в совете. Даже если он не касается тестирования. Серьёзно. Вы же помните, что я никогда не шучу?!
Будьте терпеливыми! В тот момент, когда я записался на курсы, жизнь мне преподнесла сюрприз. Неприятный. Связано это с работой, вдаваться в подробности не буду. В общем были мысли, что не потяну, что бессмысленно. Вы скажете, что это вопрос уверенности и веры в себя. Нет. Терпение! Turn your pain into power. Трудно будет, это проверка. При смене профессий особенно. Если стерпите, то тогда добьётесь успеха. Не верю в иное развитие ситуации. Отговорки не моё тоже не принимаю. Господа, вы идёте на смену жизни. И вы даже не удосужились узнать, что такое тестирование, перед курсами? Просто прочитать пару книжек это сложно? Вам нечего делать в тестировании, если вы так легкомысленны.

Часть 4. Дифирамбы Наталье
Наталья мягко и сразу располагает к себе. Её сразу хочется слушать, за ней хочется идти. Самое главное – ей сразу веришь и доверяешь.
Очень тактичный преподаватель. Железобетонное спокойствие в любых ситуациях.
Как уже говорил, поможет с вопросами, связанными не только с тестированием. Однако спрашивать об устройстве андронного коллайдера всё же не стоит. Я имею ввиду вопросы психологии (то бишь за жизнь погутарить), IT вопросы.
Можно делать домашку на английском. И даже нужно! Классно. Даже переписку можно вести по почте. И вас никто гнобить не будет за порой корявый енглиш. Лишь мягко пожурить за ушко.
В общем открытый и замечательный человек!
Про профессионализм скажу, что подключаюсь к дядьке, о котором писал вверху. Если вы конечно дочитали до этого места, так как многабукафф наверное.

Часть 5. Ложка дёгтя
Считаю, что надо пересмотреть учебные пособия, так как есть нестыковки в тексте, которые вызывали когнитивный диссонанс в моём мозгу.

Часть 6. Эпилог. Конклюжнз. Итоги. Так а что столько написал и ничего толком не сказал: идти нам или не идти на курсы?
На курсы идти однозначно. Что перед этим неплохо было бы сделать. Пишу в порядке, который считаю правильным. Да простит меня, ещё не оперившегося тестера, Наталья!
1. Савин. Название книги сами узнаете, если захотите
2. НЕ ЧИТАТЬ!!! Канера. ИМХО, сначала отработать полгода, затем читать. Лично для меня пустая трата времени, потом буду перечитывать
3. Портнов. Ютуб. Сами найдётё, не маленькие
4. Whittaker “How to test software”. Скачаете сами.
5. Параллельно английский, господа! Да, да. А что вы хотели? Хотите нормально кушать? Извольте.
6. Логические задачи. Без фанатизма, как второстепенное направление.
7. Предыдущие 6 пунктов ещё не оттолкнули от сферы тестирования? Садитесь и думайте. Оно вам надо? Может начальник старый, скоро скопытится, детей у него нет на его место? Помрёт – вы его место заёмёте? А, не? Ещё уверены? Тогда читайте дальше.
8. Курсы Натальи.
9. По окончании курсов Наталья вас направит, пошлёт, отошлёт, купит билет до Магадана. Шучу. Я шутил, что никогда не шучу. Юмор в нашей профессии нужен как и в любой другой.

Искренне ваш, Вячеслав.