[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:03.09,Default,,0000,0000,0000,,Итак, часть 5, обзор технологий тестирования. Dialogue: 0,0:00:03.09,0:00:07.08,Default,,0000,0000,0000,,Это Брайан Керниган, автор, один из героев лаборатории Белл, кто был автором Dialogue: 0,0:00:07.08,0:00:12.00,Default,,0000,0000,0000,,книги Кернигана и Риччи по С, которую возможно читало большинство из вас. Dialogue: 0,0:00:12.00,0:00:16.04,Default,,0000,0000,0000,,И если вы читали его книгу пару раз, вы сталкивались с этим. Dialogue: 0,0:00:16.04,0:00:20.06,Default,,0000,0000,0000,,Отладка вдвойне сложнее, чем написание кода. Dialogue: 0,0:00:20.06,0:00:24.08,Default,,0000,0000,0000,,Поэтому... действительно вдвойне сложнее, правда? Поэтому если вы пишете чистейший код Dialogue: 0,0:00:24.08,0:00:30.01,Default,,0000,0000,0000,,сразу, вам не придется отлаживать его, потому что это будет вдвойне сложнее. Dialogue: 0,0:00:30.01,0:00:36.01,Default,,0000,0000,0000,,Все правильно, это - Дейкстра. И вы должны заполнить пробелы. Dialogue: 0,0:00:36.01,0:00:41.00,Default,,0000,0000,0000,,Тестирование никогда не показывает отсутствие ошибок, только их присутствие. Правильно? Dialogue: 0,0:00:41.00,0:00:46.07,Default,,0000,0000,0000,,Эта фраза была популярна долгое время, и вы наверняка держите ее в памяти. Dialogue: 0,0:00:46.07,0:00:51.09,Default,,0000,0000,0000,,Это статья, которая вышла полтора года назад, и которая гласит: Почему вещи дорогие? Dialogue: 0,0:00:51.09,0:00:56.08,Default,,0000,0000,0000,,И вы можете видеть здесь их исследование, которое пришло к выводу, что ошибки не были заложены в дизайне проекта, Dialogue: 0,0:00:56.08,0:01:02.01,Default,,0000,0000,0000,,это просто паршивое тестирование функционала. Плохие процессы тестирования - это причины множества багов в коде. Dialogue: 0,0:01:02.01,0:01:07.00,Default,,0000,0000,0000,,И они говорят о том, что полностью автоматическое тестирование - редкость. Dialogue: 0,0:01:07.00,0:01:11.05,Default,,0000,0000,0000,,Это было полтора года назад. Действительно редкость. 12% софтверных компаний Dialogue: 0,0:01:11.05,0:01:16.07,Default,,0000,0000,0000,,имеют полностью автоматические системы. 10% делают все тестирование вручную, правильно? Dialogue: 0,0:01:16.07,0:01:21.00,Default,,0000,0000,0000,,Итак вы пишете тест, вы смотрите на выдачу, вы пишете тест, вы смотрите на выдачу. Dialogue: 0,0:01:21.00,0:01:25.02,Default,,0000,0000,0000,,Вы видете ошибки? Окей. Не могу поверить, что это так. Это неправда! Dialogue: 0,0:01:25.02,0:01:29.08,Default,,0000,0000,0000,,Вы знаете, до Agile вы бы имели отдельную команду обеспечения качества, Dialogue: 0,0:01:29.08,0:01:35.01,Default,,0000,0000,0000,,Вы бы имели все фаз процесса и отдельные группы людей. Итак, моя работа - Dialogue: 0,0:01:35.01,0:01:40.01,Default,,0000,0000,0000,,как члека команды обеспечения качества - повысить качество вашего кода, Dialogue: 0,0:01:40.01,0:01:44.08,Default,,0000,0000,0000,,либо гарантировать, что качество кода достаточное. А если мы используем Agile, то это все - часть того, что мы делаем. Dialogue: 0,0:01:44.08,0:01:49.07,Default,,0000,0000,0000,,Мы тестируем постоянно, каждую неделю мы добавляем новый код. Dialogue: 0,0:01:49.07,0:01:54.03,Default,,0000,0000,0000,,Вы ответственны за тестирование вашего же кода, никто другой. Dialogue: 0,0:01:54.03,0:01:58.09,Default,,0000,0000,0000,,И инструменты для этого очень хорошо автоматизированы. Как это все непохоже на то, что вы делали раньше. Dialogue: 0,0:01:58.09,0:02:03.08,Default,,0000,0000,0000,,Итак, как гласит Agile Manifest, Dialogue: 0,0:02:03.08,0:02:08.04,Default,,0000,0000,0000,,argument here in the [inaudible] the\Nactual manifesto is that if with a good Dialogue: 0,0:02:08.04,0:02:13.05,Default,,0000,0000,0000,,process we'll get soft quality rather than\Nthere's a specific group that's supposed Dialogue: 0,0:02:13.05,0:02:20.01,Default,,0000,0000,0000,,to insure it that they're gonna beat you\Nup if you don't have it. So. Bdd and TDD Dialogue: 0,0:02:20.01,0:02:25.06,Default,,0000,0000,0000,,was I said earlier. The phrase behavior\Ndriven design was inspired by some people Dialogue: 0,0:02:25.06,0:02:30.08,Default,,0000,0000,0000,,getting confused about test driven\Ndevelopment. Here we're testing acceptance Dialogue: 0,0:02:30.08,0:02:36.03,Default,,0000,0000,0000,,tests, integration tests, and trying to\Ncapture the behavior. Tdd is gonna be step Dialogue: 0,0:02:36.03,0:02:41.08,Default,,0000,0000,0000,,definitions and actually write unit tests\Nand function tests, before you write the Dialogue: 0,0:02:41.08,0:02:47.02,Default,,0000,0000,0000,,code. So that's the. So the good news is,\Nyou're always gonna have the test up to Dialogue: 0,0:02:47.02,0:02:52.05,Default,,0000,0000,0000,,date because you're writing the code or\Neven before it. So here's how they work Dialogue: 0,0:02:52.05,0:02:56.10,Default,,0000,0000,0000,,together. Cucumbers describe the\N[inaudible]. You, you start off writing Dialogue: 0,0:02:56.10,0:03:01.06,Default,,0000,0000,0000,,the stories you want. They fail. Then it\Ninvokes the implementations, the Dialogue: 0,0:03:01.06,0:03:06.03,Default,,0000,0000,0000,,[inaudible] test. If it fails, you then,\Nyou implement the methods that are Dialogue: 0,0:03:06.03,0:03:10.09,Default,,0000,0000,0000,,missing. And then when it passes the\N[inaudible] test, you keep iterating Dialogue: 0,0:03:10.09,0:03:15.10,Default,,0000,0000,0000,,internally until you pass the [inaudible].\NAnd then once you've implemented the Dialogue: 0,0:03:15.10,0:03:20.09,Default,,0000,0000,0000,,feature properly, it, it will pass the\Ncucumber green step and you go back and Dialogue: 0,0:03:20.09,0:03:23.02,Default,,0000,0000,0000,,keep going through the development.