Перейти к содержимому

Фотография

Fault injection technique


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 10 ноября 2007 - 16:08

Привет!

Технический и теоретический аспект такого подхода как fault injection мне более-менее понятен. Описание можно найти, тут например:
http://en.wikipedia....Fault_injection

Кто-нибудь на практике использует fault injection? Или может теоритечески подкован? Вы можете помочь, ответив на следующие вопросы:
1. В каких целях\областях он используется?
2. Насколько полезно такое тестирование? Реально ли можно найти ошибки, которые иначе найти затруднительно?
3. Как планируется тестирование для данного вида?
4. На каких этапах разработки ПО применяется?
3. Ну и какие инструменты используются? Хотя уже и есть такая тема, но она без ответа :(

Или может кто-нибудь находил конкретные ресурсы по теме, где можно найти ответы? Описания подходов\инструментов например...
Я пока нашел либо ссылки на ссылки, либо ссылки на книги. Залез в ieeexplorer - там много по теме, но в основном пурга какая-то.
  • 0
Regards,
Alexey

#2 the_norn

the_norn

    Активный участник

  • Members
  • PipPip
  • 91 сообщений
  • ФИО:Kononov Roman

Отправлено 13 ноября 2007 - 06:59

в практике подобного применять не приходилось, но предвижу разве что такой вариант использования - при наличии часто возникающих ошибок, причем в покрытых тестами участках - возникает мысль о неправильно написанных тестах, для проверки их правильности и валидности есть смысл вносить изменения в исходный код, тем самым провоцирую сбои
  • 0

#3 Nadya Kochetova

Nadya Kochetova

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Kochetova Nadya
  • Город:London, UK

Отправлено 13 ноября 2007 - 11:12

1. В каких целях\областях он используется?
2. Насколько полезно такое тестирование? Реально ли можно найти ошибки, которые иначе найти затруднительно?
3. Как планируется тестирование для данного вида?
4. На каких этапах разработки ПО применяется?
3. Ну и какие инструменты используются? Хотя уже и есть такая тема, но она без ответа :(


1. В основном используется при тестировании компонентов. Причем не только их изолированное тестирование, а часто при их интеграции. Знаю, что компании , поставляющие на рынок например RAD контроллы, используют этот метод.

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

механизм: внедряется ошибка (создается или вызывается) в процессе тестирования и анализируется, как компонент реагирует на эту ошибку.

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

3. планируется как и все остальные виды тестирования. ничего специального не видела никогда.


5. вручную, или сами разработчики (или тестеры) пишут спец тесты. но опять же вручную кодируют.
  • 0

#4 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 14 ноября 2007 - 20:42

Спасибо!
Именно эти два юзкейза я примерно и представлял. У меня вот почему возник вопрос - понятие Fault Injection нашлось случайно, и хотелось прояснить правильно ли я его понял.
Мы тоже иногда внедряем ошибки и называем такое тестирование Robustness (помехоустойчивость?). Обычно это попытки сымитировать какие-нибудь внешнее ошибки (типа специфических сбоев сети). Основная цель - узнать не впадает ли программа в ступор или кору (hang или crash); и может ли адекватно среагировать на ошибку (правильно отрепортить ее). Дополнительно проверяется и тест - а попадает ли он в "больное" место.

Век живи - век учись. Оказывается в основе такого тестирования лежит специальная методология, которая мне почти ровестница :) и про которую куча книг и статей написана.

И теперь я понял, почему какой-либо специальный тул найти для этого очень тяжело. Просто места где это требуются, очень специфичны для каждой программы и подходы к ломанию соответственно тоже. А если они есть (тулы), то и денег должны стоить хороших.
  • 0
Regards,
Alexey

#5 Nadya Kochetova

Nadya Kochetova

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Kochetova Nadya
  • Город:London, UK

Отправлено 15 ноября 2007 - 09:03

Мы тоже иногда внедряем ошибки и называем такое тестирование Robustness (помехоустойчивость?). Обычно это попытки сымитировать какие-нибудь внешнее ошибки (типа специфических сбоев сети). Основная цель - узнать не впадает ли программа в ступор или кору (hang или crash); и может ли адекватно среагировать на ошибку (правильно отрепортить ее). Дополнительно проверяется и тест - а попадает ли он в "больное" место.


Алексей, проверка устойчивости системы в случае выключения электричества - это немного другое.
  • 0

#6 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 15 ноября 2007 - 09:20

Алексей, проверка устойчивости системы в случае выключения электричества - это немного другое.


Пардон, за неточный выбор слов. Я говорил о сети, которая network. Например, надо проверить как будет вести себя HTTP клиент, которому сервак вернет текстовый документ с неправильным Mime-type. Для этого надо неправильно настроить сервер. Или другой пример, что случится с клиентом, если во время передачи данных коннекция к серверу пропадет - вместо выдергивания провода из сетевой карты руками, проще внедрить ошибку и проверить.
  • 0
Regards,
Alexey


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных