Комментарии 27
Очень неплохо.
Залип на описании тестов полей логин/пароль.
Помню, как доводил руководителя разработки одной шарашкиной конторы (пришлось пересекаться по работе много лет назад), между делом выискивая косяки именно в полях авторизации. То у них номер телефона из 30 символов состоял, то написание через 8() не видел, то ещё что-нибудь – увлекательный квест, короче. Даже если левой ногой просто для души заниматься.
Порой зайдёшь на какой-нибудь известный сайт и диву даёшься, сначала что нифига не тестируют и выкатывают, а потом что и устранить долго не могут, т.е. и служба поддержки кое-как работает.
Вот выдали нам (тестировщикам) функционал и сказали:
— Держи, тестируй!
А с чего начать? Для новичка это может быть целой проблемой. Особенно когда нет подробного ТЗ. Поэтому я решила создать эту подборку, где можно поискать вдохновение! ツ
Предлагаю вспомнить, что такое тестирование ПО. Хорошее определение в википедии
Тести́рование програ́ммного обеспе́че́ния — процесс исследования, испытания программного продукта, имеющий своей целью проверку соответствия между реальным поведением программы и её ожидаемым поведением на конечном наборе тестов, выбранных определённым образом (ISO/IEC TR 19759:2005)
Ключевые слова: проверка соответствия между реальным поведением программы и её ожидаемым поведением. Если ожидаемое поведение не описано, какие тесты получатся?
Предлагаю задуматься, когда говорят «держи, тестируй!» и не дают спецификацию (ТЗ), тестировщик сам чего хочет добиться? Что-то сделать? Что-то сделать, за что платят деньги? Получить удовольствие? Получить новые знания/умения? Закрепить текущие знания/умения?
Или таки проверить соответствие?
Ключевые слова: проверка соответствия между реальным поведением программы и её ожидаемым поведением. Если ожидаемое поведение не описано, какие тесты получатся?
КМК как минимум для программ с GUI бо́льшая часть ожидаемого поведения не прописывается явно.
если есть поле ввода, то ожидается, что при наборе в этом поле «а» в тексте появится «а», а не «б», что эта буква вставится в позиции курсора, а не заменит 2 символа перед ним и т. п.
То есть, есть документ, в котором рассказано, каким должно быть поведение. Конечно, базовые случаи, типа при вводе «а» появляется именно «а», видимо нужно проверить, но кажется, такого рода проверки пишутся один раз для всего проекта, по одному комплекту на один тип ui-контрола, не? При добавлении нового нового view/экрана/итд, вызывают готовый комплект базовых тестов для этого типа контрола.
Это настолько общий принцип любых коммерческих отношений, что даже удивительно, что приходится его объяснять.
Тест — это проверка. Идеи как проверить, наверное нужны. Но в статье же, по сути, о том, что «если непонятно, что проверять, какие могут быть идеи»?
Своими комментариями пытаюсь донести, что если нет понимания что проверять, то ответ на этот вопрос нужно искать не за пределами проекта, а внутри.
Даже если у нас есть ТЗ, и неважно, кто его написал, вы или аналитик — это еще не значит, что не возникнет вопроса что проверять. Особенно у новичка, который еще в принципе не знает, какие тесты могут быть, что нужно проверять для того или иного поля
Если возникает вопрос что проверять, ответ на этот вопрос нужно искать не в рамках тестирования. И это очень важно понимать особенно новичку в тестировании.
Не вижу никакой проблемы, если тестировщик обратится к аналитику, продакту, и уточнит — «вот тут что должно быть?».
Если продолжить тезис про поля ввода из соседней ветви:
— все поля ввода одинаковые, текст, максимальный размер введенного?
Если, например есть, поля ввода с валидаторами, где-то за рамками тестов ведь должно быть записано «в этом поле разрешены только цифры», «в этом поле — месяц, 1-2 цифры»? Если такое не записано, как тестировщик может написать тест на ввод месяца в текстовое поле? Он должен проверять все варианты? Какие из вариантов считать правильными, какие нет? «январь», «янв», «01», «1», какие?
И это как раз про что проверять. И очень странно, что ответ на этот вопрос, который имеет прямое отношение к тестированию, нужно искать где угодно, но только не в тестировании.
Если взять семейство agile-методик, у которых ключевой момент — короткие итерации, то насколько короткой итерацию не делай (хоть вообще один день), всегда есть «заказчик», «исполнитель», «ожидаемый результат». Ожидаемый к концу итерации. Записывают его на доске, в issue или просто встретившись утром у кулера обмениваются парой-тройкой фраз, если исполнителю не будут понятно, что от него ожидают — скорее всего, он сделает
Мне, как заказчику, нужен результат, за фигню я не готов платить.
Я, как исполнитель, ровно в той-же степени хочу выдать результат, если, конечно, мне важно, что бы за мою работу заплатили.
Очень странно рассчитывать, что за фигню будут платить. Еще более странно платить за фигню, хотя окружающая действительность как бы говорит, что так поступают чаще, чем хотелось бы. Успокаивает только то, что ожидаемый результат платят значительно больше (на порядки?) чем за фигню.
К большому сожалению, ситуация когда приходится пользоваться не очень качественным продуктом (сторонняя библиотека — продукт, которым вы пользовались, наличие документации, её актуальность — один из критериев качества) распространена шире, чем хотелось бы. На мой взгляд выход из этой ситуации следовать трем пунктам
* определить для себя нижний уровень качества
* всегда выбирать более качественный продукт в рамках бюджета
* если по итогам всех выборов и оценок не удается достичь минимального уровня, либо не браться за задачу, либо пересматривать бюджет, либо пересматривать задачу.
По сути это ровно то же самое/, что я пытаюсь донести в соседних комментариях — без четкого понимания «что должно быть в результате», не вижу вариантов хорошо решить задачу тестирования.
Ох, спасибо, очень актуально ️
Спасибо большое, мне как новичку данная информация расширяет горизонт планирования и осуществления проверок!
Тут надо бы поправить...
Где брать идеи для тестов (подборка полезных ссылок)