0:00:00.000,0:00:03.877 So this, in chapter five, the testing[br]overview. This is, this is Brian 0:00:03.877,0:00:07.807 Kernighan, the author, one of the Bell[br]Labs, heroes who the author of the 0:00:07.807,0:00:12.055 Kernighan and Ritchie book on [inaudible][br]that probably most of you had. The, and 0:00:12.055,0:00:16.410 it's, if you read it a couple, you can get[br]it. Debugging is twice as hard as writing 0:00:16.410,0:00:20.606 code in the [inaudible]. Therefore, it's[br]twice as hard, right? So therefore, if you 0:00:20.606,0:00:24.802 write the cleverest code the first time,[br]you're never gonna be able to debug it, 0:00:24.802,0:00:30.067 'cause it's twice as hard. Alright, this[br]one, this is Dystra test and you've gotta 0:00:30.067,0:00:36.088 fill in the blank. Testing can never[br]demonstrate the. Absence of air is only 0:00:36.088,0:00:41.042 there. Presence, right? Well that's,[br]that's been around for a long time, and 0:00:41.042,0:00:46.700 just gotta keep that in mind. Here is an[br]article that came out a year and a half 0:00:46.700,0:00:51.922 ago, and it says why are things expensive.[br]And you can see here that their study is 0:00:51.922,0:00:56.825 it's not that there's bugs and [inaudible][br]in design, it's just lousy testing 0:00:56.825,0:01:02.110 features, lousy, lousy testing processes[br]are reasons that there's, there's so many 0:01:02.110,0:01:07.013 bugs in code. And it says here that[br]completely automated testing environments 0:01:07.013,0:01:11.534 are rare. This was a year and a half ago.[br]Still, we're just twenty, twelve percent 0:01:11.534,0:01:16.707 of software [inaudible] organizations have[br]fully automated testing systems. Ten 0:01:16.707,0:01:21.023 percent do all testing manually. Right? So[br]you write the test. You look at the 0:01:21.023,0:01:25.225 output. You write the test. Look at the[br]output. See any mistakes? Okay. So, wow, 0:01:25.225,0:01:29.852 can't believe that, that, that's still[br]true. That's not true here. [laugh]. You 0:01:29.852,0:01:35.086 know? For agile before the hand, you have[br]a separate quality assurance team. So you 0:01:35.086,0:01:40.133 have all these phases and separate groups[br]of people. So, Marge, somehow, the quality 0:01:40.133,0:01:44.805 assurance team was supposed to insert[br]quality in your code. [laugh]. Or make 0:01:44.805,0:01:49.727 sure that you, you have quality in your[br]code. With Agile, it's part of everything 0:01:49.727,0:01:54.260 we do. We're testing continuously. Every[br]week, we bring out new code. You're 0:01:54.260,0:01:58.888 responsible for testing your code, not[br]somebody else. And the tools are highly 0:01:58.888,0:02:03.816 [inaudible] so unlike that, that statement[br]that was done before. And so what the 0:02:03.816,0:02:08.444 argument here in the [inaudible] the[br]actual manifesto is that if with a good 0:02:08.444,0:02:13.493 process we'll get soft quality rather than[br]there's a specific group that's supposed 0:02:13.493,0:02:20.141 to insure it that they're gonna beat you[br]up if you don't have it. So. Bdd and TDD 0:02:20.141,0:02:25.636 was I said earlier. The phrase behavior[br]driven design was inspired by some people 0:02:25.636,0:02:30.859 getting confused about test driven[br]development. Here we're testing acceptance 0:02:30.859,0:02:36.286 tests, integration tests, and trying to[br]capture the behavior. Tdd is gonna be step 0:02:36.286,0:02:41.849 definitions and actually write unit tests[br]and function tests, before you write the 0:02:41.849,0:02:47.208 code. So that's the. So the good news is,[br]you're always gonna have the test up to 0:02:47.208,0:02:52.485 date because you're writing the code or[br]even before it. So here's how they work 0:02:52.485,0:02:56.992 together. Cucumbers describe the[br][inaudible]. You, you start off writing 0:02:56.992,0:03:01.564 the stories you want. They fail. Then it[br]invokes the implementations, the 0:03:01.564,0:03:06.265 [inaudible] test. If it fails, you then,[br]you implement the methods that are 0:03:06.265,0:03:10.901 missing. And then when it passes the[br][inaudible] test, you keep iterating 0:03:10.901,0:03:15.988 internally until you pass the [inaudible].[br]And then once you've implemented the 0:03:15.988,0:03:20.946 feature properly, it, it will pass the[br]cucumber green step and you go back and 0:03:20.946,0:03:23.200 keep going through the development.