Добрый день! Передо мной на работе поставили задачу протестировать многопоточный сервер под Windows, а я впервые сталкиваюсь с таким приложением. В интернете на эту тему информации совсем мало. Может кто-то сталкивался с подобными приложениями либо знает литературу, где можно почерпнуть на эту тему информацию? Заранее благодарен.
Тестирование многопоточных серверов под Windows
Автор Vitalik Pedash, 11 июн 2011 10:54
В теме одно сообщение
#1
Отправлено 11 июня 2011 - 10:54
#2
Отправлено 23 июня 2011 - 12:27
Если бы мне поставили такую задачу, то я бы начал изучение с книги Джеффри Рихтера. У него много книг, и все про программирование под Windows. Та, что есть у меня - Серия: Для профессионалов, Название: Windows. Создание эффективных Win-32 приложений с учётом специфики 64-разрядной версии Windows. Издательство: Питер, Microsoft Press, Русская редакция.
В них подробно описано что такое потоки, многопоточность, а самое главное, что надо предусмотреть при реализации.
Например цитата
Основные сведения о потоках были получены мною при чтении книг Шилда о Java 2. Книги тоже про программирование, тема семафоров, мютексов, общей памяти, синхронизации там хорошо описана, и программировать потоки в Java достаточно легко.
Само проектирование тестов можно начать с интерфейса. Перечисляем все контролы что есть, все действия, что могут произойти.
Потом строим цепочки действий: стандартные (как будет действовать обычный пользователь).
Далее строим цепочки действий, возможно, не совсем стандартные. Тут цель - столкнуть друг с другом несколько потоков, вызвать состояние гонки за ресурс, попробовать добиться ситуации когда потос обработки русурса стартанёт раньше, чем завершится поток подготовки этого ресурса к обработке (допустим такие ситуации возможны).
Тестирование можно проводить по обычной схеме:
1. Базовые действия.
2. Детальное тестирование - необычные действия.
3. Нагрузочное тестирование - чтобы максимально плотно стокнуть потоки между собой.
В них подробно описано что такое потоки, многопоточность, а самое главное, что надо предусмотреть при реализации.
Например цитата
И в книге описано почему что-то желательно, а что-то не желательно.Завершение потока
Поток можно завершить четырьмя способами:
функция потока возвращает управление (рекомендуемый способ);
поток самоуничтожается вызовом функции ExitThread(нежелательный способ);
один из потоков данного или стороннего процесса вызывает функцию TerminateThread (нежелательный способ);
завершается процесс, содержащий данный поток (тоже нежелательно).
Основные сведения о потоках были получены мною при чтении книг Шилда о Java 2. Книги тоже про программирование, тема семафоров, мютексов, общей памяти, синхронизации там хорошо описана, и программировать потоки в Java достаточно легко.
Само проектирование тестов можно начать с интерфейса. Перечисляем все контролы что есть, все действия, что могут произойти.
Потом строим цепочки действий: стандартные (как будет действовать обычный пользователь).
Далее строим цепочки действий, возможно, не совсем стандартные. Тут цель - столкнуть друг с другом несколько потоков, вызвать состояние гонки за ресурс, попробовать добиться ситуации когда потос обработки русурса стартанёт раньше, чем завершится поток подготовки этого ресурса к обработке (допустим такие ситуации возможны).
Тестирование можно проводить по обычной схеме:
1. Базовые действия.
2. Детальное тестирование - необычные действия.
3. Нагрузочное тестирование - чтобы максимально плотно стокнуть потоки между собой.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных