Необходимые и достаточные условия для проведения тестирования
#1
Отправлено 15 января 2008 - 14:48
Хочу узнать ваше мнение по теме: Необходимые и достаточные условия для проведения тестирования.
Заранее большое спасибо.
Про Тестинг
#2
Отправлено 15 января 2008 - 15:42
Алексей, вы интересуетесь мнениями по поводу того какие критерии организации процесса тестирования, создания команды тестеров и тд.? Или речь о том, как определить, нужно ли тестировать новый билд программы (например, если в билде не работает большая часть функциональности)?Добрый день.
Хочу узнать ваше мнение по теме: Необходимые и достаточные условия для проведения тестирования.
Заранее большое спасибо.
Alexey
#3
Отправлено 15 января 2008 - 16:09
Алексей, вы интересуетесь мнениями по поводу того какие критерии организации процесса тестирования, создания команды тестеров и тд.? Или речь о том, как определить, нужно ли тестировать новый билд программы (например, если в билде не работает большая часть функциональности)?Добрый день.
Хочу узнать ваше мнение по теме: Необходимые и достаточные условия для проведения тестирования.
Заранее большое спасибо.
Приведу пример:
для тестирования достаточно как минимум ПО, которое требуется тестировать, но необходимы, как минимум требования к этому ПО.
Про Тестинг
#4
Отправлено 15 января 2008 - 18:00
Э. Гхм. Тогда сформулируем условия так (давно не доказывал теорем, не помню как делить на необходимое и достаточное).Приведу пример:
для тестирования достаточно как минимум ПО, которое требуется тестировать, но необходимы, как минимум требования к этому ПО.
- Сам по себе продукт
- Иженер-тестировщик (я настаиваю на инженере, потому что исполнитель для данного сценария не годится)
- Доступ к разработчикам для уточнения деталей реализованной функциональности
- Доступ к стейкхолдеру или любому другому представителю конечного пользователя либо заказчика (зависит от типа продукта) для уточнения деталей требовавшейся функциональности
- Тут должно быть что-то еще, я не помню, но это точно не спецификация
#5
Отправлено 15 января 2008 - 18:36
Как известно тестирование это "проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом" [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004].Добрый день.
Хочу узнать ваше мнение по теме: Необходимые и достаточные условия для проведения тестирования.
Заранее большое спасибо.
Из этого определения следует, что необходимым является:
* программа
* ожидаемое поведение (требования/оракулы назовите как нравиться)
* конечный набор тестов, выбранный определенным образом
Я полагаю, что этот набор так же будет и достаточным.
В целом набор совпадает с приведенным rlabs, только не нужен человек (вдруг это автоматизированное тестирование).
Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.
#6
Отправлено 15 января 2008 - 18:44
Средство тестирования и автотесты сами напишутся? Сами запустятся и сами анализ результатов проведут?Из этого определения следует, что необходимым является:
* программа
* ожидаемое поведение (требования/оракулы назовите как нравиться)
* конечный набор тестов, выбранный определенным образом
Я полагаю, что этот набор так же будет и достаточным.
В целом набор совпадает с приведенным rlabs, только не нужен человек (вдруг это автоматизированное тестирование).
Тогда человек не нужен, да.
Хотя ваше определение мне понравилось, грамотно все так сформулировано, со ссылками.
#7
Отправлено 15 января 2008 - 21:14
Ну тогда примерно так.Добрый день.
Хочу узнать ваше мнение по теме: Необходимые и достаточные условия для проведения тестирования.
Заранее большое спасибо.
Для проведения тестирования достаточно:
- объект тестирования
Для проведения тестирования необходимо:
- техническая возможность протестировать (функциональность не заблокирована, есть необходимое оборудование итд)
- желание всех заинтересованных сторон в проведении тестирования
- люди которые будут тестировать
Для проведения эффективного тестирования необходимо:
- наличие требований (= что должна делать программа)
- понятие, что ждут от тестирования
- квалифицированные инженеры, которые будут тестировать
- поставленный процесс тестирования
- грамотный технический руководитель
- тестовая документация, согласно которой будет производится тестирование
Для проведения как эффективного так и, скажем, качественного тестирования необходимо:
- достаточное количество ресурсов (время + деньги + люди)
- наличие спецификаций (= открытость реализации)
- грамотный менеджемент, как тестовый, так и всего проекта
- хорошее знание предметной области тестируемого ПО
Для проведения официального раунда тестирования необходимо:
- чтобы объект тестирования был выпущен согласно процессу разработки ПО, принятому в фирме
Alexey
#8
Отправлено 15 января 2008 - 21:30
Как же не нужен человек? Давайте уволим всех тестеров......
Я полагаю, что этот набор так же будет и достаточным.
В целом набор совпадает с приведенным rlabs, только не нужен человек (вдруг это автоматизированное тестирование).
Только человек может отличить, что "круглое" это не "мягкое", а "зеленое" это не "громкое".
Вот вам гипотетический пример: по причине допущеной ошибки, все UI элементы программы оказались невидимы. При этом автоматическое тестирование может легко проходить, т.к. все элементы инициализированы и методы типа onclick, вызваные из скриптов, прекрасно работают...
Alexey
#9
Отправлено 16 января 2008 - 07:24
Приведу пример. Статическое тестирование кода (java). Средство тестирования есть (pmd, checkstyle и т.д.), тесты тоже есть (стандартные в комплекте) ставим все это на continous integration сервер (сервер непрерывной сборки) и тесты сами запустятся и сами проведут анализ результатов.Средство тестирования и автотесты сами напишутся? Сами запустятся и сами анализ результатов проведут?
Тогда человек не нужен, да.
Человек не нужен

Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.
#10
Отправлено 16 января 2008 - 07:32
Мне кажется вы тут перепутали понятие необходимости и достаточности.Для проведения тестирования достаточно:
Для проведения тестирования необходимо:
Необходимость более слабое условие.
Из приведенного мной определения тестирования не следует необходимость участия в нем человека.Как же не нужен человек? Давайте уволим всех тестеров...
Повторюсь, необходимость это очень слабое условие.
Вот условие достаточности точно надо расширить, но не знаю как. Приведенные примеры все хороши на мой взгляд.
Возможно условие достаточности будет зависеть от процесса поставленного в компании и универсального условия не существует.
Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.
#11
Отправлено 16 января 2008 - 08:00
Дурацкий я привел пример, статическое тестирование это не выполнение. Но все равно в определении, которое я цитировал не написано, что написание скриптов автоматического тестирования это тестирование. Тестирование это проверка выполнения и не важно кто ее выполняет человек или машина.Приведу пример. Статическое тестирование кода (java). Средство тестирования есть (pmd, checkstyle и т.д.), тесты тоже есть (стандартные в комплекте) ставим все это на continous integration сервер (сервер непрерывной сборки) и тесты сами запустятся и сами проведут анализ результатов.Средство тестирования и автотесты сами напишутся? Сами запустятся и сами анализ результатов проведут?
Тогда человек не нужен, да.
Человек не нужен.
Так что переформулирую пример:
Автоматическое тестирование, скрипты есть, все работает на сервере непрывной интеграции и само себя тестирует.
Есть даже у Фаулера в статье про непрерывную интеграцю такое понятие - само тестируемый код, а кто пишет код мы все знаем, это не тестировщики.
Так что человек не является необходимым условием для тестирования. Но не стоит забывать что есть такая дисуиплина как контроль качества и вот там...
Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.
#12
Отправлено 16 января 2008 - 09:02
Хм-м. У меня еще в институтские времена с этими понятиями было плохо.Мне кажется вы тут перепутали понятие необходимости и достаточности.
Необходимость более слабое условие.
Но почему-то мне кажется, что я прав. Смотрим википедию
По аналогии с примером из википедии, рассуждаем:Для проведения тестирования достаточно:
- объект тестирования
Для проведения тестирования необходимо:
- техническая возможность протестировать (функциональность не заблокирована, есть необходимое оборудование итд)
- желание всех заинтересованных сторон в проведении тестирования
- люди которые будут тестировать
Из того, что у нас есть техвозможность, желание и люди чтобы протестировать еще не следует что мы можем это сделать, т.к. наша программа может быть еще даже не имеет ни одной строки кода. Но это необходимо для того, чтобы тестирование состоялось.
Если же у нас есть что тестировать, то можем начать тестировать. Тем не менее - это не означает, что мы будем это делать, если это невозможно сделать, некому сделать или никому не нужно.
Alexey
#13
Отправлено 16 января 2008 - 09:40
Нормальный пример. Я бы сказал очень хороший. Также, можно тестировать документацию или требования к программе, вообще не имея работающего кода.Дурацкий я привел пример, статическое тестирование это не выполнение.
Что же касается остального:
Программисты - не люди? Для тестирования не нужен именно тестер, но человек нужен.Так что переформулирую пример:
Автоматическое тестирование, скрипты есть, все работает на сервере непрывной интеграции и само себя тестирует.
Есть даже у Фаулера в статье про непрерывную интеграцю такое понятие - само тестируемый код, а кто пишет код мы все знаем, это не тестировщики.
Так что человек не является необходимым условием для тестирования. Но не стоит забывать что есть такая дисуиплина как контроль качества и вот там...
Пример1: программист написал строчку кода и перекомпилял прогу. Программист запустил программу и убедился, что новая написанная строчка работает правильно. Было тестирование? Было. Кто делал? Человек.
Пример2: - ваш пример с непрерывной интеграцией и статическими тестами (можно заменить на XUnit тесты и средства их автоматической генерации).
Кто-то решил, что надо проводить статическое тестирование кода. Кто-то выбрал инструмент и набор стандартных тестов. (Желание тестировать).
Кто-то засетапил continues integration server. Кто-то его поддерживает и следит за тем, что он работает правильно. (Техническая возможность).
Кто-то привел в действие механизм запуска статических тестов. Какой-то девелопер, который залил в репозиторий новый код. (Человек).
Неважно, кто (человек или машина) произведет сами тестовые действия над программой. Неважно, будет это статический или динамический вид тестирования. Но в итоге без желания и действий людей никакого эксперимента быть просто не может. Уберите действия этого кого-то из примера и тестирования не будет.
Alexey
#14
Отправлено 16 января 2008 - 10:25
У Коберна есть интересная метафора "разработка ПО как построение и обмен теориями". Т.е. должна быть передача знаний. А уж каким способом она реализована,через SRS, или "заказчик в одной комнате с разработчиками" - это неважно.[*]Доступ к разработчикам для уточнения деталей реализованной функциональности
[*]Доступ к стейкхолдеру или любому другому представителю конечного пользователя либо заказчика (зависит от типа продукта) для уточнения деталей требовавшейся функциональности
[*]Тут должно быть что-то еще, я не помню, но это точно не спецификация
[/list]
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#15
Отправлено 16 января 2008 - 14:42
Так что переформулирую пример:
Автоматическое тестирование, скрипты есть, все работает на сервере непрывной интеграции и само себя тестирует.
Есть даже у Фаулера в статье про непрерывную интеграцю такое понятие - само тестируемый код, а кто пишет код мы все знаем, это не тестировщики.
Так что человек не является необходимым условием для тестирования. Но не стоит забывать что есть такая дисуиплина как контроль качества и вот там...
Позволю не согласиться, Человек нужен!!! И это факт, если хотя бы исходить из того, что нельзя выполнить 100% автоматизацию тестирования (не встречал такого никогда и нигде)
+ 100% покрытие кода юнит тестами, все равно не даст гарантию, что багов нет.
+ Есть некоторые виды тестирования, которые машина выполнить не сможет, как вы ее не просите.
ИМХО :)
Про Тестинг
#16
Отправлено 16 января 2008 - 21:02
Я привел один из вариантов определения тестирования:
"тестирование это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом" [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004].
Из этого определения я сделал вывод, что необходимым (в терминах математической логики, насколько это здесь возможно) условием для проведения тестирования является:
* программа
* ожидаемое поведение (требования/оракулы назовите как нравиться)
* конечный набор тестов, выбранный определенным образом
Я считаю, что здесь нет ошибки. Никто мне на нее не указал.
Я НЕ утверждаю, что человек не нужен для тестирования. Человек нужен для качественного тестирования, но в общем случае можно провести тестирование без участие человека. Тестирование в данном случае я называю, только то, что написано в приведенном определении. Проверку соответствия может выполнить и машина.
Я продолжаю настаивать, что LeshaL препутал понятия необходимости и достаточности. Статья из Википедии подтверждает эту точку зрения. Примеры приведенные LeshaL на основе данной статьи я не понял, т.к. логические суждения написанные на бытовом языке (можем, будем) сложно понять.
Следующая порция примеров приведенных LeshaL не опровергает необходимого условия приведенного мной, а подтверждает его поскольку во всех этих примерах данное условие выполнено.
В примере 1 "проверку соответствия" проводила машина, не программист. В примере 2 так же "проверку соответствия" проводила машина.
Приведу свой шуточный ответ на пример 2:
У этого кого-то была мать и даже отец. Они являются необходимым условием для существования кого-то. Далее по логической цепочке поднимаемся до Адама и Евы (и Выше) или до большого взрыва, через теорию эволюции Дарвина, кому что нравиться (другие варианты тоже возможны).Кто-то засетапил continues integration server.
Что-то какая-то жесть получилась.
По поводу теста Гринкевича.
Тест Гринкевича применяется им для проверки наличия в некой компании процесса тестирования или службы контроля качества. В данной дискуссии обсуждается тестирование, различие приблизительно такое же как между разработкой и процессом разработки.
Грубо говоря у Гринкевича в тесте нет требования на наличие программы, что бесспорно необходимо для тестирования, но для существования службы контроля качества (и процесса) необходимым не является.
Собственно в заглавии статьи нет слова ПО, а если из самого теста убрать слово "программа" (заменив например словом "танк"), то получится критерий вполне применимый для процесса тестирования(службы контроля качества) любой отрасли.
Возможно я слишком формально и по математически стал отвечать на вопрос:
Но это все из-за этих двух слов "необходимо" и "достаточно"."Необходимые и достаточные условия для проведения тестирования."
Господин Булат, когда вопрос ставиться "Необходимые и достаточные условия ..", при всем уважении, "ИМХО" не работает.
Тут надо что-то такое доказывать.
Все равно остался второй вопрос: "достаточные условия проведения тестирования?". Вот на него ответ я пока не знаю.
Надесь получить его с вашей помощью, коллеги.
Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.
#17
Отправлено 17 января 2008 - 11:10
Постараюсь ответить всем одним постом, возможно получится.
Я привел один из вариантов определения тестирования:
"тестирование это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом" [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004].
Из этого определения я сделал вывод, что необходимым (в терминах математической логики, насколько это здесь возможно) условием для проведения тестирования является:
* программа
* ожидаемое поведение (требования/оракулы назовите как нравиться)
* конечный набор тестов, выбранный определенным образом
Я считаю, что здесь нет ошибки. Никто мне на нее не указал.
...
указываю.
если мы подходим к этой задаче как к определению необходимых условий для данного определения тестирования по IEEE, то все указано верно.
Но, если мы подходим к этой задаче исходя из первого поста т.е. Необходимые и достаточные условия для проведения тестирования, то необходимыми условиями являются
1. Наличие объекта тестирования
2. Наличие исполнителя (тут кстати учитывая сказанное выше исполнитель - не обязательно человек, это может быть другая программа, робот и т.д.)
я бы даже назвал их минимально необходимыми, т.к. если размышлять дальше то необходимость и достаточность условий будет определять выбранная методология тестирования например для RUP будет необходимо наличие всех артефактов и т.д.
update
абстрактно достаточным условием будет наличие ожидаемого поведения
т.е. необходимыми и достаточными условиями для проведения тестирования будут:
1. Наличие объекта тестирования
2. Наличие исполнителя (тут бы я добавил - наличие исполнителя требуемой квалификации)
3. Наличие ожидаемого поведения
Все. Остальное от лукавого.
#18
Отправлено 17 января 2008 - 11:54
Не буду с вами спорить по поводу нужности человека для тестирования. Мою точку зрения вы уже знаете.
Что касается Адама и Евы, давайте думать, что первым тестером была Ева, протестировавшая, ну скажем, Apple. :) С этого все и началось...
Но вот мне интересно, где я, по вашему, ошибаюсь в своих рассуждениях. Хочется прояснить, почему я и попытался перейти на бытовой язык.
Вы говорите, что я перепутал их местами. Т.о. получается, что утверждение "для проведения тестирования необходимо иметь техническую возможность протестировать" должно звучать "для проведения тестирования достаточно иметь техническую возможность протестировать". Что, согласитесь, не верно, т.к. очевидно, что этого недостаточно для проведения тестирвания.
Это верно для любого из моих условий перечисленных как "необходимое". Т.к. каждое из них по отдельности, имхо, необходимо, но явно недостаточно.
Но вот меня терзают смутные сомнения по поводу первого моего условия, которое говорит о том, что для тестирования достаточно иметь объект тестирования. Конечно, можно представить манька-тестировщика, который тестирует все подряд с криками "I like to test it, test it!", независимо от того есть ли у него техническая возможность для тестирования или нет.
Может быть это условие тоже необходимое?
Тогда получится вот что. Необходимые условия (каждое само по себе):
а)объект тестирования
б)тех.возможность протестировать
а)нужность тестирования (иначе речь о бесполезных действиях, которые нас, я думаю, не интересуют, и которые не могут быть названы тестированием)
а)тот кто будет тестировать (да-да я так думаю, что без этого никак!)
А вот необходимым и достаточным условием будет соблюдение всех перечисленных условий.
Alexey
#19
Отправлено 17 января 2008 - 12:16
...
Не буду с вами спорить по поводу нужности человека для тестирования. Мою точку зрения вы уже знаете.
Что касается Адама и Евы, давайте думать, что первым тестером была Ева, протестировавшая, ну скажем, Apple. :) С этого все и началось...
....
эээ нет. Первым тестером был змей :)
Адам с Евой были объектом тестирования
А ожидаемым результатом было изгнание из рая
что и получилось - программа сработала правильно
#20
Отправлено 17 января 2008 - 12:16
Господин Булат, когда вопрос ставиться "Необходимые и достаточные условия ..", при всем уважении, "ИМХО" не работает.
Тут надо что-то такое доказывать.
Коллега, Alfa. Извините, конечно, но мы с вами сейчас обсуждаем тему. И я лично высказываю свое мнение, а не мнение вычитанное где-то и просто переписанное в форум, поэтому ИМХО - это то что надо, исходя из определения: ИМХО – это записанная русскими буквами английская аббревиатура IMHO, которая расшифровывается фразой «In my humble opinion» - «По моему скромному мнению»
А теперь по теме.
Нашел определение необходимых и достаточных условий:
- Необходимыми условиями истинности утверждения А называются условия, без соблюдения которых А не может быть истинным.
- Достаточными называются такие условия, при наличии (выполнении, соблюдении) которых утверждение А является истинным.
Далее, приведу определение понятия Тестирование (кстати, сформулированное мной по результатам недавнего опроса):
Software Testing является одной из техник контроля качества и включает в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).
Что следует из них?
Необходимые условия:
1. Наличие объекта тестирования
2. Наличие исполнителя(ей) (в зависимости от вида проводимых испытаний им может быть как человек, так и машина или комбинация человек+машина)
Далее, исходя из определения тестирования, к необходимым условиям можно добавить:
3. Наличие плана тестирования
4. Наличие тест кейсов / тестов
Достаточные условия:
1. Наличие объекта тестирования
2. Наличие исполнителя(ей) (в зависимости от вида проводимых испытаний им может быть как человек, так и машина или комбинация человек+машина)
И в любом случае в результате проведенных действий будут получены результаты тестирования.
И еще, Oldman по-моему, прав набор необходимых условий будет зависеть от выбранной стратегии, процесса и методологии.
А вот набор достаточных условий, по-моему сформулирован достаточно полно.
Про Тестинг
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных