tag:blogger.com,1999:blog-2660291115609609354.post1048689560375016732..comments2023-10-16T17:53:59.857+03:00Comments on Software and I: 10 Reasons to Avoid Test Driven DevelopmentAssaf Stonehttp://www.blogger.com/profile/14023994489658711542noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-2660291115609609354.post-62550955995298014552017-01-20T03:25:33.313+02:002017-01-20T03:25:33.313+02:00Just out of curiosity, did you read to the end? Di...Just out of curiosity, did you read to the end? Did you get that I'm actually in favor of TDD? <br /><br />Or do your think that TDD is in fact undesirable, and that the reasons I mentioned are actually valid?Assaf Stonehttps://www.blogger.com/profile/14023994489658711542noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-81296188128738203272017-01-18T16:59:15.593+02:002017-01-18T16:59:15.593+02:00You dont know what you are talking about man.You dont know what you are talking about man.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-90923737473742378562016-09-18T14:11:42.651+03:002016-09-18T14:11:42.651+03:00Did you even read the post, or just the (admittedl...Did you even read the post, or just the (admittedly click-baitish) title? Please read the whole thing, before you conclude that the article is wrong. You might be (pleasantly) surprised at how wrong you are...Assaf Stonehttps://www.blogger.com/profile/14023994489658711542noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-9589725560514416102016-09-17T09:27:55.835+03:002016-09-17T09:27:55.835+03:00I'm glad time and adoption has proven this art...I'm glad time and adoption has proven this article wrong. WeDoTDD.comAnonymoushttps://www.blogger.com/profile/15042375014937468047noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-79932260684932444532015-04-23T16:19:18.140+03:002015-04-23T16:19:18.140+03:00Hi Dmitry,
Thank you for your comment.I do, of co...Hi Dmitry,<br /><br />Thank you for your comment.I do, of course, completely disagree with you on almost every point you made.<br /><br />First, while there *MAY* be more test code than production code, this is, in and of itself, not a bad thing! One of the benefits of TDD is that it can help shape your code into a simpler design - which may mean less code. If TDD helped you reduce the amount of production code you wrote and have to maintain, then its own size is not a problem.<br /><br />Second, you state that nobody is testing the test code. While that may be correct in essence, in fact, it is (or rather, should be) of little consequence. BECAUSE there is no coverage for the test code, the test code must be written in a way that is so simple and intuitively understandable that automated testing is not needed here. Reread the third point I made (point #8), which is in my opinion the only valid reason not to test, which is that if the project (the test code) is so simple and straightforward, then it is a waste of time to test.<br /><br />Your third point is that trying to follow the principles of TDD you break them. That is simply not true. The principles are that you (1) write test code that proves that you need to change your production code base, then (2) write production code until the test passes, and then (3) refactor the code to improve design and remove redundancies. Rinse and repeat. Nowhere does it say that you need to write test code for every line of code you write, test code included.<br /><br />Your next point, that if you have 100% test coverage, then you have written your program twice is wrong on multiple levels: First, you've made a Straw-Man argument - 100% test coverage is neither a viable goal, nor a desirable one. Second, your test code is not a repetition of your production code. Your tests should NEVER repeat production code, but rather VERIFY the results. The simplest example would be that to test a complex algorithm, you need only run it with a known set of arguments and compare the result to a known correct answer. You EXERCISE the production code, you don't repeat it.<br /><br />Next, you state that the process of writing code that ONLY SATISFIES (emphasis mine) the tests can and should be automated. Whether or not this is true, I cannot say for sure, but I can say that this is another Straw-Man argument. You shouldn't write code that ONLY SATISFIES the tests. Or if you insist, you should write tests that make it so that ONLY SATISFYING them is the right production code (see this article on property based testing http://fsharpforfunandprofit.com/posts/property-based-testing/). Of course your statement on not needing the production code derives from the previous straw-man, and is therefore false.<br /><br />Your last point, that the test code is declarative, is actually the only point I agree with. I completely disagree with your sentiment, because this is a good thing. If it were an implementation spec, then the test would repeat your production code, and/or break every time you change your production code, and THAT would be a bad thing.<br /><br />So, yes, do not give in to provocations. Try TDD because it is worth the effort.<br /><br />Unless this whole comment was tongue in cheek, and you were simply giving me a treat in my own medicine...<br /><br />In that case, well played, sir. Well played.<br /><br />Best regards, and happy coding,<br />AssafAssaf Stonehttps://www.blogger.com/profile/14023994489658711542noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-84707189439383044692015-04-23T12:57:54.656+03:002015-04-23T12:57:54.656+03:00Test Driven Development - is a fraud! The program ...Test Driven Development - is a fraud! The program is written using TDD contains more test code than production code. But unless someone is testing the test code? Of course not! Thus, under the guise of testing a project goes further untested code! Trying to follow the principles of TDD, you automatically break them! Moreover, if you have 100% test coverage, you have written your program twice! The process of writing code that only satisfies the tests can and should be automated. And then you do not need a production code, you only need a test code. But what is this test code? This is a declarative description of what should or should not do the program in every possible situation, without describing how it should do it!<br /><br />Do not give in to provocations, TDD - is simply too complicated and perverse declarative programming!Anonymoushttps://www.blogger.com/profile/10864728738200857200noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-42226082734883219652015-04-23T12:57:30.008+03:002015-04-23T12:57:30.008+03:00Test Driven Development - is a fraud! The program ...Test Driven Development - is a fraud! The program is written using TDD contains more test code than production code. But unless someone is testing the test code? Of course not! Thus, under the guise of testing a project goes further untested code! Trying to follow the principles of TDD, you automatically break them! Moreover, if you have 100% test coverage, you have written your program twice! The process of writing code that only satisfies the tests can and should be automated. And then you do not need a production code, you only need a test code. But what is this test code? This is a declarative description of what should or should not do the program in every possible situation, without describing how it should do it!<br /><br />Do not give in to provocations, TDD - is simply too complicated and perverse declarative programming!Anonymoushttps://www.blogger.com/profile/10864728738200857200noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-71774674539541367502014-10-28T16:42:24.857+02:002014-10-28T16:42:24.857+02:00As a road paver, I'm outraged that you'd s...As a road paver, I'm outraged that you'd suggest we use Waterfall methods. Regardless of what our clients may tell us about the condition of the ground, it's impossible to predict what you'll find once you start, so the tasks continue to change, messing up estimates and requiring agility.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-9760775284582324262014-04-08T19:35:32.989+03:002014-04-08T19:35:32.989+03:00@Domenic, thanks for that. It's good to know t...@Domenic, thanks for that. It's good to know that I gave you a good laugh. But don't be mad, read the comments - they're even funnier. There are some people here that didn't get the joke even *after* reading the comments... :)Assaf Stonehttps://www.blogger.com/profile/14023994489658711542noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-87867760675792501612014-04-04T15:11:09.981+03:002014-04-04T15:11:09.981+03:00Perfect!Perfect!Domenichttps://www.blogger.com/profile/15519076486602983122noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-68403778236576171612014-04-04T15:09:48.405+03:002014-04-04T15:09:48.405+03:00There is nothing in the blog post that indicates t...There is nothing in the blog post that indicates to me it is a joke until the disclaimer... I don't know why you did this to me! I was so mad until I read the comments lolDomenichttps://www.blogger.com/profile/15519076486602983122noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-53303967996000564802013-08-01T11:03:49.868+03:002013-08-01T11:03:49.868+03:00Reasons are not strong enough to consider .Even fo...Reasons are not strong enough to consider .Even for small project i think automated test is a good choice .thinktankhttps://www.blogger.com/profile/07701607514796006407noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-88256406041158487852013-05-05T14:47:05.693+03:002013-05-05T14:47:05.693+03:00Great post, yet so sad that the subtle sense of hu...Great post, yet so sad that the subtle sense of humour was lost on so many of the commentors...lazygekkohttps://www.blogger.com/profile/11112586897236426455noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-75294070270903476192012-12-21T13:46:23.057+02:002012-12-21T13:46:23.057+02:00Reason #11: The team has written "automated&q...Reason #11: The team has written "automated" tests using QTP or similar tools and they believe their testers are super awesome to do all regression every single time. <br /><br />Reason #12: The project sponsor has lot of money to pay for regression testing in every iteration and also doesn't mind spending additional one grand on rework due to defects.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-42412295114505825272012-12-08T12:47:02.182+02:002012-12-08T12:47:02.182+02:00How about Reason 0 - Real Programmers never make m...How about Reason 0 - Real Programmers never make mistakes?Assaf Stonehttps://www.blogger.com/profile/14023994489658711542noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-64131847443165812112012-12-08T10:14:43.157+02:002012-12-08T10:14:43.157+02:00Awesome!
http://i.imgur.com/mcmVW.gifAwesome!<br />http://i.imgur.com/mcmVW.gifAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-2841548282984909622012-12-07T10:19:13.179+02:002012-12-07T10:19:13.179+02:00That this post was satirical was completely obviou...That this post was satirical was completely obvious by the time I got to the second point. No disclaimer required. <br /><br />The funniest part about it is all the comments from people who didn't get it...Anonymoushttps://www.blogger.com/profile/03400814340736190250noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-86988140877744064052012-12-07T00:11:47.829+02:002012-12-07T00:11:47.829+02:00No reason 0? What kind of programmer are you?!
BT...No reason 0? What kind of programmer are you?! <br />BTW, Great article! :)Ivan Stepaniukhttp://blog.istepaniuk.comnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-632122156129041682012-12-06T23:50:32.544+02:002012-12-06T23:50:32.544+02:00If there's no client - why write it in the fir...If there's no client - why write it in the first place?Unknownhttps://www.blogger.com/profile/14192210598563272220noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-68835194042754785932012-12-06T20:46:52.655+02:002012-12-06T20:46:52.655+02:00This was intended to be a humorous blog post but i...This was intended to be a humorous blog post but it didn't come across that way. I think a lot of people are going to miss the very subtle humor here and take you seriously. <br /><br />Perhaps if you added a final paragraph to let the less astute readers in on the joke?Unknownhttps://www.blogger.com/profile/05714935232824727006noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-37924130143093635812012-12-06T20:41:34.096+02:002012-12-06T20:41:34.096+02:00thank you, that was great! :)thank you, that was great! :)Tomek Kaczanowskihttp://practicalunittesting.comnoreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-50316812285943667752012-12-06T20:16:20.932+02:002012-12-06T20:16:20.932+02:00Yeah. Same. I am a heretic with regards to unit te...Yeah. Same. I am a heretic with regards to unit tests. I think the religious nature with which people TALK about it is overblown and the reality almost always falls short. The further you get from critical shared code, the less the value the effort delivers (IMHO). This is context dependent, of course.<br /><br />10 and 8 actually make sense to me. I started reading this thinking it actually was a list of times when unit testing is overblown. There are times where that is true, religion be damned.Kevin Galliganhttps://www.blogger.com/profile/10735391703364443283noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-46538469050277686572012-12-06T19:34:25.542+02:002012-12-06T19:34:25.542+02:00Great ! At begining I wasnt think that was a joke ...Great ! At begining I wasnt think that was a joke ;-)Anonymoushttps://www.blogger.com/profile/03714177670165804418noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-55363067135114425492012-12-06T19:30:23.175+02:002012-12-06T19:30:23.175+02:00Totally agree... TDD is not a silver bullet, indee...Totally agree... TDD is not a silver bullet, indeed, TDD isn't engineering per seDustin Ghiahttps://www.blogger.com/profile/12889194226245084576noreply@blogger.comtag:blogger.com,1999:blog-2660291115609609354.post-7492982799213811592012-12-06T13:27:08.794+02:002012-12-06T13:27:08.794+02:00I guess they simply refer to the fact that, so far...I guess they simply refer to the fact that, so far, nobody has been able to explain what gravity is or where it comes from, just observe its effects. As for evolution, same thing goes for what its mechanisms are... is it really just successful randomness? or is it driven by something else? Ever heard of syntropy? http://www.syntropy.org/<br />So yes, they are JUST theories, but I see your point in that they work out pretty well... which might not be the case for all computer scientists and TDD (what? what do you mean "flame-throwers ready, aim,..."?) :D Alexandre Madurellhttps://www.blogger.com/profile/15376408221742961265noreply@blogger.com