Тестирование приложений. Обеспечения Базовый курс (3е издание) Версия книги 15 от 31. 03. 2022
Скачать 5.07 Mb.
|
2.3.2.10. Классификация по привлечению конечных пользователей Все три перечисленных ниже вида тестирования относятся к операционному тестированию {85} • Альфа-тестирование (alpha testing 150 ) выполняется внутри организации-раз- работчика с возможным частичным привлечением конечных пользователей. Может являться формой внутреннего приёмочного тестирования {84} В неко- торых источниках отмечается, что это тестирование должно проводиться без привлечения команды разработчиков, но другие источники не выдвигают та- кого требования. Суть этого вида вкратце: продукт уже можно периодически показывать внешним пользователям, но он ещё достаточно «сырой», потому основное тестирование выполняется организацией-разработчиком. • Бета-тестирование (beta testing 151 ) выполняется вне организации-разработ- чика с активным привлечением конечных пользователей/заказчиков. Может являться формой внешнего приёмочного тестирования {84} Суть этого вида вкратце: продукт уже можно открыто показывать внешним пользователям, он уже достаточно стабилен, но проблемы всё ещё могут быть, и для их выяв- ления нужна обратная связь от реальных пользователей. • Гамма-тестирование (gamma testing 152 ) — финальная стадия тестирования перед выпуском продукта, направленная на исправление незначительных дефектов, обнаруженных в бета-тестировании. Как правило, также выполня- ется с максимальным привлечением конечных пользователей/заказчиков. Может являться формой внешнего приёмочного тестирования {84} Суть этого вида вкратце: продукт уже почти готов, и сейчас обратная связь от реальных пользователей используется для устранения последних недоработок. 2.3.2.11. Классификация по степени формализации • Тестирование на основе тест-кейсов (scripted testing 153 , test case based test- ing) — формализованный подход, в котором тестирование производится на основе заранее подготовленных тест-кейсов, наборов тест-кейсов и иной до- кументации. Это самый распространённый способ тестирования, который также позволяет достичь максимальной полноты исследования приложения за счёт строгой систематизации процесса, удобства применения метрик и широкого набора выработанных за десятилетия и проверенных на практике рекомендаций. 150 Alpha testing. Simulated or actual operational testing by potential users/customers or an independent test team at the developers’ site, but outside the development organization. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing. [ISTQB Glossary] 151 Beta testing. Operational testing by potential and/or existing users/customers at an external site not otherwise involved with the developers, to determine whether or not a component or system satisfies the user/customer needs and fits within the business processes. Beta testing is often employed as a form of external acceptance testing for off-the-shelf software in order to acquire feedback from the market. [ISTQB Glossary] 152 Gamma testing is done when software is ready for release with specified requirements, this testing done directly by skipping all the in-house testing activities. The software is almost ready for final release. No feature development or enhancement of the software is undertaken and tightly scoped bug fixes are the only code. Gamma check is performed when the application is ready for release to the specified requirements and this check is performed directly without going through all the testing activities at home. [ http://www.360logica.com/blog/2012/06/what-are-alpha-beta-and-gamma-testing.html ] 153 Scripted testing. Test execution carried out by following a previously documented sequence of tests. [ISTQB Glossary] Подробная классификация тестирования Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2022 Стр: 82/298 • Исследовательское тестирование (exploratory testing 154 ) — частично фор- мализованный подход, в рамках которого тестировщик выполняет работу с приложением по выбранному сценарию {143} , который, в свою очередь, дора- батывается в процессе выполнения с целью более полного исследования приложения. Ключевым фактором успеха при выполнении исследователь- ского тестирования является именно работа по сценарию, а не выполнение разрозненных бездумных операций. Существует даже специальный сценар- ный подход, называемый сессионным тестированием (session-based test- ing 155 ). В качестве альтернативы сценариям при выборе действий с приложе- нием иногда могут использоваться чек-листы, и тогда этот вид тестирования называют тестированием на основе чек-листов (checklist-based testing 156 ). Дополнительную информацию об исследовательском тестирова- нии можно получить из статьи Джеймса Баха «Что такое исследо- вательское тестирование? 157 » • Свободное (интуитивное) тестирование (ad hoc testing 158 ) — полностью не- формализованный подход, в котором не предполагается использования ни тест-кейсов, ни чек-листов, ни сценариев — тестировщик полностью опира- ется на свой профессионализм и интуицию (experience-based testing 159 ) для спонтанного выполнения с приложением действий, которые, как он считает, могут обнаружить ошибку. Этот вид тестирования используется редко и ис- ключительно как дополнение к полностью или частично формализованному тестированию в случаях, когда для исследования некоторого аспекта пове- дения приложения (пока?) нет тест-кейсов. Ни в коем случае не стоит путать исследовательское и свободное тестирование. Это разные техники исследования приложения с раз- ной степенью формализации, разными задачами и областями при- менения. 2.3.2.12. Классификация по целям и задачам • Позитивное тестирование (рассмотрено ранее {79} ). • Негативное тестирование (рассмотрено ранее {79} ). • Функциональное тестирование (functional testing 160 ) — вид тестирования, направленный на проверку корректности работы функциональности прило- жения (корректность реализации функциональных требований {38} ) . Часто функциональное тестирование ассоциируют с тестированием по методу чёр- ного ящика {71} , однако и по методу белого ящика {70} вполне можно проверять корректность реализации функциональности. 154 Exploratory testing. An informal test design technique where the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests. [ISTQB Glossary] 155 Session-based Testing. An approach to testing in which test activities are planned as uninterrupted sessions of test design and execution, often used in conjunction with exploratory testing. [ISTQB Glossary] 156 Checklist-based Testing. An experience-based test design technique whereby the experienced tester uses a high-level list of items to be noted, checked, or remembered, or a set of rules or criteria against which a product has to be verified. [ISTQB Glossary] 157 «What is Exploratory Testing?», James Bach [ http://www.satisfice.com/articles/what_is_et.shtml ] 158 Ad hoc testing. Testing carried out informally; no formal test preparation takes place, no recognized test design technique is used, there are no expectations for results and arbitrariness guides the test execution activity. [ISTQB Glossary] 159 Experience-based Testing. Testing based on the tester’s experience, knowledge and intuition. [ISTQB Glossary] 160 Functional testing. Testing based on an analysis of the specification of the functionality of a component or system. [ISTQB Glossary] Подробная классификация тестирования Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2022 Стр: 83/298 Часто возникает вопрос, в чём разница между функциональным те- стированием (functional testing 160 ) и тестированием функционально- сти (functionality testing 161 ). Подробнее о функциональном тестиро- вании можно прочесть в статье «What is Functional testing (Testing of functions) in software? » 162 , а о тестировании функциональности в статье «What is functionality testing in software?» 163 Если вкратце, то: • функциональное тестирование (как антоним нефункциональ- ного) направлено на проверку того, какие функции приложения реализованы, и что они работают верным образом; • тестирование функциональности направлено на те же задачи, но акцент смещён в сторону исследования приложения в реальной рабочей среде, после локализации и в тому подобных ситуациях. • Нефункциональное тестирование (non-functional testing 164 ) — вид тестиро- вания, направленный на проверку нефункциональных особенностей прило- жения (корректность реализации нефункциональных требований {38} ) , таких как удобство использования, совместимость, производительность, безопас- ность и т.д. • Инсталляционное тестирование (installation testing, installability testing 165 ) — тестирование, направленное на выявление дефектов, влияющих на протека- ние стадии инсталляции (установки) приложения. В общем случае такое те- стирование проверяет множество сценариев и аспектов работы инсталля- тора в таких ситуациях, как: o новая среда исполнения, в которой приложение ранее не было инстал- лировано; o обновление существующей версии («апгрейд»); o изменение текущей версии на более старую («даунгрейд»); o повторная установка приложения с целью устранения возникших про- блем («переинсталляция»); o повторный запуск инсталляции после ошибки, приведшей к невозмож- ности продолжения инсталляции; o удаление приложения; o установка нового приложения из семейства приложений; o автоматическая инсталляция без участия пользователя. 161 Functionality testing. The process of testing to determine the functionality of a software product (the capability of the software product to provide functions which meet stated and implied needs when the software is used under specified conditions). [ISTQB Glossary] 162 «What is Functional testing (Testing of functions) in software?» [ http://istqbexamcertification.com/what-is-functional-testing-test- ing-of-functions-in-software/ ] 163 «What is functionality testing in software?» [ http://istqbexamcertification.com/what-is-functionality-testing-in-software/ ] 164 Non-functional testing. Testing the attributes of a component or system that do not relate to functionality, e.g. reliability, efficiency, usability, maintainability and portability. [ISTQB Glossary] 165 Installability testing. The process of testing the installability of a software product. Installability is the capability of the software product to be installed in a specified environment. [ISTQB Glossary] Подробная классификация тестирования Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2022 Стр: 84/298 • Регрессионное тестирование (regression testing 166 ) — тестирование, направленное на проверку того факта, что в ранее работоспособной функци- ональности не появились ошибки, вызванные изменениями в приложении или среде его функционирования. Фредерик Брукс в своей книге «Мифиче- ский человеко-месяц» 167 писал: «Фундаментальная проблема при сопровож- дении программ состоит в том, что исправление одной ошибки с большой вероятностью (20–50 %) влечёт появление новой». Потому регрессионное тестирование является неотъемлемым инструментом обеспечения качества и активно используется практически в любом проекте. • Повторное тестирование (re-testing 168 , confirmation testing) — выполнение тест-кейсов, которые ранее обнаружили дефекты, с целью подтверждения устранения дефектов. Фактически этот вид тестирования сводится к дей- ствиям на финальной стадии жизненного цикла отчёта о дефекте {167} , направ- ленным на то, чтобы перевести дефект в состояние «проверен» и «закрыт». • Приёмочное тестирование (acceptance testing 169 ) — формализованное те- стирование, направленное на проверку приложения с точки зрения конечного пользователя/заказчика и вынесения решения о том, принимает ли заказчик работу у исполнителя (проектной команды). Можно выделить следующие подвиды приёмочного тестирования (хотя упоминают их крайне редко, огра- ничиваясь в основном общим термином «приёмочное тестирование»): o Производственное приёмочное тестирование (factory acceptance testing 170 ) — выполняемое проектной командой исследование полноты и качества реализации приложения с точки зрения его готовности к пе- редаче заказчику. Этот вид тестирования часто рассматривается как синоним альфа-тестирования {81} o Операционное приёмочное тестирование (operational acceptance testing 171 , production acceptance testing) — операционное тестирова- ние {85} , выполняемое с точки зрения выполнения инсталляции, потреб- ления приложением ресурсов, совместимости с программной и аппа- ратной платформой и т.д. o Итоговое приёмочное тестирование (site acceptance testing 172 ) — те- стирование конечными пользователями (представителями заказчика) приложения в реальных условиях эксплуатации с целью вынесения решения о том, требует ли приложение доработок или может быть при- нято в эксплуатацию в текущем виде. 166 Regression testing. Testing of a previously tested program following modification to ensure that defects have not been introduced or uncovered in unchanged areas of the software, as a result of the changes made. It is performed when the software or its environment is changed. [ISTQB Glossary] 167 Frederick Brooks, «The Mythical Man-Month». 168 Re-testing, Confirmation testing. Testing that runs test cases that failed the last time they were run, in order to verify the success of corrective actions. [ISTQB Glossary] 169 Acceptance Testing. Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. [ISTQB Glossary] 170 Factory acceptance testing. Acceptance testing conducted at the site at which the product is developed and performed by employees of the supplier organization, to determine whether or not a component or system satisfies the requirements, normally including hardware as well as software. [ISTQB Glossary] 171 Operational acceptance testing, Production acceptance testing. Operational testing in the acceptance test phase, typically performed in a (simulated) operational environment by operations and/or systems administration staff focusing on operational aspects, e.g. recoverability, resource-behavior, installability and technical compliance. [ISTQB Glossary] 172 Site acceptance testing. Acceptance testing by users/customers at their site, to determine whether or not a component or system satisfies the user/customer needs and fits within the business processes, normally including hardware as well as software. [ISTQB Glossary] Подробная классификация тестирования Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2022 Стр: 85/298 • Операционное тестирование (operational testing 173 ) — тестирование, прово- димое в реальной или приближенной к реальной операционной среде (operational environment 174 ), включающей операционную систему, системы управления базами данных, серверы приложений, веб-серверы, аппаратное обеспечение и т.д. • Тестирование удобства использования (usability 175 testing) — тестирова- ние, направленное на исследование того, насколько конечному пользова- телю понятно, как работать с продуктом (understandability 176 , learnability 177 , op- erability 178 ) , а также на то, насколько ему нравится использовать продукт (attractiveness 179 ) . И это не оговорка — очень часто успех продукта зависит именно от эмоций, которые он вызывает у пользователей. Для эффективного проведения этого вида тестирования требуется реализовать достаточно се- рьёзные исследования с привлечением конечных пользователей, проведе- нием маркетинговых исследований и т.д. Важно! Тестирование удобства использования (usability 175 testing) и тестирование интерфейса пользователя (GUI testing 184 ) — не одно и то же! Например, корректно работающий интерфейс может быть неудобным, а удобный может работать некорректно. • Тестирование доступности (accessibility testing 180 ) — тестирование, направ- ленное на исследование пригодности продукта к использованию людьми с ограниченными возможностями (слабым зрением и т.д.). • Тестирование интерфейса (interface testing 181 ) — тестирование, направлен- ное на проверку интерфейсов приложения или его компонентов. По опреде- лению ISTQB-глоссария этот вид тестирования относится к интеграционному тестированию {74} , и это вполне справедливо для таких его вариаций как те- стирование интерфейса прикладного программирования (API testing 182 ) и ин- терфейса командной строки (CLI testing 183 ) , хотя последнее может выступать и как разновидность тестирования пользовательского интерфейса, если че- рез командную строку с приложением взаимодействует пользователь, а не другое приложение. Однако многие источники предлагают включить в состав тестирования интерфейса и тестирование непосредственно интерфейса пользователя (GUI testing 184 ). 173 Operational testing. Testing conducted to evaluate a component or system in its operational environment. [ISTQB Glossary] 174 Operational environment. Hardware and software products installed at users’ or customers’ sites where the component or system under test will be used. The software may include operating systems, database management systems, and other applications. [ISTQB Glossary] 175 |