К основному контенту

Сборная солянка видеодокладов для самообразования на разную тематику - Выпуск 2

Scott Meyers - Keynote @ Meeting C++ 2014

Интересный, общепознавательный доклад Скотта про то, как он писал свою знаменитую книгу (тут ссылка для жадных экономных), о том "что" важно говорить людям, когда вы их учите, и "как" это говорить.

Первая часть - это история про главу из книги, посвященную разнице между insert & emplace в STL-контейнерах. На этом примере Скотт показывает важность пунктов из своего списка:

Пункты из правил написания эффективной книги могут помочь и в определении ее эффективности и с позиции читателя. Думаю, многие пункты и для статьи в блоге подойдут.

Вторая часть (ссылка со сдвигом по времени) больше познавательная и тренирующая английский. Разговор идет о том, как доносить информацию правильно. Часть скорее для тех, кто выступает, или хочет выступать. Есть немного и про то, как важно использовать современные технологии при печати книг (например использовать многоцветную печать). Резюме: готовьте доклады и выступления так, чтобы их было удобно смотреть в записи на видео. Пишите так, чтобы было удобно использовать современные гаджеты.


Добавляем докладик про автоматическое тестирование, для остроты вкуса солянки.
Никита в свое время проехался по нему танком легким броневиком. Собственно с тех времен доклад видимо у меня в запасниках и пылился. Пришло и его время.
Помнится был у меня опыт построения тестов, подобных тем, что описывает докладчик. Вспоминаю с ужасом. Мокировали все, что "движется"... Но, возможно тогда мозг еще не был готов и опыта не хватало.
Доклад в первую очередь для разработчиков, потому что у тестировщиков возникают резонные вопросы про проблемы, возникающие в реальном окружении (см. комментарии Никиты). Но разработчикам действительно важнее проверить максимально возможное количество сценариев (пресловутое покрытие) за минимальное время. А это можно сделать только через unit-тесты. Это действительно можно завести, но будет ли это эффективно?
Есть сомнения. Особенно если ваши тестировщики придерживаются legacy-взглядов на тестирование и никакой автоматики у них нет.
Использование юнит-тестов для проверки как раз исключительных ситуаций (обработка ошибок, граничных условий и тп) действительно оправдано. Часто воспроизвести такое в реальном стенде сложно (или приближается к невозможному). Но жизненные и простые ситуации (success path) проще и правильнее проверять на пользовательских сценариях с использованием всего продукта.
Итоговое резюме: классический пример случая "гладко было на бумаге, позабыли про овраги".


Наличие следующего доклада в этой подборке может показаться странным. Но нужно добавить аромата к солянке. Я настойчиво рекомендую его посмотреть всем. Даже тем, кому еще только за 20.
Меня торкнуло.

Комментарии

Популярные сообщения из этого блога

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то &qu