Я новичок в тестировании модулей, и я только вхожу в рутину создания тестовых наборов. У меня есть то, что будет довольно крупным проектом, с которого я хочу начать тесты с самого начала.Поиск шаблонов ошибок в модульном тесте
Я пытаюсь выяснить общие стратегии и шаблоны для создания тестовых наборов. Когда вы смотрите на класс, многие тесты приходят к вам, очевидно, из-за природы класса. Скажем, для класса «учетная запись пользователя» с базовыми операциями CRUD, относящихся к таблице базы данных, мы захотим проверить - ну, CRUD.
- создания объекта и увидеть, существует ли оно
- запрос его свойства
- изменения некоторых свойств
- изменить некоторые свойства некорректных значений
- и удалить его снова.
А как ломать вещи, есть «провал» тесты, общие для большинства классов CRUD как:
- недопустимых типов входных данных
- ряд как ключ ID, который превышает диапазон выбранный тип данных
- ввод в неправильной кодировке символов
- вход, который является слишком длинным
И так далее и так далее.
Для модульного тестирования, связанные с файловыми операциями, список «ломать вещи» может быть
- Недопустимые символы в имени файла имя
- файла слишком длинное
- Имя файла использует неправильный протокол или путь
Я уверен, что аналогичные шаблоны - применимые за пределами тестируемого устройства, в настоящее время работающие - могут быть найдены для большинства тестируемых устройств.
Теперь мой вопрос:
Am Я исправляю в том, чтобы такие "Breaking узоры"? Или я получаю что-то совершенно неправильное относительно модульного тестирования, и если бы я сделал это правильно, это не было бы проблемой вообще? Является ли модульное тестирование как процесс нахождения как можно большего количества возможностей для правильной работы устройства?
Если я прав: существуют ли существующие определения, списки, чит-листы для таких шаблонов?
Есть ли какие-либо положения (в основном, в PHPUnit, так как это каркас, в котором я работаю) для автоматизации таких шаблонов?
Есть ли помощь - в виде контрольных списков или программного обеспечения - чтобы помочь в написании полных тестов?
Thanks Péter. Я все еще нахожу свой путь вокруг темы и все еще не уверен, что я делаю все правильно, поэтому я благодарен за возможность получить качественную обратную связь здесь. Просто мой инстинкт ленивого человека звонил в колокольчик, когда я писал по существу тот же тест второй раз :) Но я понимаю вашу точку зрения о TDD и о том, как автоматизировать это не главное. Я замечаю, что медленно вдвигаюсь в него, сначала записывая тесты, а затем блок, который действительно отличный способ работать. –
Практика @Pekka делает мастера, и это единственный способ получить его :-) Кстати, Пекка - финское имя, вы финского происхождения? –
@Peter это определенно делает. Re origin: Half-half. Я родился в Финляндии, но вырос в Германии, поэтому я почти немецкий. Тем не менее, я все еще говорю немного фински. –