1
3 Comments

Test Driven Software Development Platform

a place where you write tests, or write solutions (implementation) of other people tests. I will have a simple implementation soon, but still wondering where to take it in the longer term: it could be a marketplace where you write a test, and some freelancer write a private solution which is revealed only when paid, of course a reputation system will be important; or it could be a tool for technical SW managers, where team members pick tests to solve in a job queue style, "stealing" jobs from the queue. Or maybe it could be used like a puzzle site where people just submit tests and solutions and discuss, or gamify collecting reputation... who knows! I'm quit excited about this. I know TDD (test driven development) did not succeed, but this brings distributed TDD, and a test is the best SW specification after all right? What do you think?

on February 14, 2020
  1. 2

    Feel like after I've written a test suite, I have it in my head mentally enough to do the implementation as well. Writing the test and then outsourcing the associated business logic would mean I'd still have to review the code to ensure it's actually correct. Also curious how this would work outside of just simple problems, since there tends to be domain and platform knowledge that solutions would have to potentially work / interface with.

    Curious why you think that TDD didn't succeed? Are you speaking strictly in terms of unit tests, and not factoring in e2e and BDD (which IMHO are both still fundamentally TDD). As somebody that writes tests every day, I'm pretty confident that while maybe not as adopted as it should be, it hasn't necessarily failed.

    Could definitely see this being like hacker rank, but not being familiar enough with hacker rank, I'm unsure if they allow you to submit your own "tests", so some sort of crowd sourced brain teasers would be fun!

  2. 1

    I wonder why would this be useful. Tests in many cases are very specific and tied to implementation of the original idea, so I would love to understand how can there be a "generic" solution to writing tests.

    1. 1

      The way I see it- the first version will be good only as a game / curiosity where you can challenge developers to solve some tests. Next versions could work as a tool for SW dev tool like this: 1) the test code is not public, only for the team 2) you write add a test much like you do for CI, tests have meta info on cloning, configuration, population of databases, etc. 3) You define which files can be touched to implement the test 4) all tests are run against any solution, so that nothing else breaks. 5) there is a tasklist managing who is working on what test, will not allow for two devs to waste their time on the same one. Imagine this: you want a new http api endpoint, so you just add a test to the already existing repo. The configuration sets-up your server, a db, etc. You only allow to touch the "api.go" file for this.

      This is the vision at least :) there is a third mode of operation, the "marketplace" where you pull some public code and write a public test. The test would still be able to install database, etc.