Задача треугольник для тестировщика

Задача треугольник для тестировщика

Задача треугольник для тестировщика

Какое-то время назад мы опубликовали тренажер, имитирующий одну из стандартных задач на собеседовании тестировщика: тестирование утилиты, которая выводит данные о треугольниках. Мы решили дать коллегам возможность потренироваться — и не прогадали. Посещаемость сайта в определенные моменты доходила до 400 rps, а всего нашим тренажером воспользовалось больше 7000 уникальных пользователей.

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

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

Задача треугольник для тестировщика

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

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

Кейсов у нас было задумано 12.

1
Первое, что стоит сделать, увидев любую форму, попробовать просто по ней жмакнуть (засабмитить). Что ожидаем увидеть? Если кнопка сабмита не деактивирована (как в нашем случае), то самое ожидаемое поведение — форма выведет ошибки, сообщая, что не все обязательные поля для ввода были заполнены. Один кейс найден.

2
Второй кейс чем-то похож на предыдущий. Только в этом случае мы не заполняем одно поле (А или B). А остальные заполняем. Почему нельзя оставить пустым только поле C? Расскажем чуть ниже 🙂

3-7
Далее у нас идут позитивные кейсы. Вспоминаем уроки по геометрии, сколько существует треугольников? Нам удалось выделить пять видов: прямоугольный (3, 4, 5), тупоугольный (2, 3, 4), остроугольный (66, 67, 68), равнобедренный (3, 3, 5) и равносторонний (6, 6, 6). Все их можно перебрать, добавив себе пять очков к кейсам.

8
Снова возвращаемся к урокам геометрии. А какого треугольника быть не может? Верно, такого, у которого сумма двух маленьких сторон короче большой стороны (2, 3, 10). Все потому, что стороны в таком случае просто не смогут соединиться. Итак, еще один кейс: «не выполнились условия треугольника».

9
Очередной кейс, попробовать ввести в форму что-то, что никак не может являться сторонами треугольника. Например, буквы q, w, e. Итак, новые кейс найден: это не треугольник.

10
Далее начинается специфика тестирования в целом, и тестирование веб-приложения в частности. Тут, для начала, мы проверяем слишком большое число. Большим числом называем такое, которое больше максимального значения INT. Например, число 4294967295.

11
Два оставшихся кейса посвящены тестированию безопасности. Первый кейс, это проверка на SQL-инъекцию. На самом деле, конечно, писать настоящую инъекцию не надо, главное вообще подумать в эту сторону. Это уже будет означать, что о таком типе уязвимости вы помните. В нашем случае достаточно было ввести в поле такие ключевые слова, как select, or или where.

12
И последний кейс: XSS-уязвимость. О том, что это, можно почитать в нашей группе. Для того, чтобы кейс засчитался, необходимо было ввести тег для JS-кода. Т.е.

Видео:Разработчик vs ТестировщикСкачать

Разработчик vs Тестировщик

Часть 2: Тестирование простого приложения (Тестирование ПО)

Видео:Тестирование треугольникаСкачать

Тестирование треугольника

Записная книжка рассеянного [в пространстве и времени] программиста

Видео:Практика и опыт для QA / Тестируем треугольники / Что ответили с WG??? Тестировщик 2.0Скачать

Практика и опыт для QA / Тестируем треугольники / Что ответили с WG???  Тестировщик 2.0

Часть 2: Тестирование простого приложения (Тестирование ПО)

Видео:Тестовое задание на собеседовании тестировщикаСкачать

Тестовое задание на собеседовании тестировщика

Оглавление

Видео:Задача на подобие треугольников. А ты сможешь решить? | TutorOnline | МатематикаСкачать

Задача на подобие треугольников. А ты сможешь решить? | TutorOnline | Математика

Первое приложение

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

Напишем, функцию, которая принимает на вход три стороны треугольника, которые заданы целыми числами и возвращает тип треугольника. Сохраним написанный код в файле triangle.php.

Функция достаточно тривиальна, поэтому мы не будем останавливаться на ее реализации. Нас будет интересовать, как найти в ней ошибки.

Для начала потребуется реализовать механизм, который позволит вводить данные с консоли и получать результат. Сохраним следующий код в файле main.php. Чуть позже вы поймете, почему мы используем разные файлы для самой функции и для кода, который обрабатывает пользовательский ввод.

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

Откроем терминал, перейдем в каталог, с проектом и выполним следующую команду (для того, чтобы все сработало у вас должен быть установлен интерпретатор php в системе).

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

И вот что мы можем увидеть на экране.

Задача треугольник для тестировщика

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

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

Итак. Ниже приведен набор тестовых сценариев, которые должны быть написаны для нашей функции.

  1. тест для проверки действительно неравностороннего треугольника (наборы [1, 2, 3], [2, 5, 10] треугольниками не являются).
  2. проверка на действительно равносторонний треугольник
  3. проверка на равнобедренный треугольник (наборы вида [2, 2, 4] треугольником не являются)
  4. как минимум три теста для проверки равнобедренного треугольника, которые представляют собой перестановки одного и того же набора чисел ([3, 3, 4], [3, 4, 3], [4, 3, 3])
  5. тест на нулевую длину одной из сторон
  6. тест на сторону, имеющую длину меньше нуля
  7. проверка набора чисел, в котором сумма длин двух сторон равна третьей
  8. тест перестановок для троек чисел из теста 7
  9. проверка набора чисел, в котором сумма длин двух сторон меньше третьей ([12, 15, 30])
  10. тест перестановок для троек чисел из теста 9
  11. проверка на нулевую длину всех трех сторон
  12. проверка на передачу нецелочисленных значений
  13. проверка на передачу неполного набора значений
  14. проверка не только входных данных, но и ожидаемого выходного значения в каждом из тестов 1-13

Если вы не смогли назвать все кейсы, то не пугайтесь. Среднее число тестов, которые называли в разное время опытные разработчики составило 7,8.

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

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

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

Видео:Две задачи по геометрии за 7 класс на тему: "Треугольники"Скачать

Две задачи по геометрии за 7 класс на тему: "Треугольники"

Тестируем

Конечно же самым простым решением будет просто закодировать все тестовые случаи для нашего проекта и написать нечто вроде следующего кода (файл triangle_test_simple.php).

И такое часто практикуется. Особенно в среде разработчиков на CC++. На каждый логически связанный набор тестовых случаев создается свой файл. Который содержит множество функций обрабатывающих по одному сценарию каждая.

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

Один из вариантов создания инструмента для работы с подобными тестами вы можете увидеть в файле triangle_test.php. Запустите его и увидите на экране подробный лог тестирования проекта.

Задача треугольник для тестировщика

Видео:ТЕСТОВОЕ ЗАДАНИЕ ТЕСТИРОВЩИКА / Какие бывают тестовые задания для QA, как делать тестовоеСкачать

ТЕСТОВОЕ ЗАДАНИЕ ТЕСТИРОВЩИКА / Какие бывают тестовые задания для QA, как делать тестовое

Литература

Видео:Все про прямоугольный треугольник. Решаем задачи | Математика | TutorOnlineСкачать

Все про прямоугольный треугольник. Решаем задачи | Математика | TutorOnline

Исходные тексты программ

Видео:Как за 5 секунд решать такие задачи с треугольникиСкачать

Как за 5 секунд решать такие задачи с треугольники

Оглавление

Задача треугольник для тестировщикаRSS feed This page was generated by GitHub Pages.

Видео:Треугольники. Практическая часть - решение задачи. 7 класс.Скачать

Треугольники. Практическая часть - решение задачи. 7 класс.

Задачи для тестировщика при приеме на работу

Задача треугольник для тестировщика Задача треугольник для тестировщика

Видео:Решали пол-урока, а оказалось очень простоСкачать

Решали пол-урока, а оказалось очень просто

Тестировщик — кто это?

Сейчас востребована такая непривычная на слух специальность как тестировщик программного обеспечения.

Что это за зверь?

  • Это специалист, создающий сценарии тестирования. Он прогнозирует сбои и находит ошибки в продуктах, которые затем устраняются.

Коды современных программ огромны и занимают сотни страниц текста, если их распечатать на бумаге! Малейшие недочеты или ошибки как в алгоритме, так и в коде написания программ приведут к неминуемым сбоям и отказам оборудования. А если это оборудование самолетное?

Поэтому к тестировщикам предъявляются особые требования, которые определяются при приеме в команду.

Как пример, рассмотрим прием на работу в компании Veeam.

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

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

Авторов наиболее интересных ответов компания вне очереди приглашает на финальное интервью для приема на работу в Veeam.

Видео:Задача, которую исключили из экзамена в АмерикеСкачать

Задача, которую исключили из экзамена в Америке

Задача про Сашу, Андрея и Ольгу

В комнате три человека. Саша смотрит на Ольгу, а Ольга смотрит на Андрея. У Саши есть дети, у Андрея нет. Смотрит ли человек, у которого есть дети, на человека, у которого детей нет?

Варианты ответа: «Да», «Нет», «Нельзя определить». Объясните свою точку зрения.

Ответ на задачу:

В задании не сказано, есть ли у Ольги дети. Поэтому в решении могут быть варианты.

  • Пусть у Ольги есть дети. Она смотрит на человека, без детей — Андрея.
  • Ответ – Да, смотрит.

Задача треугольник для тестировщика

  • Если у неё детей нет, тогда на неё смотрит Саша.
  • Опять ответ — Да, смотрит.

Задача треугольник для тестировщика

Т.е. в любом случае ответ будет Да.

Видео:9 класс, 15 урок, Решение треугольниковСкачать

9 класс, 15 урок, Решение треугольников

Загадка при приеме в компанию TESLA

Рассказывают, что Илон Маск, глава этой кампании, при приеме на работу предлагает новобранцам решить такую задачу:

«Ты находишься в определенной точке на Земле. И вот ты проходишь милю на юг, потом милю на запад, милю на север, и в конце концов возвращаешься в исходную точку. Где же ты находишься? Что это за точка на Земле?»

Если пройти от северной макушки Земли одну милю на юг, еще одну на запад и еще одну на север, то вернёшься туда, откуда стартовал — на Северный полюс.

Ваш путь похож на треугольник. Ведь вы на поверхности шара! Большинство кандидатов на собеседованиях в компании Маска отвечают именно так. Но бизнесмену этого мало, поэтому он спрашивает претендентов: «Где еще может быть такая точка?»

Эта точка находится возле Южного полюса на одну милю на север от параллели, длина которой равна одной миле.

Ну точка не на самом же полюсе! Ведь вам надо идти по условиям задачи на Юг.

Видео:Подобие треугольников (ч.2) | Математика | TutorOnlineСкачать

Подобие треугольников (ч.2) | Математика | TutorOnline

Задача головоломка от компании Google

Этой задаче точно более 10 лет. Но ее предлагают решить при поступлении в компанию Google.

Перед вами на столе 8 шаров. Можно ли и если «ДА», то как узнать самый тяжелый шар за 2 взвешивания?

Обычно я видел быстрый ответ Да и далее решение. Но в условии не сказано, какие весы у вас есть. Если современные цифровые или стрелочные- то за два раза решить не получиться.

Для решения нужны рычажные весы с двумя чашками. Чтобы определять больше — меньше.

Тогда все просто:

  • На каждую чашу весов кладем по 3 шара. Два осталось.
  • Есть три варианта:
  1. Весы в равновесии. Определяем из двух оставшихся вторым взвешиванием самый тяжелый.
  2. Одна чаша тяжелее. Тогда при втором взвешивании кладем на весы по одному шару из тяжелой группы. Если вес равен- третий шар самый тяжелый. А если нет- то из взвешивания и так понятно, какой тяжелее.

📽️ Видео

Геометрия 7 класс (Урок№25 - Прямоугольные треугольники.)Скачать

Геометрия 7 класс (Урок№25 - Прямоугольные треугольники.)

Подобие треугольников. Признаки подобия треугольников (часть 1) | МатематикаСкачать

Подобие треугольников. Признаки подобия треугольников (часть 1) | Математика

Решение прямоугольных треугольников. Практическая часть. 8 класс.Скачать

Решение прямоугольных треугольников. Практическая часть. 8 класс.

Сумма углов треугольника. Геометрия 7 класс | МатематикаСкачать

Сумма углов треугольника. Геометрия 7 класс | Математика

Геометрия 7 класс (Урок№13 - Равнобедренный треугольник.)Скачать

Геометрия 7 класс (Урок№13 - Равнобедренный треугольник.)

Какая основная задача тестирования? #shorts #тестировщик #собеседование #обучение #qaСкачать

Какая основная задача тестирования? #shorts #тестировщик #собеседование #обучение #qa
Поделиться или сохранить к себе: