Шрифт:
Функция
Если функция
26.7. Ссылки
Stone, Debbie, Caroline Jarrett, MarkWoodroffe, and Shailey Minocha. User Interface Design and Evaluation. Morgan Kaufmann, 2005. ISBN 0120884364.
Whittaker, James A. How to Break Software: A Practical Guide to Testing. Addison-Wesley, 2003. ISBN 0321194330.
Задание
Протестируйте функцию
1. Реализуйте оператор ввода для класса
2. Заполните файл тестов для последовательностей из раздела 26.3.
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
3. Основываясь на разделе 26.3.1.3, выполните программу, генерирующую следующие варианты.
3.1. Очень большая последовательность (что считать большой последовательностью и почему?).
3.2. Десять последовательностей со случайным количеством элементов.
3.3. Десять последовательностей с 0, 1, 2 ... 9 со случайными элементами (но упорядоченные).
4. Повторите эти тесты для последовательностей строк, таких как
Контрольные вопросы
1. Создайте список приложений, сопровождая их кратким описанием наихудшего события, которое может произойти из-за ошибки; например, управление самолетом — авиакатастрофа: гибель 231 человека; потеря оборудования на 500 млн. долл.
2. Почему мы не можем просто доказать, что программа работает правильно?
3. В чем заключается разница между модульным и системным тестированием?
4. Что такое регрессивное тестирование и почему оно является важным?
5. Какова цель тестирования?
6. Почему функция
7. Если мы не можем проверить все возможные ошибки, то какие ошибки следует искать в первую очередь?
8. В каких местах кода, манипулирующего последовательностью элементов, вероятнее обнаружить ошибки?
9. Почему целесообразно тестировать программу при больших значениях?
10. Почему часто тесты представляются в виде данных, а не в виде кода?
11. Почему и когда мы используем многочисленные тесты, основанные на случайных величинах?