Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Экспертная оценка обученными специалистами
Peer review by trained individuals
В разработке программного обеспечения инспекция – это экспертная оценка любого артефакта работы обученными специалистами, выявляющими дефекты с использованием четко определенного процесса. Инспекция также может называться инспекцией Фагана, по имени Майкла Фагана, создателя широко известного процесса инспектирования программного обеспечения.
Inspection in software engineering, refers to peer review of any work product by trained individuals who look for defects using a well defined process. An inspection might also be referred to as a Fagan inspection after Michael Fagan, the creator of a very popular software inspection process.
Введение
Инспекция – один из наиболее распространенных видов анализа, используемых в программных проектах. Цель инспекции – выявление дефектов. К наиболее часто проверяемым артефактам относятся спецификации требований к программному обеспечению и планы тестирования. В ходе инспекции выбирается артефакт для анализа, и собирается команда для проведения инспекционного совещания. Выбирается модератор для ведения совещания. Каждый инспектор готовится к совещанию, изучая артефакт и фиксируя каждый обнаруженный дефект. В рамках инспекции дефектом считается любая часть артефакта, которая не позволит инспектору его одобрить. Например, если команда инспектирует спецификацию требований к программному обеспечению, каждый дефект будет представлять собой фрагмент текста в документе, с которым инспектор не согласен.
An inspection is one of the most common sorts of review practices found in software projects. The goal of the inspection is to identify defects. Commonly inspected work products include software requirements specifications and test plans. In an inspection, a work product is selected for review and a team is gathered for an inspection meeting to review the work product. A moderator is chosen to moderate the meeting. Each inspector prepares for the meeting by reading the work product and noting each defect. In an inspection, a defect is any part of the work product that will keep an inspector from approving it. For example, if the team is inspecting a software requirements specification, each defect will be text in the document which an inspector disagrees with.
Процесс проверки
Процесс инспекции был разработан в середине 1970-х годов, после чего был расширен и модифицирован. Процесс должен иметь критерии входа, определяющие готовность к началу инспекции. Это предотвращает попадание незавершенных продуктов в процесс инспекции. Критериями входа может служить контрольный список, включающий такие пункты, как "Документ проверен на орфографические ошибки". Этапы процесса инспекции: планирование, обзорное совещание, подготовка, совещание по инспекции, доработка и последующий контроль. Этапы подготовки, совещания по инспекции и доработки могут повторяться. Планирование: Инспекцию планирует модератор. Обзорное совещание: Автор описывает предысторию создаваемого продукта. Подготовка: Каждый инспектор изучает продукт, чтобы выявить возможные дефекты. Совещание по инспекции: Во время совещания читающий просматривает продукт по частям, а инспекторы указывают на дефекты в каждой части. Доработка: Автор вносит изменения в продукт на основе плана действий, сформированного на совещании по инспекции. Последующий контроль: Изменения, внесенные автором, проверяются на предмет корректности. Процесс завершается модератором после выполнения заранее определенных критериев выхода. Термин "инспекция" относится к одному из важнейших элементов всего комплекса мероприятий, сопровождающих выполнение и успешное завершение проекта разработки программного обеспечения.
The inspection process was developed in the mid 1970s and it has later been extended and modified. The process should have entry criteria that determine if the inspection process is ready to begin. This prevents unfinished work products from entering the inspection process. The entry criteria might be a checklist including items such as "The document has been spell checked". The stages in the inspections process are: Planning, Overview meeting, Preparation, Inspection meeting, Rework and Follow up. The Preparation, Inspection meeting and Rework stages might be iterated. Planning: The inspection is planned by the moderator. Overview meeting: The author describes the background of the work product. Preparation: Each inspector examines the work product to identify possible defects. Inspection meeting: During this meeting the reader reads through the work product, part by part and the inspectors point out the defects for every part. Rework: The author makes changes to the work product according to the action plans from the inspection meeting. Follow up: The changes by the author are checked to make sure everything is correct. The process is ended by the moderator when it satisfies some predefined exit criteria. The term inspection refers to one of the most important elements of the entire process that surrounds the execution and successful completion of a software engineering project.
Роли инспекции
Во время проверки используются следующие роли. Автор: лицо, создавшее проверяемый продукт. Модератор: руководитель инспекции, который планирует и координирует ее. Читатель: человек, который просматривает документы по одному элементу за раз, после чего другие инспекторы указывают на дефекты. Секретарь/Записывающий: лицо, документирующее дефекты, обнаруженные в ходе проверки. Инспектор: лицо, которое изучает проверяемый продукт для выявления возможных дефектов.
During an inspection the following roles are used. Author: The person who created the work product being inspected. Moderator: This is the leader of the inspection. The moderator plans the inspection and coordinates it. Reader: The person reading through the documents, one item at a time. The other inspectors then point out defects. Recorder/Scribe: The person that documents the defects that are found during the inspection. Inspector: The person that examines the work product to identify possible defects.
Обзор кода
Обзор кода может проводиться как особый вид инспекции, в ходе которой команда рассматривает фрагмент кода и устраняет в нем любые дефекты. В процессе обзора кода дефектом считается блок кода, который некорректно реализует требования, не работает так, как задумал программист, или не является ошибочным, но может быть улучшен (например, его можно сделать более понятным или повысить его производительность). Помимо помощи командам в обнаружении и исправлении ошибок, обзоры кода полезны для взаимного обучения программистов коду, который подвергается проверке, а также для помощи начинающим разработчикам в освоении новых техник программирования.
A code review can be done as a special kind of inspection in which the team examines a sample of code and fixes any defects in it. In a code review, a defect is a block of code which does not properly implement its requirements, which does not function as the programmer intended, or which is not incorrect but could be improved (for example, it could be made more readable or its performance could be improved). In addition to helping teams find and fix bugs, code reviews are useful both for cross training programmers on the code being reviewed and for helping junior developers learn new programming techniques.
Рецензии коллег
Рецензирование коллегами считается передовой практикой в отрасли для раннего выявления дефектов программного обеспечения и изучения программных артефактов. Рецензирование коллегами включает в себя просмотр программного обеспечения и инспекцию программного обеспечения и является неотъемлемой частью разработки программных продуктов. Совокупность согласованных знаний, навыков и моделей поведения способствует наиболее эффективному проведению рецензирования коллегами. Элементы рецензирования коллегами включают структурированный процесс рецензирования, контрольные списки для обеспечения качества, четко определенные роли участников, а также формы и отчеты. Инспекция программного обеспечения – это наиболее строгая форма рецензирования коллегами, которая в полной мере использует эти элементы для выявления дефектов. Просмотр программного обеспечения выборочно использует эти элементы, помогая разработчику получить глубокое понимание артефакта и достичь консенсуса среди участников. Полученные результаты показывают, что рецензирование коллегами обеспечивает привлекательную отдачу от инвестиций благодаря ускоренному обучению и раннему выявлению дефектов. Для достижения наилучших результатов рецензирование коллегами внедряется в организации посредством определенной программы, включающей разработку политики и процедур, обучение специалистов и руководителей, определение метрик и создание структуры базы данных, а также поддержание инфраструктуры внедрения.
Peer reviews are considered an industry best practice for detecting software defects early and learning about software artifacts. Peer Reviews are composed of software walkthroughs and software inspections and are integral to software product engineering activities. A collection of coordinated knowledge, skills, and behaviors facilitates the best possible practice of Peer Reviews. The elements of Peer Reviews include the structured review process, standard of excellence product checklists, defined roles of participants, and the forms and reports. Software inspections are the most rigorous form of Peer Reviews and fully utilize these elements in detecting defects. Software walkthroughs draw selectively upon the elements in assisting the producer to obtain the deepest understanding of an artifact and reaching a consensus among participants. Measured results reveal that Peer Reviews produce an attractive return on investment obtained through accelerated learning and early defect detection. For best results, Peer Reviews are rolled out within an organization through a defined program of preparing a policy and procedure, training practitioners and managers, defining measurements and populating a database structure, and sustaining the roll out infrastructure.