Files
2012-02-21 01:15:00 -05:00

1 line
14 KiB
JSON

[{"user_id": 2435, "stars": [], "topic_id": 14684, "date_created": 1300885256.7849131, "message": "I'm a huge believer in tests and properly tested code, but I am about to give a talk/presentation to a big crowd that has not bought the idea (yet). If you had to name the single most important reason why testing is good/necessary I would love to hear it", "group_id": 292, "id": 416859}, {"user_id": 10377, "stars": [], "topic_id": 14684, "date_created": 1300887026.002476, "message": "isn't the whole point to be able to make changes in the code with confidence you aren't going to break something by accident?", "group_id": 292, "id": 417203}, {"user_id": 5673, "stars": [], "topic_id": 14684, "date_created": 1300888202.200001, "message": "Agreed, \"being able to know the impact of changes you make with a fair degree of confidence.\"", "group_id": 292, "id": 417427}, {"user_id": 2313, "stars": [{"date_created": 1300891125.494699, "user_id": 651}, {"date_created": 1300896712.9254839, "user_id": 18316}, {"date_created": 1301312517.7818079, "user_id": 8391}], "topic_id": 14684, "date_created": 1300891070.3344481, "message": "You can be a lot more confident when it comes to refactorings, optimizations, etc. when everything is tested. Once your accustomed to it you will get nervous about every change to untested code though.", "group_id": 292, "id": 417754}, {"user_id": 2313, "stars": [], "topic_id": 14684, "date_created": 1300891240.671725, "message": "However it is important to realize that tests are not a guarantee that your code has no bugs, they can however help you find them and prevent you from introducing known ones.", "group_id": 292, "id": 417768}, {"user_id": 7376, "stars": [{"date_created": 1300935711.1265659, "user_id": 927}, {"date_created": 1300980602.345979, "user_id": 12791}, {"date_created": 1301706815.5268769, "user_id": 5145}], "topic_id": 14684, "date_created": 1300892515.6191521, "message": "#1. Helps you think about how your APIs should work #2. Relieves stress in knowing that your change did not break something, somewhere else in the code. #3 An absolute must for public APIs, breaking someone else's code is very rude :)", "group_id": 292, "id": 417959}, {"user_id": 18316, "stars": [], "topic_id": 14684, "date_created": 1300896681.9763949, "message": ":)", "group_id": 292, "id": 418483}, {"user_id": 18316, "stars": [{"date_created": 1301312524.4539051, "user_id": 8391}], "topic_id": 14684, "date_created": 1300896568.0448151, "message": "Bottom line: You'll be more productive.", "group_id": 292, "id": 418478}, {"user_id": 18316, "stars": [], "topic_id": 14684, "date_created": 1300896679.699765, "message": "And if your code isn't tested. It's already broken.", "group_id": 292, "id": 418482}, {"user_id": 23965, "stars": [], "topic_id": 14684, "date_created": 1300896774.6835549, "message": "Confidence.", "group_id": 292, "id": 418489}, {"user_id": 3456, "stars": [], "topic_id": 14684, "date_created": 1300900455.6114089, "message": "If your changing code that doesn't have tests then your basically guessing that your changes have not made things worse.", "group_id": 292, "id": 418973}, {"user_id": 21018, "stars": [], "topic_id": 14684, "date_created": 1300901028.715713, "message": "Writing tests up front gets that thinking out of the way for that set of code. Free to focus on just the code I'm adding and let my tests take care of the rest. More productive.", "group_id": 292, "id": 419016}, {"user_id": 14309, "stars": [], "topic_id": 14684, "date_created": 1300904842.5253861, "message": "@Dasich good that I've never used testing.", "group_id": 292, "id": 419496}, {"user_id": 7378, "stars": [{"date_created": 1300918655.420814, "user_id": 141}], "topic_id": 14684, "date_created": 1300917643.302717, "message": "I like tests. Though I also like the pinboard guy's idea that he just keeps his codebase as small and simple as possible so he undertands it 100% and thus doesnt need tests", "group_id": 292, "id": 421296}, {"user_id": 7378, "stars": [], "topic_id": 14684, "date_created": 1300917706.480269, "message": "Erm that should say: \"and thus doesn't need tests\". I agree they're a great thing to have though", "group_id": 292, "id": 421300}, {"user_id": 927, "stars": [], "topic_id": 14684, "date_created": 1300935837.099612, "message": "I like avoiding regression but would make sure to avoid TDD dogma by acknowledging that testing up front only works when you already know the correct form and stress that it's fine to write tests later for open-ended problems", "group_id": 292, "id": 423535}, {"user_id": 11592, "stars": [], "topic_id": 14684, "date_created": 1300949632.1650951, "message": "@acdha Tests-first approach helps a lot when you are just sat down and trying to imagine how it would work. And doodling with code is fun too.", "group_id": 292, "id": 424473}, {"user_id": 24439, "stars": [], "topic_id": 14684, "date_created": 1300949757.790323, "message": "Until your code has been tested, you don't know that it does anything, much less what it's supposed to do. Until your code has automated tests, you don't know that it *still* does what it's supposed to do.", "group_id": 292, "id": 424480}, {"user_id": 5174, "stars": [], "topic_id": 14684, "date_created": 1300954167.864717, "message": "Python is a very dynamic language - therefore a large proportion of bugs will only be found at runtime - and therefore testing is far more important than with a static language like Java (although it's important for those languages too :) ).", "group_id": 292, "id": 424687}, {"user_id": 927, "stars": [{"date_created": 1301706895.7755001, "user_id": 5145}], "topic_id": 14684, "date_created": 1300966823.915957, "message": "@dpwiz It *can* help but it can also lock you into a wrong approach because people are reluctant to throw out tests or even make a commit which will break many of them. The real point is simply that tests are supposed to serve you, not the other way around", "group_id": 292, "id": 425700}, {"user_id": 3354, "stars": [], "topic_id": 14684, "date_created": 1301116847.982635, "message": "Surely commits shouldn't break tests. You aren't supposed to break the build, and the correct procedure is to commit the updated tests with the updated code.", "group_id": 292, "id": 444894}, {"user_id": 4937, "stars": [{"date_created": 1301141011.9521561, "user_id": 5778}], "topic_id": 14684, "date_created": 1301140974.8933749, "message": "To me, tests are a big part of satisfaction in a job well done", "group_id": 292, "id": 445974}, {"user_id": 20554, "stars": [{"date_created": 1301171030.1152661, "user_id": 14874}, {"date_created": 1301285863.083504, "user_id": 5778}, {"date_created": 1301299150.9470191, "user_id": 1175}], "topic_id": 14684, "date_created": 1301141252.7720909, "message": "The utility of testing really shines in a continuous deployment setup. It's about the ability to push to production at a moment's notice, and if you can do that, you're moving faster than your competition -- a good thing. \n\nNow for a metaphor: you can play without a safety net (your tests) if you're really talented, or if the risk of failure is low (e.g. you have no users or revenue). But if you fall (you let a regression slip into production), you'll feel some pain (lost users, lost revenue). Tests are your safety net to provide you the basic sanity check that you haven't broken anything and prevents regressions from making their way into production. They don't save you in every case, but they work for many cases.", "group_id": 292, "id": 445977}, {"user_id": 7, "stars": [], "topic_id": 14684, "date_created": 1301168635.676899, "message": "Honestly, the answer is it prevents bugs. e.g. it's almost impossible for us to break PyPy without also having our tests fail", "group_id": 292, "id": 447221}, {"user_id": 7, "stars": [{"date_created": 1301357882.744266, "user_id": 12817}, {"date_created": 1303354717.1819201, "user_id": 1264}], "topic_id": 14684, "date_created": 1301168644.3255291, "message": "you build a box of THIS MUST WORK around yourself", "group_id": 292, "id": 447224}, {"user_id": 25106, "stars": [], "topic_id": 14684, "date_created": 1301187948.8985, "message": "@mithrandi With all due respect, this is total bullshit. Have you run the tests for Convore? No? Then you may not be talking to anyone at all! How could you possibly know?", "group_id": 292, "id": 448868}, {"user_id": 24439, "stars": [{"date_created": 1301285072.641026, "user_id": 14578}], "topic_id": 14684, "date_created": 1301200576.614013, "message": "@ramen Tests don't *have* to be automated. I only care that Convore works when I am actually using it, which is easy to verify manually. However, if I was a Convore developer, I would care about all of the features of Convore working all of the time, and thus I would find automated tests highly desireable.", "group_id": 292, "id": 449394}, {"user_id": 24439, "stars": [], "topic_id": 14684, "date_created": 1301200605.6422751, "message": "Of course, there's no guarantee that my tests cover everything perfectly and correctly, but they're still an improvement over manually testing everything all the time.", "group_id": 292, "id": 449397}, {"user_id": 7781, "stars": [], "topic_id": 14684, "date_created": 1301268622.1830261, "message": "Tests prevent a whole class of bugs from cropping up -- those you knew to test for. This is a non-trivial class, and increases in size as an API gets more and more mature and you find more bugs. You can then refactor what's underneath with increasing confidence.\n\nOn the other hand, if the API is still changing often, over-investing in tests will really slow you down at a stage when you're really still just understanding the problem.", "group_id": 292, "id": 453414}, {"user_id": 25106, "stars": [], "topic_id": 14684, "date_created": 1301290355.5695901, "message": "@mithrandi It seems like you don't make a distinction between regular use and manual testing. I think that a subtlety is missing here, but if you consider them equivalent then I can understand the conclusion. Sorry for the rudeness, it just struck a nerve. I certainly agree with your follow-ups.", "group_id": 292, "id": 455474}, {"user_id": 24439, "stars": [], "topic_id": 14684, "date_created": 1301291192.509325, "message": "What I was really getting at is that there are (very important) reasons that we perform testing of software, whether automated unit tests, manual functional tests, or just the very basic \"I did something, did it actually work?\" that almost every user ends up doing from time to time. The progression from manual to automated tests, and from broad functional tests to precise unit tests, is just part of refining testing so that it can more easily be done on a continual basis, and provide more useful information when it fails.", "group_id": 292, "id": 455544}, {"user_id": 24439, "stars": [], "topic_id": 14684, "date_created": 1301291271.6165459, "message": "(and just in case it wasn't clear, I wasn't trying to say that functional tests are somehow \"superior\" to unit tests; they both have important roles to fill, but manual \"functional\" tests are often how people start out testing, before progressing to more automated and more precise forms of testing that often include both automated functional tests, and automated unit tests)", "group_id": 292, "id": 455563}, {"user_id": 24439, "stars": [], "topic_id": 14684, "date_created": 1301291057.7395439, "message": "@ramen Sure, when we talk about \"using an application\" and \"testing\", we generally mean different things. But I think there's enough overlap in most cases between \"using an application\" and \"testing\" to make my generalization reasonably accurate.", "group_id": 292, "id": 455531}, {"user_id": 10890, "stars": [], "topic_id": 14684, "date_created": 1301640087.31743, "message": "is nose still the best automated surveyor over both doctest and unittest?", "group_id": 292, "id": 499811}, {"user_id": 218, "stars": [], "topic_id": 14684, "date_created": 1301660449.340106, "message": "I think unittest2 is reasonably close to nose (at least for the single use I had for nose over the original unittest, which was nicer plugins)", "group_id": 292, "id": 500846}, {"user_id": 7, "stars": [{"date_created": 1301706974.8594301, "user_id": 5145}], "topic_id": 14684, "date_created": 1301676437.849581, "message": "once you try py.test you won't want to go back, it's soooo magic and it feels soooo good", "group_id": 292, "id": 503331}, {"user_id": 27150, "stars": [], "topic_id": 14684, "date_created": 1301688522.310147, "message": "I tried py.test and then went back, and I'm glad. It is magic and feels good, but in every aspect of software development, one has to choose whether to use a mainstream (or mainstream-compatible) solution versus an alternative one. For most my projects, I want 'mainstream' in test infrastructure, language, network protocols, editor, OS (but I go somewhat alt in database, concurrency, messaging, productivity tools)", "group_id": 292, "id": 505230}, {"user_id": 3580, "stars": [], "topic_id": 14684, "date_created": 1301706338.9270289, "message": "oh thank goodness. the title made made thing the 4/1 craziness had taken over convore as well :|", "group_id": 292, "id": 507039}, {"user_id": 4356, "stars": [{"date_created": 1302872740.2213309, "user_id": 1243}, {"date_created": 1302904457.2728429, "user_id": 12404}, {"date_created": 1302914290.6713109, "user_id": 1296}, {"date_created": 1302923157.74438, "user_id": 22109}, {"date_created": 1303007774.6851871, "user_id": 13927}, {"date_created": 1303056877.23192, "user_id": 15292}], "topic_id": 14684, "date_created": 1302869221.379952, "message": "http://i.imgur.com/y7Hm9.jpg", "group_id": 292, "id": 699537}]