Тестовое задание QA

в 7:57, , рубрики: qa, тестирование, юмор, метки: ,

Некоторое время назад я проходил собеседование на позицию QA инженера в одной известной российской IT-компании. Мне была предложена задача, свое решение которой с позволения компании я опубликовал в своем блоге. Пост оказался очень популярным, за короткое время набрав несколько тысяч просмотров, и мне показалась светлой мысль продублировать его на Хабре. По правилам Хабра текст публикуется без смайликов.

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

Решение — под катом.

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

Итак, имеем карандаш:

image

По условию задачи, поскольку никаких дополнительных условий не задано, поэтому полагаем, что:

1. Карандаш не механический, а именно простой — деревянный или пластиковый. Про цвет ничего не сказано — т.о. карандаш может быть цветным. По-сути, данное условие говорит только о том, что данный карандаш более пригоден для рисования, чем для простых записей и черчения; конечно, не факт, но положим данное условие несущественным — намеренно не будем рассматривать тестирование карандашей разных цветов. При желании рассмотрим этот вопрос отдельно.
2. Изначально неизвестно, заточил ли производитель карандаш на фабрике или нет — рассмотрим оба случая.
3. Резинка несъемная и расположена на противоположном конце карандаша.
4. Если предположить, что у нас в наличии имеется только один экземпляр карандаша, то тестирование можно провести не по всем пунктам — функционал тестирования заметно сузится, т.к. карандаш, увы, ресурс не восстанавливаемый — его нужно точить, им надо писать, а также делать с ним разные другие интересные вещи.
5. Ничего не сказано про упаковку, производителя и параметры карандаша. Предполагаем, что мы их все-таки имеем/знаем/видим. При обратном функционал тестирования будет несколько меньше.

image

Общие критерии оценки тестов:

Основными критериями оценки будем считать выполнение / невыполнение условий указанных тестов. В случае если тест выполняется, можно оценить результат по неким заранее заданным правилам (например, по десятибалльной шкале, 0 — ужасно, 10 — превосходно; а в целом критерий оценки может быть задан как угодно). Некоторые параметры дополнительно попытаемся представить в числовом выражении. На основе полученных данных можно создавать сводные характеристики различных моделей карандашей.

Основные Test Cases для тестирования карандаша будут выглядеть примерно так.

Начальные свойства «из коробки» или «беглый осмотр» (primary testing):

— Если карандаш изначально заточен: удостоверимся, что им можно писать «by default». Некоторые производители карандашей умудряются заточить их таким образом, что их необходимо предварительно затачивать еще раз, ибо при заточке по умолчанию они попросту не пишут.
— Если карандаш изначально не заточен: удобно ли нам в текущих условиях иметь не заточенный «по умолчанию» карандаш (например, когда под рукой нет точилки или канцелярского ножа)? Т.е. потребуется ли дополнительная «инициализация» карандаша в виде его предварительной заточки.
— Убеждаемся, что резинка на конце карандаша не отрывается при первом прикосновении к ней и держится крепко — хотя бы визуально.
— Есть ли на карандаше маркировка, обозначающая (степень твердости, диаметр стержня, назначение, специфические параметры)? Указан ли производитель?

Тестовое задание QA

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

Качество изделия (quality estimation):

— На карандаше нет заусениц, неровностей, потеков от лака, прочих неопрятностей и заводских браков.
— Маркировка (если она есть) нанесена качественно, надписи не расплываются и четко читаются.
— Держатель резинки ровный, не цепляется за одежду и кожу.

Удобство использования (usability testing):

— Карандаш удобно держать в руке. При работе он не выскальзывает и не выпадает.
— Есть ли на карандаше «зона захвата» (gripp zone) — специальные шашечки из краски, не позволяющие карандашу скользить в руке (© 2001, Faber Castell). См. предыдущий пункт.
— Для слабовидящих: актуально использование карандашей с шестигранным или треугольным стволом. Карандаш с круглым стволом, укатившийся под стол, часто представляет для слабовидящего человека серьезную проблему.

Использование (functional testing):

Порисуем на бумаге.

Тестовое задание QA

— Убеждаемся, что карандаш вообще рисует.
— Убеждаемся, что цвет текста / качество рисунка / чертежа соответствует твердости карандаша (насыщенный, бледный, ретушь, etc…

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

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

Используем резинку на карандаше.

Тестовое задание QA

— Насколько резинка на конце карандаша вообще имеет смысл — она больше в работе или же больше мешает?
— Резинка стирает записи/рисунки, не размазывает и не «грязнит».
— Резинка со временем не «дубеет» и продолжает исполнять свои функции.
— После использования резинка не отстает от карандаша, не отслаивается и не выпадает; держатель не гнется и не оставляет следов и царапин на бумаге и руках.
— Карандаш пишет на тех местах, на которых были стерты записи резинкой.

— То же самое проделаем с резинкой, взятой не от карандаша.

Тестовое задание QA

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

— Далее попробуем рисовать/чертить/писать не на бумаге, а на альтернативных материалах — плотная бумага, картон, газета, деревянный брусок, стены, пол (актуально при ремонтных и строительных работах).

Тестовое задание QA

— Порисуем через копирку. Не должно возникнуть каких-либо специфических проблем.

— Хранение и транспортировка: помещается ли карандаш в подставку для карандашей (соответствуют ли параметры)? Насколько удобно он помещается и переносится в кармане, в сумке? Не колется ли при этом, не ломается, не крошится?..

Экологичность (ECO testing):

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

Тестовое задание QA

Это требование весьма актуально, ибо очень часто дети (и не только!) попросту «съедают» карандаши. По моим подсчетам, я сам съедаю по несколько карандашей в год. Сколько при этом я получу вредных веществ от такой привычки, если карандаш не безопасен — науке доподлинно неизвестно. При желании можно было бы попытаться подсчитать, но что-то не хочется…

С точки зрения экологичности самые лучшие карандаши — нелакированные и без резинки (они, кстати в великом множестве встречаются в магазинах Ikea, Leroy Merlen и т.п.). И именно по этой причине лично я недолюбливаю карандаши с резинкой на конце — ИМХО есть ее, а особенно железный держатель есть неудобно вдвойне.

Безопасность (security testing):

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

Тестовое задание QA

— Безопасен ли карандаш для людей с ограниченными возможностями (например, для слабовидящих)?
— Соответствует ли карандаш принятым стандартам (ISO, ГОСТ, etc...).

Внеший вид (appearance, ergonomic and usability testing):

— Цвет карандаша. «Классический» ствол желтого цвета в стиле «Koh-I-Noor» или же альтернативная не-классика? При выборе карандаша люди руководствуются разными соображениями.
— Общая привлекательность, оформление и дизайн.
— Ствол круглый, треугольный или шестигранный.
— Упаковка/дизайн приносит или не приносит эстетическое удовлетворение и в целом радует глаз или нет.

Тестовое задание QA

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

Заточка карандаша.

Возможные вариации заточки:
— Затачиваем точилкой для карандашей.
— Затачиваем шкуркой (актуально для мягких карандашей и карандашей для ретуширования).
— Затачиваем опасной бритвой.
— Затачиваем канцелярским ножом.
— Затачиваем кухонным ножом (тесаком, медицинским скальпелем, etc.)
— В отсутствии инструментов заточки затачиваем (пытаемся) неподходящими для этого средствами (например, зубами, куском стекла или вилкой). В результате, вероятнее всего, будет epic fail, но тем не менее имеет место быть.

Тестовое задание QA

Критерии оценки заточки (для каждого инструмента):

— Карандаш вообще затачивается данным инструментом. Например, заточить карандаш с пластиковым стволом с помощью шкурки или опасной бритвы будет весьма затруднительно. Заточить маленький (сточенный) карандаш с помощью охотничьего тесака также будет проблематично.
— Карандаш затачивается легко. Очень актуальный тест: некоторые карандаши при заточке оказываются абсолютно «железными» и заточке не поддаются в принципе (лично наблюдал такой пример на карандашах одного известного производителя).
— В процессе заточки и после нее грифель не нарушил свою целостность.
— В процессе заточки и после нее карандаш не ломается и не крошится.
— Ствол карандаша не расслаивается, после заточки нет заусениц, неровностей и других повреждений.
— Грифель не выпадает из ствола.
— Для залакированных карандашей: лак не отслаивается кусками от ствола и не крошится.
— Заточенный карандаш успешно функционирует (можно писать, рисовать, чертить).
— Коэффициент успешности заточки K = M / N, где M — количество удачных заточек, N — количество неудачных заточек. Чем меньше K, тем хуже карандаш затачивается с помощью данного инструмента.

Далее действуем по принципу «Пытаемся поломать все, что ломается» (чтобы потом все правильно работало, конечно).

Использование в экстремальных условиях (stress testing):

— Уронить карандаш на пол несколько раз. В идеале грифель не должен сломаться или раскрошиться. Ствол карандаша не должен иметь повреждений.
— Попытаться согнуть карандаш, приложив усилие: сломается или нет?
— Будем грызть карандаш с особым усердием. Конец карандаша не должен быть «съеден». Многие производители уделяют этому моменту особое внимание.

Тестовое задание QA

Мы любим карандаши Ikea!
Они маленькие — помещаются в маленькую сумку.
Они крепкие — можно уронить несколько раз.
Они вкусные — можно погрызть

— Поместим карандаш в воду, затем высушим.
— Поместим карандаш в кислотную, щелочную среду ненадолго.
— Заморозим, а затем отогреем. Вариант — положить в снег на морозе.
— Нагреем карандаш, затем охладим. Но поджигать все-таки не станем. Это, конечно, тоже можно, хотя вряд ли после такой процедуры им можно будет пользоваться, если только не представить себе карандаш Джеймса Бонда, который в огне не горит и в воде не тонет.

Тестовое задание QA

— Если бюджет тестирования не ограничен или тестирование хорошо оплачивается производителем в рекламных целях — проведем испытания в условиях невесомости. Космонавты на МКС по специфическим причинам, возникающим в невесомости, кстати, пользуются обычными грифельными карандашами…

Тестовое задание QA

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

Тестовое задание QA

Тестирование производительности (performance testing, или напоследок немного простейшей математики):

Попытаемся измерить производительность карандаша: на сколько страниц текста/рисунков его хватит. Можно это сделать вручную, однако проблема заключается в том, что это будет весьма долгий и трудоемкий процесс, поскольку «изрисовать» целый (особенно качественно сделанный) карандаш достаточно трудно. Можно проделать все операции вручную, а можно воспользоваться элементарной математикой.

Представим, что есть некие эмпирически подсчитанные усредненные показатели: сколько страниц текста/рисунков можно нарисовать карандашом определенной длины, твердости, определенной формы и с определенным диаметром стержня. Пусть это будет называться «КПД карандаша» и будет составлять X страниц A4 (или X километров текста) для карандаша длины Y см. (данные берем: у производителя, в Google, в библиотечных источниках — нужное подчеркнуть). Допустим также, что эмпирические расчеты немного неточны и используют длину карандаша «под ноль», а так как пользоваться карандашом длиной менее 4 см весьма затруднительно, плюс 1 см на резинку с держателем, то на «реальную» работу у нас остается (Y — 5) см. Одно затачивание «отнимает» у карандаша около 1 см длины, поэтому на один карандаш стандартной длины 18 см. у нас есть приблизительно 13 заточек. При заточке карандаш может сломаться. Считаем, сколько было неудачных заточек за время работы карандаша; пусть это число будет равно N. Пусть длина карандаша равна L см. Тогда:

Реальный КПД карандаша = (L — 5 — N) * (X/Y)

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

Реальный КПД карандаша = ((L — 5 — N)/2 + (L — 5 — K*N)/2) * (X/Y)

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

Реальный КПД карандаша = V * X / Y

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

P.S.:
Можно придумать еще много чего. Наверняка.
В процессе раздумий над данными действиями я активно пользовался обычным карандашом. Правда, без резинки.

Результат тестирования можно представить в графическом виде.

Тестовое задание QA

Автор: MMXi

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js