0:00:00.000,0:00:03.087 Итак, часть 5, обзор технологий тестирования. 0:00:03.087,0:00:07.080 Это Брайан Керниган, автор, один из героев лаборатории Белл, кто был автором 0:00:07.080,0:00:12.005 книги Кернигана и Риччи по С, которую возможно читало большинство из вас. 0:00:12.005,0:00:16.041 И если вы читали его книгу пару раз, вы сталкивались с этим. 0:00:16.041,0:00:20.060 Отладка вдвойне сложнее, чем написание кода. 0:00:20.060,0:00:24.080 Поэтому... действительно вдвойне сложнее, правда? Поэтому если вы пишете чистейший код 0:00:24.080,0:00:30.006 сразу, вам не придется отлаживать его, потому что это будет вдвойне сложнее. 0:00:30.006,0:00:36.008 Все правильно, это - Дейкстра. И вы должны заполнить пробелы. 0:00:36.008,0:00:41.004 Тестирование никогда не показывает отсутствие ошибок, только их присутствие. Правильно? 0:00:41.004,0:00:46.070 Эта фраза была популярна долгое время, и вы наверняка держите ее в памяти. 0:00:46.070,0:00:51.092 Это статья, которая вышла полтора года назад, и которая гласит: Почему вещи дорогие? 0:00:51.092,0:00:56.082 И вы можете видеть здесь их исследование, которое пришло к выводу, что ошибки не были заложены в дизайне проекта, 0:00:56.082,0:01:02.010 это просто паршивое тестирование функционала. Плохие процессы тестирования - это причины множества багов в коде. 0:01:02.010,0:01:07.001 И они говорят о том, что полностью автоматическое тестирование - редкость. 0:01:07.001,0:01:11.053 Это было полтора года назад. Действительно редкость. 12% софтверных компаний 0:01:11.053,0:01:16.070 имеют полностью автоматические системы. 10% делают все тестирование вручную, правильно? 0:01:16.070,0:01:21.002 Итак вы пишете тест, вы смотрите на выдачу, вы пишете тест, вы смотрите на выдачу. 0:01:21.002,0:01:25.022 Вы видете ошибки? Окей. Не могу поверить, что это так. Это неправда! 0:01:25.022,0:01:29.085 Вы знаете, до Agile вы бы имели отдельную команду обеспечения качества, 0:01:29.085,0:01:35.008 Вы бы имели все фаз процесса и отдельные группы людей. Итак, моя работа - 0:01:35.008,0:01:40.013 как члека команды обеспечения качества - повысить качество вашего кода, 0:01:40.013,0:01:44.080 либо гарантировать, что качество кода достаточное. А если мы используем Agile, то это все - часть того, что мы делаем. 0:01:44.080,0:01:49.072 Мы тестируем постоянно, каждую неделю мы добавляем новый код. 0:01:49.072,0:01:54.026 Вы ответственны за тестирование вашего же кода, никто другой. 0:01:54.026,0:01:58.088 И инструменты для этого очень хорошо автоматизированы. Как это все непохоже на то, что вы делали раньше. 0:01:58.088,0:02:03.081 Итак, как гласит Agile Manifest, 0:02:03.081,0:02:08.044 argument here in the [inaudible] the[br]actual manifesto is that if with a good 0:02:08.044,0:02:13.049 process we'll get soft quality rather than[br]there's a specific group that's supposed 0:02:13.049,0:02:20.014 to insure it that they're gonna beat you[br]up if you don't have it. So. Bdd and TDD 0:02:20.014,0:02:25.063 was I said earlier. The phrase behavior[br]driven design was inspired by some people 0:02:25.063,0:02:30.085 getting confused about test driven[br]development. Here we're testing acceptance 0:02:30.085,0:02:36.028 tests, integration tests, and trying to[br]capture the behavior. Tdd is gonna be step 0:02:36.028,0:02:41.084 definitions and actually write unit tests[br]and function tests, before you write the 0:02:41.084,0:02:47.020 code. So that's the. So the good news is,[br]you're always gonna have the test up to 0:02:47.020,0:02:52.048 date because you're writing the code or[br]even before it. So here's how they work 0:02:52.048,0:02:56.099 together. Cucumbers describe the[br][inaudible]. You, you start off writing 0:02:56.099,0:03:01.056 the stories you want. They fail. Then it[br]invokes the implementations, the 0:03:01.056,0:03:06.026 [inaudible] test. If it fails, you then,[br]you implement the methods that are 0:03:06.026,0:03:10.090 missing. And then when it passes the[br][inaudible] test, you keep iterating 0:03:10.090,0:03:15.098 internally until you pass the [inaudible].[br]And then once you've implemented the 0:03:15.098,0:03:20.094 feature properly, it, it will pass the[br]cucumber green step and you go back and 0:03:20.094,0:03:23.019 keep going through the development.