Сообщение Кто как пишет юнит-тесты для драйверов NT + Моя идея песочни от 29.09.2018 22:31
Изменено 29.09.2018 22:39 LimyKurn
Кто как пишет юнит-тесты для драйверов NT
Хотел сперва задать свой вопрос-размышление о том, использовать ли в драйверах фичи C++, называть ли файлы .cpp и .hpp или .c и .h или .cpp и .h.
Но сперва задался более важным и фундаментальным вопросом и вы его читаете.
Итак, юнит-тесты для драйверов.
Во-первых, в драйверах все-таки приходится писать такие вещи, как: какая-то функция-хелпер, класс-хелпер, своя реализация чего-то там. Насколько часто — это вопрос, но даже в сэмплах от MS на гитхабе мы видим тому примеры.
Все это надо покрывать юнит-тестами, т.е. писать синтетический код, который будет вызывать конкретные функции и классы с разными параметрами.
И даже вызывать одно и то же по много раз. Не знаю, как это называется — может быть подойдет понятие stress testing. Но штука полезная, в частности для проверки на утечки памяти и на быстродействие.
Основная же суть тестирования просто в том, чтобы, внеся какое-то изменение в покрытый код, можно было убедиться в полном соответствии всем ранее выставленным требованиям. Причем юнит-тесты позволяют начать убеждаться в 2 клика и уже в первые доли секунды
Во-вторых, думаю, что хорошо бы и для именно NT-шных вещей, таких, как каллбеки минифильтров, тоже писать юнит-тесты. Но это уже намного сложнее — там слишком много специфики, которую в юзермоде сложно вызвать.
Оба случая, особенно второй, требует наличие какой-то системы, ну как минимум в какой IDE это делать и в каком виде.
Что кто использует?
Но сперва задался более важным и фундаментальным вопросом и вы его читаете.
Итак, юнит-тесты для драйверов.
Во-первых, в драйверах все-таки приходится писать такие вещи, как: какая-то функция-хелпер, класс-хелпер, своя реализация чего-то там. Насколько часто — это вопрос, но даже в сэмплах от MS на гитхабе мы видим тому примеры.
Все это надо покрывать юнит-тестами, т.е. писать синтетический код, который будет вызывать конкретные функции и классы с разными параметрами.
И даже вызывать одно и то же по много раз. Не знаю, как это называется — может быть подойдет понятие stress testing. Но штука полезная, в частности для проверки на утечки памяти и на быстродействие.
Основная же суть тестирования просто в том, чтобы, внеся какое-то изменение в покрытый код, можно было убедиться в полном соответствии всем ранее выставленным требованиям. Причем юнит-тесты позволяют начать убеждаться в 2 клика и уже в первые доли секунды
Во-вторых, думаю, что хорошо бы и для именно NT-шных вещей, таких, как каллбеки минифильтров, тоже писать юнит-тесты. Но это уже намного сложнее — там слишком много специфики, которую в юзермоде сложно вызвать.
Оба случая, особенно второй, требует наличие какой-то системы, ну как минимум в какой IDE это делать и в каком виде.
Что кто использует?
Кто как пишет юнит-тесты для драйверов NT
Хотел сперва задать свой вопрос-размышление о том, использовать ли в драйверах фичи C++, называть ли файлы .cpp и .hpp или .c и .h или .cpp и .h.
Но сперва задался более важным и фундаментальным вопросом и вы его читаете.
Итак, юнит-тесты для драйверов.
Во-первых, в драйверах все-таки приходится писать такие вещи, как: какая-то функция-хелпер, класс-хелпер, своя реализация чего-то там. Насколько часто — это вопрос, но даже в сэмплах от MS на гитхабе мы видим тому примеры.
Все это надо покрывать юнит-тестами, т.е. писать синтетический код, который будет вызывать конкретные функции и классы с разными параметрами.
И даже вызывать одно и то же по много раз. Не знаю, как это называется — может быть подойдет понятие stress testing. Но штука полезная, в частности для проверки на утечки памяти и на быстродействие.
Основная же суть тестирования просто в том, чтобы, внеся какое-то изменение в покрытый код, можно было убедиться в полном соответствии всем ранее выставленным требованиям. Причем юнит-тесты позволяют начать убеждаться в 2 клика и уже в первые доли секунды
Во-вторых, думаю, что хорошо бы и для именно NT-шных вещей, таких, как каллбеки минифильтров, тоже писать юнит-тесты. Но это уже намного сложнее — там слишком много специфики, которую в юзермоде сложно вызвать.
Оба случая, особенно второй, требует наличие какой-то системы, ну как минимум в какой IDE это делать, на каком языке (C++ или Си) и в каком виде.
Что кто использует?
Но сперва задался более важным и фундаментальным вопросом и вы его читаете.
Итак, юнит-тесты для драйверов.
Во-первых, в драйверах все-таки приходится писать такие вещи, как: какая-то функция-хелпер, класс-хелпер, своя реализация чего-то там. Насколько часто — это вопрос, но даже в сэмплах от MS на гитхабе мы видим тому примеры.
Все это надо покрывать юнит-тестами, т.е. писать синтетический код, который будет вызывать конкретные функции и классы с разными параметрами.
И даже вызывать одно и то же по много раз. Не знаю, как это называется — может быть подойдет понятие stress testing. Но штука полезная, в частности для проверки на утечки памяти и на быстродействие.
Основная же суть тестирования просто в том, чтобы, внеся какое-то изменение в покрытый код, можно было убедиться в полном соответствии всем ранее выставленным требованиям. Причем юнит-тесты позволяют начать убеждаться в 2 клика и уже в первые доли секунды
Во-вторых, думаю, что хорошо бы и для именно NT-шных вещей, таких, как каллбеки минифильтров, тоже писать юнит-тесты. Но это уже намного сложнее — там слишком много специфики, которую в юзермоде сложно вызвать.
Оба случая, особенно второй, требует наличие какой-то системы, ну как минимум в какой IDE это делать, на каком языке (C++ или Си) и в каком виде.
Что кто использует?