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

5 за 5 (истории 6-7)

Последняя неделя отпуска прошла в режиме "без связи", поэтому предыдущий выпуск пропустил.
В этом нагоняем, продолжая читать "Just Enough Software Architecture" и добавив интересных ссылок.

1. Работа команды над решением задачи снижения риска ухудшения архитектуры путем прояснения текущего ее состояния для новых членов команды:
we were aware of providing coverage of the three primary modelsthe domain, the design, and the code models —and also the three primary architectural viewtypesthe module, runtime, and allocation views.
We started with the easiest documentation to produce and gradually added in more expensive parts. After each one, we asked ourselves if the risk had substantially reduced and we calibrated that evaluation based on our coverage of the viewtypes and models. When possible, we built representative and textual models rather than fully general and graphical ones. We decided to create a graphical model of our modules and component assembly since they were relatively easy to produce and conveyed more information than our textual models. We stopped when we had covered the primary models and viewtypes, trusting that the new developers would be able to use what we provided as a skeleton of understanding and would hang detailed knowledge from it.

2. Risk-driven approach to software architecture consists of identifying risks, deciding the best set of techniques to mitigate the risks, and then evaluating the remaining risk...
Instead of applying architecture techniques until we ran out of them, until the documentation binder was complete, or until the project was canceled, we regularly re-evaluated the remaining risks and stopped when they had subsided.

3. The core of architectural understanding is to be able to get at the “why” questions. Having the understanding does not mean you must follow a certain process, or program in a certain language, or write diagrams on paper. Understanding software architecture means that you have internalised the (admittedly incomplete and imperfect) knowledge and abstractions that have been built up, and that you can apply that understanding when building new systems or analysing existing ones.

Дальше книга не идет :( Отложил пока в сторону.



Новости:
1.  Анонс Heisenbug 2018 Moscow. Ждем докладчиков, и можно уже планировать билеты и поездку.

2. Отличная статья про машинное обучение для тех, кто не знает, но стеснялся спросить: "Машинное обучение для людей. Разбираемся простыми словами".

3. Андрей Сатарин зафигачил хороший тред про тестирование.

4. How to measure exploratory tests?

5. Мысли вслух: институт team lead-ов в компании очень важная составляющая ее работы. Их нужно растить, искать, развивать. Без этого все очень сложно получается. Но, млин, так редко на моей памяти это происходит. Часто, а развитие чаще всего, это ложится на плечи самого лида. В целом то оно и правильно, но с помощью всегда лучше получается обычно. Если кому интересно, то тут вот в Питере правильная конфа будет в сентябре "Профессиональная конференция про тимлидов и для тимлидов".






Комментарии

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

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

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

Заметки на коленке - 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

Mock vs Stub

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