From Theory to Theory again

Автор: | 10.02.2020

Два профессора из делфтского технического университета (город Делфт, Нидерланды) выложили в открытый доступ книгу «Software Testing: From Theory to Practice» — sttp.site

Ну, как книга. Современные преподаватели сделали для своих студентов 1-го курса видеолекции. Если собрать тексты всех этих выпусков в один массив = кагбэ, да, книга. И оформлена по-современному — её можно читать только в браузере, текст перемежается с видео. Формат противоречив и работает только в определённых условиях.

Общий стиль присущ всем кратким учебникам и текстам для видео — короткие заявления.  И даже объяснения преподносятся в виде коротких заявлений. Видео, особенно обучающие, по-другому делать нельзя. Точнее, можно, но не нужно.

А некоторые темы ещё в процессе написания.

Но это всё ерунда. Оказывается, тестированию ПО учат в старейшем (основан в 1842 году) и крупнейшем техническом университете мира, там более 16 000 студентов и 2600 научных сотрудников (включая 200 профессоров)! Хоррэй!

Какие темы они рассматривают: автоматизация тестирования в целом, тестирование с помощью моделей, тестовая пирамида, TDD, мутационное и фаззинг тестирование и др.

Код появляется уже в «Chapter 1 — Why software testing?» Короче, там не про ввод всякой няшной ерунды в поля для ввода всякой няшной ерунды. Смотрим в код и начинаем его покрывать.

Рассуждения о разнице между Failure, Fault and Error (типа такого — Разница между ошибкой (багом) и дефектом (тоже багом)) появляются уже в «Chapter 3 — Testing Principles».

Правда, про verification and validation выдали что-то не совсем то:

Verification is about the system behaving as it is supposed to according to the specification. This mostly means that the systems behaves without any bugs, like it is said it should behave. This does not guarantee that the system is useful. That is a matter of validation. We can summarize verification with the question: Are we building the system right?

Validation: Are we building the right software? Validation concerns the features that our system offers and the costumer, for who the system is made. Is the system that we are building actually the system that the users want? Is the system actually useful?

Увидели ошибку? costumer вместо customer же.

Нет, не она. Это чинится быстро.

Ошибка в том, что термины верификация и валидация привязываются к тестированию, и таковыми и предлагаются для восприятия. На самом деле, это термины из анализа требований.

Пример же.

Конкретный.

From Theory to Theory again: 5 комментариев

  1. Наум

    А для чего вообще нужно знать что-то про термины «verification and validation»? Кому-то в практической работе оно хоть раз пригодилось? Если да, то каким образом? Просветите, пожалуйста…

  2. Алексей Лупан

    Посмотрите, плиз, на http://bit.ly/2SNogHg — стр. 126. Там на английском, но у меня английский примитивный.
    Если не будет понятно — уточните, что именно, и будем прояснять.

  3. Наум

    Спасибо, Алексей! Почитал. Здесь Вы излагаете своё понимание терминов «верификация» и «валидация». Хорошо. Хотя в книгах/интернете можно найти и немного другое. Не важно… Вы пишете, что мы можем сказать, что тест чисто валидационный, а можем так и не говорить. И что «никто не спросит…», но может и спросить. 🙂
    Конкретный вопрос: как часто и в каком контексте в реальной работе на проектах Вам встречались эти слова?

  4. Алексей Лупан

    Когда я только выполнял чужие кейсы, это всё было ненужным и абстрактным лайном.
    Когда я сам проектировал тесты, да ещё и для какой-то финансовой аппликухи — приходилось знать/понимать точно, какие тесты покрывают прописанные требования (верификационные), а какие тесты покрывают НЕпрописанные требования (валидационные) и соответственно их разделять по разным сборникам тестов.
    Верификационные тесты, с отсылкой к требованиям, программисты принимали, не каркая.
    А валидационные запросто отклоняли, бо «тестируется сценарий, которые не предусмотрен требованиями».
    Типичный пример: продвигаемся на каком-нибудь государственном портале по сценарию оформления заказа госуслуги (или на сайте подбора авиабилетов по сценарию заказа авиабилета, не суть). На каждом шаге подтягиваются данные из разных источников, все дела. Если в этот момент юзер решит вернуться — он должен передвигаться между экранами только через JS-кнопки «back» и «forward» в приложении (современный сайт — приложение).
    А если нажать на кнопку [Back] в браузере — всё поломалось.
    Это очевидно для пользователя? Нет.
    Пользователь может нажать на кнопку [Back] в браузере? Может.
    И получит белый экран, и все данные пропали? Получит. Вот скриншот. Вот видео. Давайте чинить!
    Ответ: Declined (out of requirements).
    А понимал бы я в тот момент разницу между верификацией и валидацией — не мечтал бы ездить в дальние страны сугубо ради битья по этим наглым мордам…
    И тематический лозунг от психиатров: «Мы считаем сумасшедшими тех, кого не понимаем, и дураками тех, кто не понимает нас. Поэтому сумасшедшие считают всех дураками, а дураки – сумасшедшими» ©

  5. Наум

    Спасибо! Общую мысль я понял.

Добавить комментарий