Облачная концепция. Лекция 3 Функциональные и нефункциональные требования
Скачать 5.98 Mb.
|
Общая концепция тестирования Основная терминология Организация тестирования ПО Организация тестирования Тестирование, отладка и сборка программного изделия Жизненный цикл тестирования Разработка тестов Лекция 3Функциональные и нефункциональные требованияНефункциональные требованияТребования к продукту Организационные требования Внешние требования Количественные показатели нефункциональных требований
Структура SRS. IEEE Standard 830.http://habrahabr.ru/post/52681/Introduction
Document conventions Intended Audience and Reading Suggestions Project scope References Overall Description Product perspective Product features User classes and characteristics Operating environment Design and implementation constraints User documentation Assumptions and dependencies System features System feature X (таких блоков может быть несколько)
Stimulus/Response sequences Functional requirements User interfaces Software interfaces Hardware interfaces Communication interfaces Non functional requirements Performance requirements Safety requirements Software quality attributes Security requirements Other requirements Appendix A: Glossary Appendix B: Analysis Models Appendix C: Issues list Формальные методы спецификации требованийСпецификации Псевдокод Конечные автоматы Таблицы решений Диаграммы деятельности Таблицы сущность-связь Схемы потоков данных Визуализация требованийUML диаграммы Схемы Mind map Мокапы Критерии качества требований к ПОКорректные требования Недвусмысленные требования Полнота набора требований Непротиворечивость набора требований Упорядоченность требований по их важности и стабильности Проверяемые требования Модифицируемый набор требований Трассируемые требования Понимаемые требования Явные и неявные требованияПомните машину с непрозрачным лобовым стеклом и квадратными колесами?Что если нет документации?Что может помочь?Код приложения Носители знаний Прототипы Тест-кейсы Авто-тесты Любая другая информация Что если нет документации?С какими проблемами мы сталкиваемсяТребования неполные Частые изменения Требования изменяются в последний момент Не верно трактовали Что если нет документации?Тестирование, основанное на требованиях (Requirements Based Testing)Что если нет документации?просмотр на наличие неоднозначностей выведение причинно-следственных связей Какой же тип оповещения отправляет банкомат в отдел информационных технологий? Каково точное определение “вскрытия”? Эквивалентно ли “вскрытие” “открытию без ключа и секретного кода? Что происходит в случае использования ключа, но без введения секретного кода? Какой текст оповещения? Что такое “соответствующие действия”? просмотр на наличие неоднозначностей выведение причинно-следственных связей Причинно-следственные связи - это наши функциональные диаграммы, которые впоследствии преобразуются в таблицы решенийТестовая документацияЭтапы процесса тестированияТест дизайн (Test Design)Этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестированияТипы тестовой документацииПлан тестирования (Test Plan) Набор тест кейсов и тестов (Test Case & Test suite) Дефекты / Баг Репорты (Bug Reports / Defects) Тестовый случай (Test Case)Это самая маленькая часть тест документации, это ситуация которая проверяет конкретно взятое условие из требований. Одно условие может проверятся несколькими Тест Кейсами (позитивными и негативными)Хороший Test Case состоит изПеревод продукта в нужное состояние Верификация того, что подлежит проверке Перевод продукта в исходное состояние Обнаруживаем тестыТщательное изучение и анализ требований (описания функции, модуля, спецификации, и т.д.). Декомпозиция требований\функций. Выявление всех условий, входных и выходных данных (что) Анализ поведения (как) Использование различных техник для выделения определенных тестов Использование накопленных знаний о выполненных проектах (оттестированных продуктах) Интуиция Анализ\просмотр выявленных тестов и добавление новых Логический и низкоуровневыйЛогические Test Case - составляются после разработки плана тестирования Низкоуровневые Test Case - пишутся при наличии или очень детальной спецификации или когда уже можно проводить динамическое тестирование Основные поля Тест КейсаID - номер кейса или номер вместе с какой-то абривиатурой к примему «PD_Sync_123» Summary - краткое описание проблемы Precondition - шаги перевода программы в нужное состояние Steps (Actions) - шаги, для того чтобы востроизвести баг Expected Result - ожидаемый результат Pass/Fail - поле для проставления статуса каждому тест кейсу Пример Тест КейсаПроверка успешного входа в систему Администратора при условии что его логин и пароль = 'Login' и '12345'Еще примерТестовый набор (Test Suite)Группа связанных Test casesTest MatrixМесто хранения тестов, отметок о результатах прохождения тестов и дате проведения тестатрассировка к требованию информация о зависимости от других тестов дополнительная информация ОшибкиОтчеты об ошибкахОтчет об ошибке - это инструмент!Тестировщики производят отчеты об ошибках!Лучше всего вас запомнят по тем ошибкам, которые вы нашли!Надо суметь “продать” найденную вами ошибку!Идеальный отчет об ошибкеПоднимает проблему и дает все необходимые данные для принятия решенияБаг ваш или программиста?Мотивация и случаи,когда баг исправляться не будетИзменяйте свое поведение (изменяйте условия путем изменения своих действий) Изменяйте настройки программы Изменяйте программное и аппаратное окружение Новый ли баг для этой версии?Изменяйте свое поведение (изменяйте условия путем изменения своих действий) Изменяйте настройки программы Изменяйте программное и аппаратное окружение Новый ли баг для этой версии?Модели жизненного цикла ПОМодели жизненного цикла ПО, v-образная модельПростая. На каждой фазе свои очевидные артефакты. Хорошо работает для мелких проектов. Негибкая. Нет раннего прототипирования. Неочевидны решения проблем, обнаруженных на поздних стадиях. Модели жизненного цикла ПО, водопадная модельПростая. Пошаговая. Очевидные артефакты и действия на всех стадиях. Неадаптивная. Нет раннего прототипирования. Сложно управлять рисками. Неочевидны решения проблем, обнаруженных на поздних стадиях. Не подходит для сложных проектов. Модели жизненного цикла ПО, итерационная модельМного анализа требований. Подходит для больших важных проектов. Раннее прототипирование, ранние поставки продукта. Дорогая. Не работает для мелких проектов. Модели жизненного цикла ПО, гибкие методологии: Scrum, Agile и т.п.Плани- рование Завершение_Действия:_Артефакты'>Анализи_отчётностьНачалоЗавершение_Действия:_Артефакты'>ВыполнениетестовАнализи_отчётностьНачалоЗавершение_Действия'>Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Краткие обсуждения. Распределение обязанностей. Изучение списка требований. Запросы на выделение ресурсов. Письма с заданиями. Отчёты об анализе требований. Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Глубокое изучение требований к продукту. Определение и обсуждение рисков. Формирование, утверждение и публикация плана тестирования. Подготовка тестового окружения. План тестирования. Запросы на выделение ресурсов. Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Разработка тестовых случаев и тестовых сценариев. Разработка скриптов для автоматизированного тестирования. Тестовые случаи. Тестовые сценарии. Скрипты для автоматизированного тестирования. Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Получение уведомления о выходе билда. Изучение сопроводительной документации. Инсталляция билда. Запуск смоук-теста и принятие решения о дальнейшем тестировании. Тест критического пути и расширенный тест. Написание отчётов об ошибках. Уведомления. Отчёты об ошибках. Тесты. Скрипты для автоматизированного тестирования. Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Оценка качества продукта. Использование метрик. Уведомление руководства. Написание отчёта о результатах тестирования. Метрики. Отчёт о результатах тестирования. Плани- рование Разработка тестов Выполнение тестов Анализ и отчётность Начало Завершение Действия: Артефакты: Рекомендация билда к выпуску. Финальная оценка качества продукта и процесса его разработки. Организация финального собрания проектной группы. Итоговый отчёт о результатах тестирования. Отчёт о финальном собрании. Технические навыки и личностные качества тестировщикаТехнические навыки, необходимые тестировщикуЗнание иностранных языков. Программирование: C/C++/C#, Java, PHP, Object Pascal, Visual Basic, JavaScript, HTML, .NET, «веб-разработка вообще». Администрирование СУБД: Oracle, MS SQL, MySQL. Администрирование ОС: Windows, Sun Solaris, HP-UX, Free-BSD, Linux. Сетевое администрирование: TCP/IP, IPX/SPX, NetBIOS. Автоматизированное тестирование: Silk*, Rational*, Mercury Interactive *, JUnit, HTTP/HTML-Unit. Личностные качества хорошего тестировщикаПовышенная ответственность. Хорошие коммуникативные навыки. Способность ясно, быстро, чётко выражать свои мысли. Исполнительность. Терпение, усидчивость, внимательность к деталям, наблюдательность. Гибкое мышление, хорошая способность к обучению. Хорошее абстрактное и аналитическое мышление. Способность ставить нестандартные эксперименты. Склонность к исследовательской деятельности. Обеспечение качества («профилактика» и «здоровый образ жизни»). Контроль качества («а всё ли идёт так, как надо?», «или есть проблемы?») Фактически, «тестирование ПО» – это «диагностика» и «помощь в лечении» программного средства как такового и всего проекта в целом. Тестирование программного обеспечения (software testing) – процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта. Даже лучшие работники не смогут выполнить поставленную задачу, если процесс не организован. ЛЮДИ ПРОЦЕСС ТЕХНОЛОГИЯ Дефект (баг, глюк; defect, bug) – любое несоответствие фактического и ожидаемого результата (согласно требованиям или здравому смыслу). Ожидаемый результат (expected result) – такое поведение программного средства, которое мы ожидаем в ответ на наши действия. Тест-план (test plan) – часть проектной документации, описывающая и регламентирующая процесс тестирования. Чек-лист (check-list) – набор идей тестов. Тест-кейс (test case) – набор входных данных, условий выполнения и ожидаемых результатов, разработанный с целью проверки того или иного свойства или поведения программного средства. Тестовый сценарий, тест-сьют (test scenario, test-suite) – набор тест-кейсов, собранных в группу (последовательность) для достижения некоторой цели. Билд («сборка») (build) – промежуточная версия программного средства (финальный билд часто называют релизом (release)). Качество (quality) – показатель степени соответствия продукта его требованиям. Метрика качества (quality metric) – числовое значение некоторого показателя качества. Может определяться расчётным способом или по некоторой формуле. |