Successfully reported this slideshow.
Your SlideShare is downloading. ×

Артефакты тестирования: быть или не быть?

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 24 Ad

More Related Content

Slideshows for you (19)

Similar to Артефакты тестирования: быть или не быть? (20)

Advertisement

Recently uploaded (20)

Артефакты тестирования: быть или не быть?

  1. 1. Гриневич Максим<br />Артефакты тестирования: быть или не быть? <br />
  2. 2. Что? Где? Когда...?<br />Как называется?<br />Что содержит?<br />Для чего?<br />Когда и кем?<br />А надо ли?<br />
  3. 3. Артефакты тестирования<br />План тестирования (Test Plan)<br />Стратегия тестирования (Test strategy)<br />Варианты использования (Use cases)<br />Тестовые сценарии (Test cases)<br />Матрица соответствий (Traceability matrix)<br />«Список проверки» (Checklist)<br />Описание ошибки (Bug report)<br />Отчет о тестировании (Test result report)<br />....<br />
  4. 4. Как называется: План тестирования – Test Plan<br />Что содержит:<br />Требуемые ресурсы(специальное оборудование, ПО, люди и их обязанности, тренинги), что будет / не будет протестировано,условияначала тестирования, условия успешного/неуспешного окончания тестирования, риски, стратегия тестирования[?], типы тестирования1<br />
  5. 5. Как называется: План тестирования – Test Plan<br />Для чего:<br />понять что, как, когда будет/не будет проверяться (составить календарный план, определится с инструментарием и тд.)<br />донести эту информацию до продюссера/команды<br />Когда:<br /> Начало работы над проектом<br />Кем:<br />Менеджер тестировщиков/руководитель группы<br />
  6. 6. Как называется: План тестирования – Test Plan<br />А надо ли:<br />«Да»:<br /><ul><li>ресурсоемкий проект
  7. 7. процесс разработки ПО сертифицирован (e.g. CMMI) и вам нужно показывать его проверяющим
  8. 8. вы пришли на проект в качестве руководителя
  9. 9. новый проект [?]
  10. 10. и т.д.</li></ul>«Нет»:<br /><ul><li>тест план у вас написан в рамках какого-либо другого документа
  11. 11. вы один(два, три) на проекте
  12. 12. у вас частный случай бардака</li></li></ul><li>Как называется: Стратегия тестирования - Test strategy<br />Что содержит: типы тестов, которые нужно выполнять для данного функционала системы, описание необходимых подходов с точки зрения целей тестирования и требования к инструментам и инфраструктуре.2<br />
  13. 13. Как называется:Стратегия тестирования - Test strategy<br />Чтобы узнать:<br />Как тестирование даст ответ, что данный функционал работает?<br />Что нужно сделать и чем пользоваться для достижения целей тестирования?<br />Когда определённый функционал будет тестироваться и когда ожидать результатов?<br />Когда: Начало работы над проектом<br />Кем: Руководитель группы/ведущий тестировщик<br />
  14. 14. Как называется:Стратегия тестирования - Test strategy<br />А надо ли:<br />«Да»:<br /><ul><li>если вы хотите отдельно разъяснить себе и другим КАК вы собираетесь тестировать</li></ul>«Нет»:<br /><ul><li>стратегия у вас описана в рамках какого-либо другого документа (e.g.Тест План)
  15. 15. вы один(два, три) на проекте
  16. 16. у вас частный случай бардака</li></li></ul><li>Как называется:Варианты использования - Use cases<br />Что:<br /><ul><li>описывает то, что происходит в системе, когда действующее лицо взаимодействует с ситемой.3,4
  17. 17. описывает типичные способы работы пользователя с системой</li></ul>Для: понимание того, как пользуются предоставленным в тестирование ПО<br />Когда: перед написанием тестовых сценариев; после того, когда есть утвержденный макет продукта /определенной функциональности<br />Кем: аналитики/тестировщики<br />
  18. 18. Как называется:Варианты использования - Use cases<br />А надо ли:<br />«Да»:<br /><ul><li>знания о типовых способах работы конечных пользователей системы помогает избежать «конкретных ляпов»</li></ul> «Нет»:<br /><ul><li>нет доступа к конечным пользователям или лицам их заменяющим
  19. 19. у вас частный случай бардака</li></li></ul><li>Как называется:Тестовые сценарии - Test cases<br />Что и Для чего: последовательность действий, по которой можно проверить соответствует ли тестируемая функция установленным требованиям (номер, название, список шагов, ссылка на требования [*], результат, комментарии)<br />Когда: после Use Cases(если они будут); в течении всего проекта<br />Кем: ведущий тестировщик/тестировщик<br />
  20. 20. Как называется:Тестовые сценарии - Test cases<br />А надо ли:<br />«Да»:<br /><ul><li>всегда…</li></ul>«Нет»:<br /><ul><li>у вас частный случай бардака</li></li></ul><li>Как называется:Матрица соответствий (Traceability matrix)<br />Что: ссылки соответствия: <br />требований и сценариев тестирования<br />детализированных и бизнес требований <br />Зачастую отображается в виде таблицы.<br />Для: помогает понять:<br />все ли требования покрыты тестами<br />интенсивность проверки того или иного требования<br />Когда:в процессе написания Test Cases<br />Кем:ведущий тестировщик/тестировщик<br />
  21. 21. Как называетя:Матрица соответствий (Traceability matrix)<br />А надо ли:<br />«Да»:<br /><ul><li>большое количество формализованных требований</li></ul>«Нет»:<br /><ul><li>нет большого количества формализованных требований
  22. 22. у вас частный случай бардака</li></li></ul><li>Как называется:«Список проверки» - Checklist - Чеклист<br /> Что: перечисление того, что нужно проверить при тестировании данного конкретного объекта/ функции/свойства системы<br />Для: позволяет не упускать значимых элементов осуществляемого действия.<br />Когда:<br /><ul><li>на некоторые части системы (ещё) не написаны Test Cases
  23. 23. нужно производить Usability/etc тестирование </li></li></ul><li>Как называется:«Список проверки» - Checklist - Чеклист<br />Кем:<br />руководитель группы/ ведущий тестировщик/ тестировщик<br />А надо ли:<br />«Да»:<br /><ul><li>тестирование объекта/функции/свойства системы требуетпроверки большого количества элементов</li></ul>«Нет»:<br /><ul><li>нет необходимости
  24. 24. у вас частный случай бардака</li></li></ul><li>Как называется:Описание ошибки - Bug report<br />Что: описание ошибки, шаги к повторению, ожидаемый результат, приоритет(серьезность, важность)<br />Для: исправление ошибки<br />Когда: при обнаружении ошибки<br />Кем: все<br />А надо ли:<br />«Да»: всегда<br />«Нет»: исправление ошибки требует меньше ресурсов, чем её запись…<br />
  25. 25. Как называется:Отчет о тестировании - Test result report<br />Что: кто тестировал (люди), что тестировал (билды и т.д.), как тестировали (техники, средства), итог тестирования (общий, кол-во открытых/ закрытых/переоткрытых багов), рекомендации от отдела тестирования<br />
  26. 26. Как называется:Отчет о тестировании - Test result report<br />Для:<br /><ul><li>подведения промежуточных итогов
  27. 27. информирования руководства о положении дел на проекте с точки зрения отдела тестирования</li></ul>Когда:<br />периодически + итоговый отчет тестирования<br />Кем:<br />от тестировщика до руководителя группы<br />
  28. 28. Как называется:Отчет о тестировании - Test result report<br />А надо ли:<br />«Да»:<br /><ul><li>процесс разработки ПО сертифицирован (e.g. CMMI)
  29. 29. команда тестирования рассредоточена на местности
  30. 30. вы начальник многих людей и хотите быть формально информированы о ходе дел на проекте</li></ul>«Нет»:<br /><ul><li>вы один(два, три) на проекте
  31. 31. у вас частный случай бардака</li></li></ul><li>В заключение:<br /><ul><li>«... документация не должна быть впечатляющей - она должна быть эффективной.9 »
  32. 32. нет документам ради документов</li></li></ul><li>Источники вдохновения:<br />Тест план http://www.sqatester.com/documentation/testplansmpl.htm<br />Стратегия тестирования http://www.it4business.ru/lib/122/#more-122<br />Варианты использования http://en.wikipedia.org/wiki/Use_cases<br />Варианты использования http://epf.eclipse.org/wikis/openupru/openup_basic/guidances/concepts/use_case,_KudM0NcJEdqz_d2XWoVt6Q.html<br />Примеры тестовой документации http://www.geocities.com/xtremetesting/testing_documentation.html<br />Матрица соответствия http://en.wikipedia.org/wiki/Traceability_matrix<br />Usability checklist http://www.alistapart.com/articles/sensibleforms<br />Чеклист для оценки работы с СУБДhttp://dev.by/blog/8565<br />Канер С., Фолк Дж., Нгуен Е.К. «Тестирование програмного обеспечения»<br />
  33. 33. m.grinevich@yatester.ru<br />www.YaTester.ru<br />

Editor's Notes

  • Что содержит: Описывает весь объем работ по тестированию, начиная с описания объекта, стратегии тестирования (?), расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.Типы: функциональное, нагрузочное, регрессионное, УИ, инсталляционное и т.д.
  • Что содержит: Описывает весь объем работ по тестированию, начиная с описания объекта, стратегии тестирования (?), расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.Для чего: есть утверждения, что не всегда это нужно... Иногда тест план приобретает
  • Что содержит: Описывает весь объем работ по тестированию, начиная с описания объекта, стратегии тестирования (?), расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.Для чего: есть утверждения, что не всегда это нужно... Иногда тест план приобретает
  • Стратегия тестирования — это план проведения работ по тестированию системы или её модуля, учитывающий специфику функциональности и зависимости с другими компонентами системы и платформы. Стратегия определяет типы тестов, которые нужно выполнять для данного функционала системы, включает описание необходимых подходов с точки зрения целей тестирования и может задавать описания или требования к необходимым для проведения тестирования инструментам и инфраструктуре.Получается немного страшновато? Попробуем разбить на более детальные части используя, к примеру, разбивку по вопросам, на которые отвечает стратегия тестирования.Стратегия отвечает на вопросы:Как, каким образом тестирование даст ответ, что данный функционал работает?Что нужно сделать и чем пользоваться из инструментальных средств, для достижения целей тестирования?Когда определённый функционал будет тестироваться и соответственно когда ожидать получения результатов?
  • Стратегия тестирования — это план проведения работ по тестированию системы или её модуля, учитывающий специфику функциональности и зависимости с другими компонентами системы и платформы. Стратегия определяет типы тестов, которые нужно выполнять для данного функционала системы, включает описание необходимых подходов с точки зрения целей тестирования и может задавать описания или требования к необходимым для проведения тестирования инструментам и инфраструктуре.Получается немного страшновато? Попробуем разбить на более детальные части используя, к примеру, разбивку по вопросам, на которые отвечает стратегия тестирования.Стратегия отвечает на вопросы:Как, каким образом тестирование даст ответ, что данный функционал работает?Что нужно сделать и чем пользоваться из инструментальных средств, для достижения целей тестирования?Когда определённый функционал будет тестироваться и соответственно когда ожидать получения результатов?Для чего:Что в общем случае даёт разработка стратегии тестирования? Разбор задачи тестирования на составляющие, выделение тестовых областей и в конечном итоге более полное понимание задачи тестирования в конкретном проекте. Как мы видели на примере тестирования инженерного калькулятора, понимание задачи позволяет разделять функциональность тестируемого приложения или системы на области, которые могут тестироваться автономно, что позволяет снизить (и порой достаточно существенно!) затраты на тестирование.
  • Стратегия тестирования — это план проведения работ по тестированию системы или её модуля, учитывающий специфику функциональности и зависимости с другими компонентами системы и платформы. Стратегия определяет типы тестов, которые нужно выполнять для данного функционала системы, включает описание необходимых подходов с точки зрения целей тестирования и может задавать описания или требования к необходимым для проведения тестирования инструментам и инфраструктуре.Получается немного страшновато? Попробуем разбить на более детальные части используя, к примеру, разбивку по вопросам, на которые отвечает стратегия тестирования.Стратегия отвечает на вопросы:Как, каким образом тестирование даст ответ, что данный функционал работает?Что нужно сделать и чем пользоваться из инструментальных средств, для достижения целей тестирования?Когда определённый функционал будет тестироваться и соответственно когда ожидать получения результатов?Для чего:Что в общем случае даёт разработка стратегии тестирования? Разбор задачи тестирования на составляющие, выделение тестовых областей и в конечном итоге более полное понимание задачи тестирования в конкретном проекте. Как мы видели на примере тестирования инженерного калькулятора, понимание задачи позволяет разделять функциональность тестируемого приложения или системы на области, которые могут тестироваться автономно, что позволяет снизить (и порой достаточно существенно!) затраты на тестирование.
  • Когда: examples: чеклистпроверки юзабилити веб-форм:Состав полей1. Форма содержит минимально необходимое для работы системы количество полей?2. Форма содержит минимально необходимое для работы системы количество полей, обязательных для заполнения?3. Все обязательные поля находятся сверху формы?4. Поля формы сгруппированы по смыслу?GUI controls5. Недлинные раскрывающиеся списки заменены на группы radiobutton?6. Длинные раскрывающиеся списки заменены либо на поля с автозаполнением, либо на иерархические структуры с radiobutton?7. Раскрывающиеся списки с множественным выбором вообще не используются?8. При вводе длинных значений в поля text и textarea не возникает прокрутки?9. При щелчке по подписям к элементам checkbox и radiobutton их состояние изменяется?10. У формы есть кнопка submit?Описание формы11. Все обязательные для заполнения поля помечены звездочками?12. У всех полей есть понятные подписи?13. У всех полей, понятность подписей к которым вызывает сомнения, есть примеры заполнения?14. Присутствуют диагностические сообщения и об ошибках, и об успешном завершении операции?15. По тексту сообщений об ошибках пользователь может понять, что он сделал не так, и исправиться?Функциональность кода16. Ограничения на ввод вызваны только причинами безопасности?17. При возврате к форме из-за ошибок заполнения значения всех полей сохраняются в том виде, в котором их отправил пользователь?Чеклист для оценки работы с СУБДЯ хочу привести простой список, который, я надеюсь, поможет вам выявить узкие места в работе с СУБД на ваших проектах. Все это мои личные наработки, поэтому на какую либо полноту, упорядоченность, уникальность и безоговорочность они претендовать не могут. Итак, начнем.Структура БД- Созданы ли домены для всех необходимых столбцов?- Созданы ли все необходимые fk(foreign key)?- Созданы ли индексы для fk указывающие на таблицы с большим объемом данных(в некоторых СУБД индексы создаются вместе с fk)?- Правильный ли порядок полей в составных индексах?- Есть ли таблицы где размер id(pk) поля(домена) занимает более 30% от объема строки(кортежа) и есть вторичный pk(primary key)?- Можно ли заменить триггеры на fk?Работа с СУБД- Используете ли вы Connection pool?- Используете ли вы серверные курсоры?- Используете ли вы read-only транзакции и курсоры где возможно? Однонаправленные курсоры?- Используете ли вы параметризированные и подготовленные запросы (особенно при многократной вставке информации)?- Используете ли вы явное управление транзакциями?- Минимизирована ли длина транзакции?- Есть ли очень длинные или объемные транзакции, которые можно разбить на несколько?- Есть ли у вас после IUD запросов select в той же транзакции?- Выставлен ли таймаут для запроса?- выставлен ли минимально возможный Isolation Level? Меняете ли вы его в зависимости от нужд транзакции?- Знаете ли вы что, когда и на сколько блокируется на запись? А на чтение?- Блокируются ли любая ваша таблица более чем на секунду?- Знаете ли вы TOP 5 запросов в вашей системе по кол-ву вызовов? А по времени выполнения?- Можно ли часть часто используемой информации закэшировать?- Есть ли у вас выборки, которые по условию возвращают более 30% данных из таблицы?- Есть ли у вас выборки, которые возвращают информации в 2 раза больше чем необходимо?- Есть ли запросы, которые сканируют всю таблицу не по ключу(natural scan)?Вот вкратце и все что вспомнилось. Почти обо все вопросы я в свое время спотыкался. Практически каждый может выиграть вам кучу времени у сервера без всяких хитрых махинаций и подстроек СУБД и БД в частности.Не обвиняйте во всех проблемах других – попробуйте сначала найти их в себе.P.S. Если причина упоминания какого-либо пункта не ясна - спрашивайте.
  • Когда: examples: чеклистпроверки юзабилити веб-форм:Состав полей1. Форма содержит минимально необходимое для работы системы количество полей?2. Форма содержит минимально необходимое для работы системы количество полей, обязательных для заполнения?3. Все обязательные поля находятся сверху формы?4. Поля формы сгруппированы по смыслу?GUI controls5. Недлинные раскрывающиеся списки заменены на группы radiobutton?6. Длинные раскрывающиеся списки заменены либо на поля с автозаполнением, либо на иерархические структуры с radiobutton?7. Раскрывающиеся списки с множественным выбором вообще не используются?8. При вводе длинных значений в поля text и textarea не возникает прокрутки?9. При щелчке по подписям к элементам checkbox и radiobutton их состояние изменяется?10. У формы есть кнопка submit?Описание формы11. Все обязательные для заполнения поля помечены звездочками?12. У всех полей есть понятные подписи?13. У всех полей, понятность подписей к которым вызывает сомнения, есть примеры заполнения?14. Присутствуют диагностические сообщения и об ошибках, и об успешном завершении операции?15. По тексту сообщений об ошибках пользователь может понять, что он сделал не так, и исправиться?Функциональность кода16. Ограничения на ввод вызваны только причинами безопасности?17. При возврате к форме из-за ошибок заполнения значения всех полей сохраняются в том виде, в котором их отправил пользователь?Чеклист для оценки работы с СУБДЯ хочу привести простой список, который, я надеюсь, поможет вам выявить узкие места в работе с СУБД на ваших проектах. Все это мои личные наработки, поэтому на какую либо полноту, упорядоченность, уникальность и безоговорочность они претендовать не могут. Итак, начнем.Структура БД- Созданы ли домены для всех необходимых столбцов?- Созданы ли все необходимые fk(foreign key)?- Созданы ли индексы для fk указывающие на таблицы с большим объемом данных(в некоторых СУБД индексы создаются вместе с fk)?- Правильный ли порядок полей в составных индексах?- Есть ли таблицы где размер id(pk) поля(домена) занимает более 30% от объема строки(кортежа) и есть вторичный pk(primary key)?- Можно ли заменить триггеры на fk?Работа с СУБД- Используете ли вы Connection pool?- Используете ли вы серверные курсоры?- Используете ли вы read-only транзакции и курсоры где возможно? Однонаправленные курсоры?- Используете ли вы параметризированные и подготовленные запросы (особенно при многократной вставке информации)?- Используете ли вы явное управление транзакциями?- Минимизирована ли длина транзакции?- Есть ли очень длинные или объемные транзакции, которые можно разбить на несколько?- Есть ли у вас после IUD запросов select в той же транзакции?- Выставлен ли таймаут для запроса?- выставлен ли минимально возможный Isolation Level? Меняете ли вы его в зависимости от нужд транзакции?- Знаете ли вы что, когда и на сколько блокируется на запись? А на чтение?- Блокируются ли любая ваша таблица более чем на секунду?- Знаете ли вы TOP 5 запросов в вашей системе по кол-ву вызовов? А по времени выполнения?- Можно ли часть часто используемой информации закэшировать?- Есть ли у вас выборки, которые по условию возвращают более 30% данных из таблицы?- Есть ли у вас выборки, которые возвращают информации в 2 раза больше чем необходимо?- Есть ли запросы, которые сканируют всю таблицу не по ключу(natural scan)?Вот вкратце и все что вспомнилось. Почти обо все вопросы я в свое время спотыкался. Практически каждый может выиграть вам кучу времени у сервера без всяких хитрых махинаций и подстроек СУБД и БД в частности.Не обвиняйте во всех проблемах других – попробуйте сначала найти их в себе.P.S. Если причина упоминания какого-либо пункта не ясна - спрашивайте.
  •  В своей книге "Тестирование программного обеспечения" Сэм Канер приводит определение: "Если программа не делает того, чего пользователь от нее вполне обосновано ожидает, значит налицо программная ошибка.”
  • По сложившейся традиции вся учебная литература мира информационных технологий обучает читателей и студентов разрабатывать объемную и подробную тестовую документацию. Мы позволим себе не согласиться с этой традицией, поскольку наш опыт свидетельствует, что документация не должна быть впечатляющей - она должна быть эффективной.

×