задачка для тестирования
#21
Отправлено 16 марта 2010 - 17:40
dfglkjfg вапдловаып (*№%%;
123 кпедлfgd лавпав п() вадпоа ()
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#22
Отправлено 25 октября 2010 - 11:20
procedure void Name(int i, long l, long l, ... long l)
Т.к. {, <param type> <param name>}, а вики утверждает, что "{A} — ноль или более элементов"
#23
Отправлено 25 октября 2010 - 11:47
будет. да.Хммм... Интересно... Подскажите, а будет ли возможен такой вариант, верен ли он?
procedure void Name(int i, long l, long l, ... long l)
#24
Отправлено 21 ноября 2010 - 12:39
на курсах нас учили, что когда вводишь неверные входные данные, не надо делать ошибки сразу в нескольких местах, иначе не поймешь, на чем именно программа ошибается.
например: procedure Na*me() - и void пропущен, и в названии идентификатора недопустимый символ (http://java.sun.com/...ical.html#40625 - это,кстати, про требования Java)
так вот, а можно ли в положительных тестовых входных данных объединять такие вещи, например, проверять и на правильность структуры и на правильность написания идентификатора (чтобы уменьшить кол-во):
procedure void NaMe()
procedure void n(int i)
procedure void N2(long l2)
procedure void _Na_me_(int _i_ii_)
Или правильнее проверять эти:
Procedure void Name()
procedure void Name(int i)
procedure void Name(long l)
procedure void Name(int i, long l) +
procedure void n1a2m3e9()
procedure void _na_me_() и т.д.?
#25
Отправлено 21 ноября 2010 - 15:00
Добрый день! возник такой вопрос:
на курсах нас учили, что когда вводишь неверные входные данные, не надо делать ошибки сразу в нескольких местах, иначе не поймешь, на чем именно программа ошибается.
например: procedure Na*me() - и void пропущен, и в названии идентификатора недопустимый символ (http://java.sun.com/...ical.html#40625 - это,кстати, про требования Java)
так вот, а можно ли в положительных тестовых входных данных объединять такие вещи, например, проверять и на правильность структуры и на правильность написания идентификатора (чтобы уменьшить кол-во):
1. Неверные входные данные.
Делать ли ошибки в нескольких местах или нет, нужно решать в контексте. Иногда в смоук тестах я использую сложные входные данные со множеством ошибок, что бы проверить всё ли правильно работает. Т.к. участок ранее тестировался, то вероятность, что тест провалится мала, а мы в сою очередь экономим время. Если же тест провалился, то прогоняется тест-комплект, состоящий из тестов с одной ошибкой во входных данных и баг локализуется. Однако тут есть ещё больший подводный камень, который проще объяснить на примере:
Допустим, в адресной строке имеем: http://example.com\a...tegory=3&id=123 . Весьма часто, когда идёт запрос по этому URL, в начале проверяется наличие данной категории, а затем уже статья. Следовательно, если мы перейдём по ссылке http://example.com\a...e?category=&id=' , нам отобразиться 404 страница и фильтрация параметра id проверена не будет.
2. Верные входные данные
Сужу по своему опыту, почти во всех ситуациях сложные позитивные входные данные оказываются равносильны множеству входных данных, проверяющих лишь один элемент. Однако и тут может статься так, что минус на минус даст плюс и мы пропустим ошибку. Поэтому, лучше всё-таки проверять каждое требование\элемент отдельно и только в смоук тестах и хорошенько всё обдумав использовать лишь сложные входные данные.
3. Связи между элементами
Ещё не стоит забывать о том, что некоторые элементы могут зависеть друг от друга и в тестах стоит использовать так же и различные комбинации ( как пример pairwise testing )
#26
Отправлено 16 декабря 2010 - 10:51
По грамматике языка очень задешево можно сделать автоматические генераторы как положительных, так и отрицательных цепочек. Любой сложности.
Думаю, что разработчики компиляторов так и делают.
#27
Отправлено 16 декабря 2010 - 18:37
Неужели где-то тестируют лексические анализаторы вручную?
По грамматике языка очень задешево можно сделать автоматические генераторы как положительных, так и отрицательных цепочек. Любой сложности.
Думаю, что разработчики компиляторов так и делают.
1. Это вроде как задачка, а не настоящее техническое задание:
Наткнулась на тестовое задание яндекса.
2. А чем в точности тестирование компилятора отличается от тестирования обычного ПО?
P.S. http://web.me.com/fl...bliography.html
#28
Отправлено 17 декабря 2010 - 07:20
ИМХО. В том же, в чем отличается сам компилятор от обычного ПО. Жесткими требованиями к качеству и практически абсолютно формализованной постановкой задачи (грамматика языка).2. А чем в точности тестирование компилятора отличается от тестирования обычного ПО?
#29
Отправлено 17 декабря 2010 - 07:38
Существует множество ПО, обладающее теми же характеристиками: банковское, медицинское, аэрокосмическое, etc.ИМХО. В том же, в чем отличается сам компилятор от обычного ПО. Жесткими требованиями к качеству и практически абсолютно формализованной постановкой задачи (грамматика языка).
#30
Отправлено 19 декабря 2010 - 08:15
То, о чём Вы говорите, корректно для позитивных проверок, но не для негативных.1. Неверные входные данные.
Делать ли ошибки в нескольких местах или нет, нужно решать в контексте. Иногда в смоук тестах я использую сложные входные данные со множеством ошибок, что бы проверить всё ли правильно работает. Т.к. участок ранее тестировался, то вероятность, что тест провалится мала, а мы в сою очередь экономим время. Если же тест провалился, то прогоняется тест-комплект, состоящий из тестов с одной ошибкой во входных данных и баг локализуется.
Что-то мне подсказывает, что комбинировать негативные проверки без ущерба покрытию невозможно (и в smoke-тестах Вы получите не просто нелокализованную проблему, а риск пропуска дефекта за корректной ошибкой).
Если я что-то не учла - приведите конкретный пример, когда можно комбинировать негативные тесты?
Обучение для профессионалов: Школа тест-менеджеров | Школа тест-аналитиков | Школа Тестировщиков
Услуги для тест-менеджеров: Аутсорсинг тестирования | Поиск тестировщиков | Консалтинг
#31
Отправлено 19 декабря 2010 - 10:12
А я вот вообще сомневаюсь, что для smoke использование негативных тестов оправдано.То, о чём Вы говорите, корректно для позитивных проверок, но не для негативных.
1. Неверные входные данные.
Делать ли ошибки в нескольких местах или нет, нужно решать в контексте. Иногда в смоук тестах я использую сложные входные данные со множеством ошибок, что бы проверить всё ли правильно работает. Т.к. участок ранее тестировался, то вероятность, что тест провалится мала, а мы в сою очередь экономим время. Если же тест провалился, то прогоняется тест-комплект, состоящий из тестов с одной ошибкой во входных данных и баг локализуется.
Что-то мне подсказывает, что комбинировать негативные проверки без ущерба покрытию невозможно (и в smoke-тестах Вы получите не просто нелокализованную проблему, а риск пропуска дефекта за корректной ошибкой).
Если я что-то не учла - приведите конкретный пример, когда можно комбинировать негативные тесты?
#32
Отправлено 19 декабря 2010 - 11:59
То, о чём Вы говорите, корректно для позитивных проверок, но не для негативных.
Что-то мне подсказывает, что комбинировать негативные проверки без ущерба покрытию невозможно (и в smoke-тестах Вы получите не просто нелокализованную проблему, а риск пропуска дефекта за корректной ошибкой).
Если я что-то не учла - приведите конкретный пример, когда можно комбинировать негативные тесты?
Пример: форма с валидаторами. Каждый пункт обрабатывается отдельно от остальных (в данном случае просто примем как должное). Этих пунктов за сотню, будем считать, что их 100 штук. При нажатии на сабмит, проверяется каждое поле и если значение не валидное, выдаётся сообщение рядом с самим полем.
Тест-кейс:
1. Вбиваем во все поля невалидные значения
2. Сабмитим
3. Анализируем сообщения об ошибках
А я вот вообще сомневаюсь, что для smoke использование негативных тестов оправдано.
Если абстрагироваться, то я с Вами согласен. Однако случаи бывают разные и иногда важность реакции на негативные кейсы очень велика.
#33
Отправлено 21 декабря 2010 - 12:45
Но компиляторы - самое "рафинированное" ПО из перечисленных.Существует множество ПО, обладающее теми же характеристиками: банковское, медицинское, аэрокосмическое, etc.
#34
Отправлено 30 марта 2011 - 18:03
а в чем проблема-то? :)
составляешь классы эквивалентности для входных данных и для каждого делаешь пример.
тут получается не очень много.
я это задание тоже когда-то делал, и, по всей видимости, успешно, т.к. получил следующее :)
А что за классы эквивалентности?
Например для этого примера какой класс эквивалентности будет?
#35
Отправлено 08 апреля 2011 - 14:20
а в чем проблема-то? :)
составляешь классы эквивалентности для входных данных и для каждого делаешь пример.
тут получается не очень много.
я это задание тоже когда-то делал, и, по всей видимости, успешно, т.к. получил следующее :)
Насколько я понял, почитав о классах эквивалентности, в данном случае входные данные можно поделить на сл. классы:
1) Если на вх.:
procedure <return type> <name> ()(соотв. с ошибкой (ошибками) в этом классе или без)
2) Если на вх.:
procedure <return type> <name> (<param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
3) Если на вх.:
procedure <return type> <name> (<param type> <param name>, <param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
(Класс для 3 и более "param type> <param name>", правда не знаю, нужен ли он):
4) Если на вх.:
procedure <return type> <name> (<param type> <param name>, <param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
Соотв. далее для этих 4 классов составляются тесты. Как уже было упомянто выше:
тесты, на которых должно проходить:
procedure void Name()
procedure void Name(int i)
procedure void Name(long l)
procedure void Name(int i, long l)
+ аналогично для <return type> = int
тесты, на которых должно выдавать ошибку:
procedure void ()
procedure Name()
procedure long Name()
procedure int Name(string s)
procedure int Name(int i long l)
...
также проверить "<name>, <param name> - идентификаторы, соответствующие требованиям java" - попробовать начать с цифры, например. я требования java уже точно не помню.
Т.е. помимо этих вариантов, надо, как я понимаю, ещё добавить 3-4 теста на проверку есть ли ошибки в написании или орфографии.
#36
Отправлено 14 апреля 2011 - 10:59
#37
Отправлено 15 апреля 2011 - 09:31
Тест сдал успешно. Пригласили на собеседование. Завтра еду к ним. Надеюсь устроюсь. ))
Удачи! :)
#38
Отправлено 16 апреля 2011 - 07:27
Потом дали: "Нужно протестировать консольное приложение, которое на вход принимает 3 целых числа, интерпретируемые как длины сторон треугольника, а на выходе выводит на экран является ли введенный треугольник равнобедренным или равносторонним. Предложите конкретные значения тестовых данных, которые Вы будете использовать для тестирования такого приложения."
Не до конца понял как в данном случае разделить тесты на классы эквивалентности, граничные значения и прочее, прочее.
Попытался вначале на классы: на выходе - ответ: равноб. треуг., ответ: равностор. треуг., ответ: ошибка, причина ошибки.
Потом попробовал разделить по типу вводимых данных: только целые (>0), только целые (<0) и тд...
В общем так или иначе выдал пачку тестов. Но забыл про случаи, когда пользователь может либо ничего подать на вход, либо забыть один или два значения указать, ввести не цифры или буквы и тд. Когда меня спросили, ничего ли я не забыл, сразу про эти варианты сообразил и сразу упомянул их. Дальше попросили показать, как бы я написал такую программку на пёрле (не тестирование, саму программку). Тут у меня то ли от нервов, то ли ещё что баш с пёрлом "переплелись" и я в пёрловском скрипте воспользовался башовскими функциями, меня поправили, вообщем в с грехом пополам с этой задачкой справился, вроде как.
Дальше дали задание "развернуть односвязный список". Тут я и сел в лужу, потому, как подзабыл как это делается. Попытался сам придумать как это сделать. Выдал им свою теорию, попросили показать, как я бы это реализовал на c/c++, чего сделать не смог, ибо уже давно с сями не работал, опять же многое подзабыл. В итоге, после всех моих мытарств сказали: "позвоним в течение недели,сообщим о своём решении".
ps. В целом собеседование было очень неплохое, они где-то меня пытались направить в верном направлении ответа и тд и тп.
В очередной раз убедился, перед тестированием даже на тестера надо не забыть и быть готовым к написанию любой программы.
#39
Отправлено 13 ноября 2011 - 15:52
а в чем проблема-то? :)
составляешь классы эквивалентности для входных данных и для каждого делаешь пример.
тут получается не очень много.
я это задание тоже когда-то делал, и, по всей видимости, успешно, т.к. получил следующее :)
Насколько я понял, почитав о классах эквивалентности, в данном случае входные данные можно поделить на сл. классы:
1) Если на вх.:procedure <return type> <name> ()(соотв. с ошибкой (ошибками) в этом классе или без)
2) Если на вх.:procedure <return type> <name> (<param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
3) Если на вх.:procedure <return type> <name> (<param type> <param name>, <param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
(Класс для 3 и более "param type> <param name>", правда не знаю, нужен ли он):
4) Если на вх.:procedure <return type> <name> (<param type> <param name>, <param type> <param name>)(соотв. с ошибкой (ошибками) в этом классе или без)
Соотв. далее для этих 4 классов составляются тесты. Как уже было упомянто выше:тесты, на которых должно проходить:
procedure void Name()
procedure void Name(int i)
procedure void Name(long l)
procedure void Name(int i, long l)
+ аналогично для <return type> = int
тесты, на которых должно выдавать ошибку:
procedure void ()
procedure Name()
procedure long Name()
procedure int Name(string s)
procedure int Name(int i long l)
...
также проверить "<name>, <param name> - идентификаторы, соответствующие требованиям java" - попробовать начать с цифры, например. я требования java уже точно не помню.
Т.е. помимо этих вариантов, надо, как я понимаю, ещё добавить 3-4 теста на проверку есть ли ошибки в написании или орфографии.
Хмм, а если переменные все независимы, то зачем повторять все положительные тесты для int?
#40
Отправлено 19 сентября 2012 - 16:45
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных