Тестирование черного ящика (Black-Box Testing: Techniques for Functional Testing of Software and Systems)
Эту книгу доктора Бориса Бейзера я прочитал чуть меньше 20 лет назад и уже тогда понял, что тестирование - это дело непростое:) Автор рассказывал в этой книге об этом, привлекая теорию графов, активно используя предикатную логику и логику высказываний, активно апеллируя к потокам выполнения и потокам данных. В общем, этот подход к функциональному тестированию показался мне сильно сложнее, чем обычно использовался и используется на практике:) Кроме того, автор решил тестировать при помощи black box форму для налоговой декларации в США, которая в 1995 году, когда вышла английская версия книги, не отличалась стройностью и логичностью (прямо скажем она выглядела как безумное наслоение "так исторически сложилось"). В итоге, книга сейчас полезна как подставка под чашку с кофе или как напоминание почему крутых тестировщиков я называю quality assurance engineer:)
Ниже представлены главы книги, чтобы вы могли сами оценить насколько она практичная и понятная 0. Readme.doc (описание книги и mindmap со связью глав между собой)
- Введение (стратегии тестирования, роли тестировщика и программиста, процессы разработки софта)
- Графы и отношения (теория графов и как ее использовать для тестирования)
- Тестирование потока управления (уже тут появляются предикаты и поток исполнения программы в виде графа, как выбирать пути тестирования)
- Тестирование циклов (какие циклы бывают: детерминированные и нет, вложенные и с использованием goto, как выбирать тестовые значения)
- Тестирование потоков данных (обсуждение похоже на тестирование потока управления)
- Тестирование потоков транзакций (тут появляются марковские цепи, а также очереди и иерархические модели, модели синхронизации и т.д.)
- Тестирование доменов (тут появляются кусочки матана для тестирования предельных значений численных доменов, эпсилон-окрестности и т;д.)
- Синтаксическое тестирование (тут нам надо знать основы теории и реализации языков программирования, ну или хотя бы про грамматику Бэкуса-Наура и ее использование в тестировании)
- Тестирование систем с конечным числом состояний (тут надо знать про конечные автоматы, как их можно визуализировать в таблице переходов и как это использовать для тестирования)
- Инструментальные средства и автоматизация (их не было особо 30 лет назад)
В общем, сняв сегодня эту книгу с полки и пролистав, я понял, что меня смущало в ней - я и 20 лет назад не уловил целевую аудиторию книги. По-факту, прочитать, понять и использовать эти подходы может только человек с очень хорошим бэкграундом в computer science. А такой человек скорее всего отправится писать production код, а не заниматься написанием функциональными тестами с использованием black box.
#QualityAssurance #Software #SoftwareDevelopment