Сегодня был (пока писал уже следующий день наступил, значит уже вчера 🙂 ) на собеседовании не скажу в какой компании. Меня попросили решить задачку по функциональному тестированию, связанную с треугольниками.
Условия задачи звучат так. Нужно протестировать консольное приложение, которое на вход принимает 3 целых числа, интерпретируемые как длины сторон треугольника, а на выходе выводит на экран является ли введенный треугольник равнобедренным или равносторонним. Предложите конкретные значения тестовых данных, которые Вы будете использовать для тестирования такого приложения.
Вот мое решение (конечно, на собеседовании я отвечал чуть похуже, но при написании этого поста у меня было время подумать 🙂 ):
- 3 3 5 — равнобедренный треугольник
- 3 5 3 — равнобедренный треугольник (направлен на выявления дефектов, связанных с неправильным извлечением исходных данных во внутренние переменные или последующим использованием этих переменных)
- 5 3 3 — равнобедренный треугольник (направлен на выявления дефектов, связанных с неправильным извлечением исходных данных во внутренние переменные или последующим использованием этих переменных)
- 5 5 5 — равносторонний треугольник
- 2147483647 2147483647 1 — равнобедренный треугольник — проверяем работу с переполнением целых чисел (2147483647 + 1 = -2147483648, 2147483647 = 2^31 — 1)
- 2147483647 1 2147483647 — равнобедренный треугольник — проверяем работу с переполнением целых чисел (2147483647 + 1 = -2147483648, 2147483647 = 2^31 — 1)
- 1 2147483647 2147483647 — равнобедренный треугольник — проверяем работу с переполнением целых чисел (2147483647 + 1 = -2147483648, 2147483647 = 2^31 — 1)
- 4294967295 4294967295 1 — равнобедренный треугольник — проверяем работу с переполнением целых чисел для случая беззнаковых чисел (4294967295 + 1 = 0, 4294967295 = 2^32 — 1)
- 4294967295 1 4294967295 — равнобедренный треугольник — проверяем работу с переполнением целых чисел для случая беззнаковых чисел (4294967295 + 1 = 0, 4294967295 = 2^32 — 1)
- 1 4294967295 4294967295 — равнобедренный треугольник — проверяем работу с переполнением целых чисел для случая беззнаковых чисел (4294967295 + 1 = 0, 4294967295 = 2^32 — 1)
- 3.0 3.0 5 — обработка целых значений в формате дробных значений (вариант 1) — требуется уточнение спецификации на приложение
- 3.0 5 3.0 — обработка целых значений в формате дробных значений (вариант 2) — требуется уточнение спецификации на приложение
- 5е1 3е1 3е1 — экспоненциальная нотация — требуется уточнение спецификации на приложение
- 3t3t5 — символ Tab между введенными значениями — требуется уточнение спецификации на приложение
- 3 3 5 — 2 пробела между введенными значениями — требуется уточнение спецификации на приложение
- 3 3 5 — 3 пробела между введенными значениями — требуется уточнение спецификации на приложение
- 4 2 3 — треугольник, у которого все стороны различаются по длине
- 5 2 1 — две стороны слишком короткие (вариант 1)
- 2 5 1 — две стороны слишком короткие (вариант 2)
- 2 1 5 — две стороны слишком короткие (вариант 3)
- 2 2 4 — две стороны слишком короткие — проверка строгих неравенств (вариант 1)
- 2 4 2 — две стороны слишком короткие — проверка строгих неравенств (вариант 2)
- 4 2 2 — две стороны слишком короткие — проверка строгих неравенств (вариант 3)
- -1 -1 3 — проверка отсечения отрицательных значений для чисел 1 и 2 (возможно избыточный, т.к. код, проверяющий слишком короткие стороны должен отсечь такие данные: (-1) + (-1) > 3 — ложно)
- -1 3 -1 — проверка отсечения отрицательных значений для числа 1 и 3 (возможно избыточный, т.к. код, проверяющий слишком короткие стороны должен отсечь такие данные: (-1) + (-1) > 3 — ложно)
- 0 2 2 — проверка нулевых значений для числа 1 (возможно избыточный, т.к. код, проверяющий слишком короткие стороны по строгим неравенствам должен отсечь такие данные: 0 + 2 > 2 — ложно)
- 2 0 2 — проверка нулевых значений для числа 2 (возможно избыточный, т.к. код, проверяющий слишком короткие стороны по строгим неравенствам должен отсечь такие данные: 0 + 2 > 2 — ложно)
- 2 2 0 — проверка нулевых значений для числа 3 (возможно избыточный, т.к. код, проверяющий слишком короткие стороны по строгим неравенствам должен отсечь такие данные: 0 + 2 > 2 — ложно)
- 0.3 0.3 5 — корректная обработка дробных значений — выдача сообщения об ошибки (вариант 1)
- 0.3 5 0.3 — корректная обработка дробных значений — выдача сообщения об ошибки (вариант 2)
- 5A 3 3 — нечисловые значения (вариант 1)
- 3 5A 3 — нечисловые значения (вариант 2)
- 3 3 5A — нечисловые значения (вариант 3)
- 2 2 — недостаточно данных — 2 числа
- 2 — недостаточно данных — 1 число
- «пустой ввод» — недостаточно данных — «пустой ввод»
3 comments — :
( 3 comments — Leave a comment )
Практика и опыт для QA / Тестируем треугольники / Что ответили с WG??? Тестировщик 2.0
Тестирование треугольника
Маловато будет.
с одной стороны, построение модели, как оно могло быть сделано в коде — это полезно. Но опасность такого подхода заключается в том, что тесты пишутся на основе ТОЛЬКО этой модели, в то время как в реальности программа может быть написана совершенно по-другому.
Первое, что бросается в глаза, — невариативность данных для проверки схожих кейсов (5 3 3 и 3 3 5). Если есть возможность, то для проверки случая равнобедренности по сторонам a и b лучше использовать другие данные, чем для проверки b и с. Кейсов столько же, а покрытие получается больше.
4 2 3 — позитивный тест, поскольку это треугольник. И требуется уточнение спецификации, что программа выдает в этом случае.
Не проверено:
отдельно буквы (без цифры перед ней)
реакция на спец-символы, в том числе непечатные и управляющие
переполнение short int (например, в дельфи) 127, 127, 127 и 128, 128, 128
минимальный треугольник 1,1,1;
корректность парсинга вводимых данных — если, например, берутся только первые 2 символа из каждого ввода после разделителя, то все вышепечисленные тесты пройдут успешно, а программа тем не менее, будет работать неправильно.
реакция на буквы, входящие в hex (A-F), как в сочетании с цифрами, так и без них;
переполнение int, long при проверке того, что сумма двух сторон должна быть больше третьей (кейсы с большими числами есть только в позитивных тестах. А если позитивные проверки реализованы перед негативными в программе?)
Специальный случай из трех нудей — 0,0,0
Явно заданные позитивные числа (со знаком + перед числом)
простые дроби (формат 2/3)
пустой ввод посередине
ввод более трех значений
ввод очень больших чисел (100, 1000, 10000, 100000 значащих цифр)
отрицательные числа в экспоненциальной нотации
дробные отрицательные числа
задание только отрицательных чисел
ввод данных в виде выражений, которые ммогут быть вычислены (2+3, 4-1, 3*2)
большая часть вышеперечисленных проверок должна быть проведена как для равностороннего, так и для равнобедренного и для простого треугольников
равнобедренный?
QA начинает с тестирования документации))
А на Selenium это как можно реализовать?
Edited at 2021-02-08 06:45 am (UTC)
( 3 comments — Leave a comment )
8 Feb 2021, 06:45
А на Selenium это как можно реализовать?
5 Oct 2020, 12:29
равнобедренный?
QA начинает с тестирования документации))
4 Jul 2016, 00:06
8 Dec 2013, 11:43
чинится отключением нативного управления браузером (EnableNativeEvents = false):
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.native_events_enabled = False
driver =…
Источник: dmugtasimov-pro.livejournal.com
задача — тестирование подсчета типа треугольника
правильный неравносторонний треугольник?
слово «правильный» (в определении треугольника) лишнее везде. Постольку, поскольку «правильный» — это есть «равносторонний»
явилось контр-аргументом, посильнее моих обоснований (спасибо, может вам больше поверят), т.к. очевидно, надо понимать, что правильный неравносторонний треугольник — это равносторонний неравносторонний треугольник. Поскольку это не имеет абсолютно никакого смысла, следовательно, и задача несодержательна.
vastenly, я с вами согласен.
#42
demitra91
Отправлено 17 декабря 2012 — 11:23
Есть пример программы — на вход даются 3 числа, на выходе — тип треугольника — равнобедренный, равносторонний, простой.
Как и что будем тестить? 🙂
Начнём:
1) имеет место математическая безграмотность сформулировавших данную задачу. Заметим, равносторонний треугольник является равнобедренным, следовательно на выходе программы могут быть только два типа треугольника — равнобедренный и простой!
Равносторонний треугольник, безусловно, является равнобедренным. А вот обратное утверждение неверно, так что типов остается три.
2) очевидно, но невероятно: как при странной постановке задачи некоторые выдали десятки «стоящих» тестов!?
Тест там, очевидно, один (если под тестом понимается определенный сценарий взаимодействия с программой). А вот вариаций тестовых данных к нему, которые стоит проверить, — много. Готов на спор предложить более трех десятков, которые необходимо проверить.
Знаю, где это задание дают на собеседовании тестерам. 🙂
Передайте, пожалуйста, туда, где эти задания дают, чтобы они не позорились (а то тестеры, получив такое на собеседовании, будут сразу вставать и уходить искать работу в другой компании)
Ну вот я даю такое задание. Именно в приведенной формулировке. Готов выслушать, почему кандидаты должны вставать и уходить.
Сразу выдам спойлер: за все время ни один из кандидатов не привел даже 50% ейсов, которые стоит проверить. Обычно я считаю 30% хорошим результатом, говорщим о том, что кандидат владеет навыками тест-дизайна.
исправили своё задание:
на выходе следует ожидать одно из 5 значений:
1 — невырожденный треугольник, у которого все 3 стороны равны;
2 — невырожденный, у которого только 2 стороны равны;
3 — невырожденный, у которого нет равных сторон;
4 — вырожденный треугольник;
5 — в случае ошибки ввода/обработки.
А почему так, если я ожидаю на выходе увидеть тип треугольника, а не 1,2,3,4,5?
Большое спасибо за статистику по кандидатам. Самой попало как-то такое задание и оно меня очень зацепило. Я до сих пор иногда в транспорте о нем рассуждаю.
#43
mike1999
Отправлено 11 сентября 2015 — 09:22
«тестирование подсчета типа треугольника»
Я вот в тестировании 8 лет, на текущей работе уже тест-лид, сам собеседовал не раз. Решил сменить компашку, до этого собеселования нигде не проходил. И что вы думаете — на первом же интервью мне выдают задачу (дословно):
«- Составьте пожалуйста список тестов, для функции, на входе которой три параметра, а на выходе треугольник»
повторяю — это была дословная постановка задачи. И с умным видом он откинулся на спинку кресла.
Это мне предложил технарь из компании «Открытые технологии». ТЕХНАРЬ БЛ. вы мне скажИте какие это параметры. » . что за параметры, что за треугольник на выходе. попробуй догадайся. Ну я ему совставил кейсы для троек координат в пространстве(отголоски текущей работы) .
. к чему это я .. А да. товарищи собеседующие кандидатов, прежде чем тестить кандидата потрудитесь вникнуть в суть задачь. Оригинальная задача звучит так: «Составьте список тестов для функции, в которую передается три значения длин, а на выходе функция выдает — одно значение BOOLEAN — true, если существует треугольник со сторонами такой длины, и false если не существует».
В случае если функция до кучи определяет тип треугольника — половина ответов, что тут написана — полная бредятина, 50кейсов это заява от кого? Кто-нибудь вообще слышал об избыточности тестов? С таким подходом тестирование по стоимости будет в несколько раз дороже всего остального проекта + все как макаки уперлись в этот треугольник, никто даже не заикнулся про проверки максимальных значений, про проверку требований, явных, неявных, производительность. мы функцию проверяем, а не треугольник.
Опять же к чему это я. а да. на собеседовании постарайтесь не бросаться на составление максимального числа перестановок и конкретных значений. При любой задаче на составление тестов уточните непонятные моменты, составьте микро тест-план, составьте микро-список требований, разделите из на приоритетные и нет, постройте в голове маленькое оглавление для сценария — типа — Смок, функционал, производительность, юзабилити(+эргономика), безопасность, окружение. и тд, все виды и подвиды, какие вспомните, далее по каждому пункту определите нужен он или нет. Далее наиболее критичные тесты. Не бойтесь записывать.
При таком подходе грамотный собеседующий тех увидит что вы умеете думать, а не тупо выписываете все возможные комбинации из трех чисел.
Как пример, периодически даем на проверку кандидату форму доступа путем ввода пятизначного цифрового пароля, для сенсорного терминала, и просим «на лету» протестировать и составить отчет.
Форма намеренно заторможена на нажание кнопки «0» — пауза секунд 5.
Правильный пароль известен.
На форме цифры, спецсимволы ,»Отмена», «Вход», «Язык», у тестера есть возможность задать правильный пятизначный пароль обычным апдейтом на рядом стоящем компе.
Все кидаются проверять и перебирать пароли.
Половина не замечают тормозов другая половина, замечает, матерится на тормоза, но в отчете не указывает.
Половина вводит только пятизначные значения.
Половина вводит только цифры.
95% не проверяют вход при пустом пароле и вход с пустым паролем о комбинациях(0/NULL) я уже не говорю.
95% не проверяют кнопку «Отмена».
95% не уточняют может ли пароль содержать спецсимволы с клавиатуры терминала.
Один человек за 3 года проверил смену языка.
Никто не проверяет добавление к правильному паролю других цифр и спецсимволов.
Никто не проверяет обрезанный с конца пароль.
И при этом все кандидаты надрочены на логические задачи про треугольники и лампочки, а если задачек не дают, то на лице истинное разочарование — как же так я ведь весь интернет прочитал, а вы меня совсем не то спрашивали.
Ох скока я понаписал.
#44
CVDX
Отправлено 21 декабря 2015 — 08:03
Половина вводит только пятизначные значения.
Половина вводит только цифры.
95% не проверяют вход при пустом пароле и вход с пустым паролем о комбинациях(0/NULL) я уже не говорю.
95% не проверяют кнопку «Отмена».
95% не уточняют может ли пароль содержать спецсимволы с клавиатуры терминала.
Один человек за 3 года проверил смену языка.
Никто не проверяет добавление к правильному паролю других цифр и спецсимволов.
Блин, хоть один нормальный нашелся 😉 Я только это и умею.
А вот на это никогда не заморачивался:
кандидаты надрочены на логические задачи про треугольники и лампочки
#45
leshanuliuda
leshanuliuda
Отправлено 28 января 2018 — 22:13
«тестирование подсчета типа треугольника»
Я вот в тестировании 8 лет, на текущей работе уже тест-лид, сам собеседовал не раз. Решил сменить компашку, до этого собеселования нигде не проходил. И что вы думаете — на первом же интервью мне выдают задачу (дословно):
«- Составьте пожалуйста список тестов, для функции, на входе которой три параметра, а на выходе треугольник»
повторяю — это была дословная постановка задачи. И с умным видом он откинулся на спинку кресла.
Это мне предложил технарь из компании «Открытые технологии». ТЕХНАРЬ БЛ. вы мне скажИте какие это параметры. » . что за параметры, что за треугольник на выходе. попробуй догадайся. Ну я ему совставил кейсы для троек координат в пространстве(отголоски текущей работы) .
. к чему это я .. А да. товарищи собеседующие кандидатов, прежде чем тестить кандидата потрудитесь вникнуть в суть задачь. Оригинальная задача звучит так: «Составьте список тестов для функции, в которую передается три значения длин, а на выходе функция выдает — одно значение BOOLEAN — true, если существует треугольник со сторонами такой длины, и false если не существует».
В случае если функция до кучи определяет тип треугольника — половина ответов, что тут написана — полная бредятина, 50кейсов это заява от кого? Кто-нибудь вообще слышал об избыточности тестов? С таким подходом тестирование по стоимости будет в несколько раз дороже всего остального проекта + все как макаки уперлись в этот треугольник, никто даже не заикнулся про проверки максимальных значений, про проверку требований, явных, неявных, производительность. мы функцию проверяем, а не треугольник.
Опять же к чему это я. а да. на собеседовании постарайтесь не бросаться на составление максимального числа перестановок и конкретных значений. При любой задаче на составление тестов уточните непонятные моменты, составьте микро тест-план, составьте микро-список требований, разделите из на приоритетные и нет, постройте в голове маленькое оглавление для сценария — типа — Смок, функционал, производительность, юзабилити(+эргономика), безопасность, окружение. и тд, все виды и подвиды, какие вспомните, далее по каждому пункту определите нужен он или нет. Далее наиболее критичные тесты. Не бойтесь записывать.
При таком подходе грамотный собеседующий тех увидит что вы умеете думать, а не тупо выписываете все возможные комбинации из трех чисел.
Как пример, периодически даем на проверку кандидату форму доступа путем ввода пятизначного цифрового пароля, для сенсорного терминала, и просим «на лету» протестировать и составить отчет.
Форма намеренно заторможена на нажание кнопки «0» — пауза секунд 5.
Правильный пароль известен.
На форме цифры, спецсимволы ,»Отмена», «Вход», «Язык», у тестера есть возможность задать правильный пятизначный пароль обычным апдейтом на рядом стоящем компе.
Все кидаются проверять и перебирать пароли.
Как результат :
Половина не замечают тормозов другая половина, замечает, матерится на тормоза, но в отчете не указывает.
Половина вводит только пятизначные значения.
Половина вводит только цифры.
95% не проверяют вход при пустом пароле и вход с пустым паролем о комбинациях(0/NULL) я уже не говорю.
95% не проверяют кнопку «Отмена».
95% не уточняют может ли пароль содержать спецсимволы с клавиатуры терминала.
Один человек за 3 года проверил смену языка.
Никто не проверяет добавление к правильному паролю других цифр и спецсимволов.
Никто не проверяет обрезанный с конца пароль.
И при этом все кандидаты надрочены на логические задачи про треугольники и лампочки, а если задачек не дают, то на лице истинное разочарование — как же так я ведь весь интернет прочитал, а вы меня совсем не то спрашивали.
Ох скока я понаписал.
Ребята вот наконец я прочла что то понятное для тех кто ничего не понимает в этом и хоть примерно теперь понимаю о чем я читаю . Я человек из другой области я предприниматель решила поменять профессию и вот читаю форум и эту всю белиберду о треугольниках и понимаю ЧТО Я ТУТ ДЕЛАЮ? Да для меня тестирование это далекое что то, но я надеялась что буду учиться и пойму.Но читая форум я только запуталась и теперь вообще ничего не понимаю.
Изначально я не поняла где надо было писать эти цифры слышала только что надо написать 3 цифры и нажать проверить где писать цифры, где эта кнопка проверить? Записалось не все но и в записи я тоже ничего не поняла. написала преподавателю он сказал что на листе бумаги надо было цифры писать А КНОПКУ ПРОВЕРИТЬ тоже на бумаге нажимать?
Кто мне объяснит на простом языке что это такое и с чем это кушается? Как вижу тут сидят тестеры которые давно работают и я которая в этом вообще ничего не понимаю. А как делать домашнее задание если не понятно ничего?
Есть кто то тут что подскажет простым языком как что делать?Нужно сначала бы примеры заданий и их решение потому что я вообще не понимаю в каком направлении двигаться. Нужно же какой то пример по крайней мере мне. Я умоляю вас хоть киньте мне ссылки на примерные упражнения и их решение. Мне надо с кем то поговорить иначе я не пойму.Мой вайбер ватсап 89101154846.
Источник: software-testing.ru
(Решено) протестировать программу, которая определяет тип треугольника по трем его сторонам. каждая из сторон задается в отдельном текстовом поле …
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
Для тестирования программы, которая определяет тип треугольника по трем его сторонам, можно использовать следующий алгоритм:
1. Создать тестовые кейсы для всех возможных комбинаций длин сторон треугольника.
2. Запустить программу и ввести в неё значения сторон треугольника в соответствующие текстовые поля.
3. Проверить корректность результата, полученного программой.
Для создания тестовых кейсов нужно учитывать, что существует три типа треугольников – равносторонний, равнобедренный и разносторонний. Равносторонний треугольник имеет три равные стороны, равнобедренный треугольник – две одинаковые стороны, а разносторонний треугольник – все три стороны разной длины.
Таким образом, для того чтобы протестировать программу, необходимо создать тестовые кейсы для всех трех типов треугольников. Например:
Тестовый кейс 1. Равносторонний треугольник.
Входные данные: сторона 1 = 5, сторона 2 = 5, сторона 3 = 5.
Ожидаемый результат: программа должна вывести сообщение «Равносторонний треугольник».
Тестовый кейс 2. Равнобедренный треугольник.
Входные данные: сторона 1 = 3, сторона 2 = 3, сторона 3 = 4.
Ожидаемый результат: программа должна вывести сообщение «Равнобедренный треугольник».
Тестовый кейс 3. Разносторонний треугольник.
Входные данные: сторона 1 = 4, сторона 2 = 5, сторона 3 = 6.
Ожидаемый результат: программа должна вывести сообщение «Разносторонний треугольник».
После создания тестовых кейсов можно приступить к тестированию программы. Для этого нужно запустить программу и ввести в нее значения сторон треугольника в соответствующие текстовые поля. Затем необходимо проверить корректность выведенного результата по ожидаемому результату из тестовых кейсов.
Если программа вывела некорректный результат, необходимо провести отладку и исправить ошибку в коде. После корректировки кода необходимо повторно протестировать программу, чтобы проверить, что она работает корректно.
Чтобы оставить комментарий, необходимо авторизоваться.
Задай любой вопрос нейросети!
она справится с любой поставленной задачей быстрее чем поиск в Яндекс.
Для того, чтобы задать вопрос нейросети, необходимо войти на сайт.
Последние вопросы
Искусственный интеллект ChatGPT на русском: полный обзор, возможности и использование
(Решено) Первый год обучения двух парней, которые ненавидят друг друга, в русском институте магии…
(Решено) Напиши красивое объяснение, почему Ольга котик…
(Решено) Что должно входить в техническую поддержку голосового робота для телефонных звонков…
(Решено) Должен ли http-ответ содержать заголовок Host….
(Решено) Первый год обучения двух парней в русской школе магии…
(Решено) Мне 24 года, рост 186, вес 120 кг. Через к месяца у меня свадьба и я хочу похудеть к ней до 95 кг. Что мне нужно начать делать уже завтра, чтобы добит…
(Решено) Почему ультразвуковые отпугиватели не вызывают привыкания у животных?…
(Решено) Что приготовить из филе бедра индейки…
(c) ChatGPT по русски 2023. Все права защищены. При обнаружении неправомерного контента пишите на [email protected]
Хотите задать любой вопрос нейросети?
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет»
Форма репорта неправомерного контента.
Обратная связь с администрацией проекта
Уведомление об использовании cookie файлов
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie и других похожих технологий в соответствии с настоящим Уведомлением.
Если Вы не согласны, чтобы мы использовали данный тип файлов, Вы должны соответствующим образом установить настройки Вашего браузера или не использовать наш сайт.
Обращаем Ваше внимание на то, что при блокировании или удалении cookie файлов, мы не можем гарантировать корректную работу нашего сайта в Вашем браузере.
Cookie файлы, которые сохраняются через веб-сайт, не содержат сведений, на основании которых можно Вас идентифицировать.
Что такое файл cookie и другие похожие технологии
Файл cookie представляет собой небольшой текстовый файл, сохраняемый на вашем компьютере, смартфоне или другом устройстве, которое Вы используете для посещения интернет-сайтов.
Некоторые посещаемые Вами страницы могут также собирать информацию, используя пиксельные тэги и веб-маяки, представляющие собой электронные изображения, называемые одно-пиксельными (1×1) или пустыми GIF-изображениями.
Файлы cookie могут размещаться на вашем устройстве нами («собственные» файлы cookie) или другими операторами (файлы cookie «третьих лиц»).