Quantcast
fastlane insider
Results 1 to 13 of 13
Like Tree3Thanks / Likes
  • 1 Post By Bruce
  • 1 Post By Icy
  • 1 Post By bernieshawn

Thread: Test Frameworks for Proprietary Software

  1. #1
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default Test Frameworks for Proprietary Software

    I'm never sure if I should post these in the Software or Development forum...

    On my project I am currently going through and building out a full unit and integration test framework for my code. I opted not to go a single compiled C route for security reasons, so I am working with several variations and implementations of the same code base in different languages. Ever heard that saying that for each line of code you should have 5 lines of test code? Ya... my solution files are getting huge now.

    The reason for developing such a large and thorough test framework is simple, I wish to sell my company and it's software and the buyer will almost certainly want tested code. The tricky part is that I'm one of the few developers who is still hardcore against unit testing because of the severe design implications. While I have solid integration tests for each SDK and service, my unit tests often borderline as integration. Regardless, it tests the functionality of the code and will be well received by serious potential buyers.

    There are two groups I wish to address here:
    Entrepreneurial Software Developers:
    Entrepreneurs Who Outsource Development:

    Are you planning on selling your proprietary software company?
    If yes, what are your plans for test frameworks?
    Do you already create test frameworks for everything or what are your plans?

    Thought it would be interesting to get another business perspective on it for small businesses.

    As for what inspired this post, I started blogging for self-branding (I hate self branding hahaha) and here's the high level reason why I despise unit testing. If you're not a dev, don't worry about it haha.
    David Knise | How Unit Tests Often Break Encapsulation
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  2. #2
    Bruce is offline
    Fastlane Driver
    Reputation Speed
    25 kph

    Joined
    Feb 2012
    Locale
    Canada
    Posts
    110

    Bruce's Avatar

    Default

    I think as long as your software gets sales and has a steady income, it's probably good and stable enough to any buyer's eyes. No need to develop a hardcore test framework yet.

    I wouldn't worry too much about how sellable the code is for now, just develop the software to suit the needs of it's users.

    At the end of the day it's about kick ass software that sells like hotcakes, that's what business buyers would be looking for.

    For me I personally haven't worried to much about testing yet.

    My original plan was to market out the idea and offer beta signups etc, and when that was done start development. But however I managed to find a group of potential customers who are willing to help me grow my software before I start publicly selling it.

    This lead to me developing a barebone version of my idea and they've been using it for a few months now. Just waiting til the end of the year to hear the results. Can't wait to hear what features I should add and what I should remove etc.

    Best of luck!
    dknise likes this.

  3. #3
    MJ DeMarco is online now
    Author of TMF
    Reputation Speed
    Admin

    Joined
    Jul 2007
    Locale
    Phoenix, AZ
    Posts
    11,182

    MJ DeMarco's Avatar

    Default

    David,

    I don't meant to hijack your thread but what is your core programming competency? Are you a PHP guy? RoR? Python? Or a master at all?

  4. #4
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default

    Quote Originally Posted by Bruce
    I think as long as your software gets sales and has a steady income, it's probably good and stable enough to any buyer's eyes. No need to develop a hardcore test framework yet.

    I wouldn't worry too much about how sellable the code is for now, just develop the software to suit the needs of it's users.

    At the end of the day it's about kick ass software that sells like hotcakes, that's what business buyers would be looking for.
    That's the thing that it really comes down to for me. Since I already know what my plan and strategy was going to be before I sat down at the table, I designed the system to be as extensible and readable as possible. Although my SDK's hit 9 different frameworks, each one of them is completely commented with their associated documentation format. There's only one class in each of them that's actually publicly visible haha, so the rest of the documentation and structure is there for future internal programmers.

    While I was at Microsoft, I had to continually fight against unit test frameworks for a split between unit and integration. Although a unit test framework would have hit about 70% of the code, they wanted to use DI so they wanted to use DI on everything for mocks and fakes as well as have no private methods or variables to hit 90%. If you wanted to use a class A that completed it's task using classes B, C, and D, you had to pass in B, C, and D to the constructor of A, breaking half the rules for OOP haha.

    Quote Originally Posted by Bruce
    For me I personally haven't worried to much about testing yet.

    My original plan was to market out the idea and offer beta signups etc, and when that was done start development. But however I managed to find a group of potential customers who are willing to help me grow my software before I start publicly selling it.

    This lead to me developing a barebone version of my idea and they've been using it for a few months now. Just waiting til the end of the year to hear the results. Can't wait to hear what features I should add and what I should remove etc.
    That's good that you managed to find some buyers! I did as well, and they are anxiously awaiting the release. For the record, mine are service based customers. Is yours a product or service?

    Best of luck, and I'd love to keep up on your progress!

    Quote Originally Posted by MJ DeMarco View Post
    David,

    I don't meant to hijack your thread but what is your core programming competency? Are you a PHP guy? RoR? Python? Or a master at all?
    Great question, I'm primarily a .NET C# developer, although I'm just as well versed in Java. I use NUnit for .NET and JUnit for Java test frameworks. I work well with any c-based language.

    As for web, I went with PHP but wouldn't call myself a master at it just yet. Although I won't be setting up tests for the front end, the majority of the work is in backend services that would benefit from test validation.

    As I know you have already built a big site with a robust backend and successfuly sold, how did you approach this?

    Thanks MJ
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  5. #5
    MJ DeMarco is online now
    Author of TMF
    Reputation Speed
    Admin

    Joined
    Jul 2007
    Locale
    Phoenix, AZ
    Posts
    11,182

    MJ DeMarco's Avatar

    Default

    Quote Originally Posted by dknise View Post
    As I know you have already built a big site with a robust backend and successfuly sold, how did you approach this?
    I would hardly call it "robust", in fact, it was a jumbled mess of spaghetti code. The bottomline was: It worked for the end users. The new company revamped the entire thing, which was something I recommended when I sold it.

  6. #6
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default

    Quote Originally Posted by MJ DeMarco View Post
    I would hardly call it "robust", in fact, it was a jumbled mess of spaghetti code. The bottomline was: It worked for the end users. The new company revamped the entire thing, which was something I recommended when I sold it.
    Oh wow haha, what was your language of choice back then? I'm sure you've talked about the project in more detail somewhere online before, do you have any links?

    Someday I would love to buy you a beer or seven to pick your brain and chat!
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  7. #7
    Icy
    Icy is offline
    Fastlane Veteran
    Reputation Speed
    85 kph

    Joined
    Feb 2009
    Posts
    810
    Blog Entries
    1

    Default

    Quote Originally Posted by dknise View Post
    The tricky part is that I'm one of the few developers who is still hardcore against unit testing because of the severe design implications. While I have solid integration tests for each SDK and service, my unit tests often borderline as integration. Regardless, it tests the functionality of the code and will be well received by serious potential buyers.

    How do unit tests have design implications? That article just has a sensationalist title with no substance.

    Private methods don't need to be exclusively tested if they are hit through the public interface.

  8. #8
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default

    Quote Originally Posted by Icy View Post
    How do unit tests have design implications? That article just has a sensationalist title with no substance.
    Unit testing doesn't have design implications, designing code to get 90%+ code coverage in unit testing can.

    And ya I didn't really write much. I'll be writing a much longer, more technical version with code examples soon. I'm not a fan of abusing DI for mocks and fakes and exposing code that should be hidden which is often what ends up happening. Rather than writing a "unit" test with mocks of every file IO object that gets used, just write an integration test. I've looked through test frameworks that faked everything in a method with a fake return value so the assertion at the end of the test was actually asserting if the fake test objects were written right, not the code hahaha.

    Also... like I said at the bottom... for every person that's on my side of testing, there's ten on the other. If you're one of them, I'll understand.
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  9. #9
    Icy
    Icy is offline
    Fastlane Veteran
    Reputation Speed
    85 kph

    Joined
    Feb 2009
    Posts
    810
    Blog Entries
    1

    Default

    Unit testing doesn't have design implications, designing code with getting 90%+ code coverage in unit testing can.
    I agree with you here. There will always be situations that were misjudged (or simply hard to cleanly allow), and result in code that just isn't possible to unit test cleanly. Faking the tests to simply have coverage is a fools game.

    I've looked through test frameworks that faked everything in a method with a fake return value so the assertion at the end of the test was actually asserting if the fake test objects were written write, and nothing about the code hahaha.
    hahaha, geez.. I'm happy to have never have come across such code.


    Also... like I said at the bottom... for every person that's on my side of testing, there's ten on the other. If you're one of them, I'll understand.
    It's completely a game of cost\benefit for me. If something was 'interesting' to write, I'll write a few tests to have a bit of a sanity check, and in the case of a future bug, throw in a check for that (having a brain fart on the actual term..). I'm certainly no purist with it, but there are definitely benefits.
    dknise likes this.

  10. #10
    MJ DeMarco is online now
    Author of TMF
    Reputation Speed
    Admin

    Joined
    Jul 2007
    Locale
    Phoenix, AZ
    Posts
    11,182

    MJ DeMarco's Avatar

    Default

    Quote Originally Posted by dknise View Post
    oh wow haha, what was your language of choice back then?
    .net / vb

  11. #11
    bernieshawn is offline
    Fastlane Driver
    Reputation Speed
    45 kph

    Joined
    Jul 2011
    Age
    25
    Posts
    256

    Default

    Quote Originally Posted by MJ DeMarco View Post
    I would hardly call it "robust", in fact, it was a jumbled mess of spaghetti code. The bottomline was: It worked for the end users. The new company revamped the entire thing, which was something I recommended when I sold it.
    Hey MJ,

    Did the fact that the code was a mess and they had to rewrite it affect the sale price at all? Would they have been willing to pay more if the code had been cleaner and more organized
    dknise likes this.

  12. #12
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default

    Quote Originally Posted by bernieshawn View Post
    Hey MJ,

    Did the fact that the code was a mess and they had to rewrite it affect the sale price at all? Would they have been willing to pay more if the code had been cleaner and more organized
    I'm interested in this as well. I've been designing my framework around the concept of selling it as a pre boxed network for the buyer, hoping that it will add to the value.
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  13. #13
    dknise is online now
    Fastlane Driver
    Reputation Speed
    145 kph

    Joined
    Aug 2012
    Posts
    495
    dknise's Avatar

    Default

    Little update guys, I had a meeting over the weekend with a company that may be interested in acquiring us. The question came up about the quality of the code base. I explained that I had purposely coded and documented it for the purpose of passing off the code base, whether that be to new employees or an entirely separate team. I also noted that the test frameworks were currently in development and that the code would come completely architected right out of the box. That was their expectation with the price evaluation and said a rework would have significantly reduced the offer.
    Company Site: www.micropression.com
    Personal Blog: www.davidknise.com

  14. Speed Up Your Fastlane Process! MJ Recommends The Following Books...

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [Misc] From one software developer to those looking to hire software developers
    By dknise in forum Internet / Mobile Apps / Software
    Replies: 3
    Last Post: Oct 5th, 2012, 11:04 PM
  2. Building custom frameworks vs. ready-made
    By somewhatdown in forum Internet / Mobile Apps / Software
    Replies: 0
    Last Post: Mar 1st, 2012, 08:47 PM
  3. Any software engineers want to help me build animation software?
    By fierce86 in forum Franchising, Chains, Traditional B&M
    Replies: 0
    Last Post: Aug 19th, 2011, 12:30 AM
  4. Website / Landing Page Conversions - test, test, test
    By santiago in forum Internet / Mobile Apps / Software
    Replies: 6
    Last Post: Mar 7th, 2009, 09:46 PM
  5. test
    By MJ DeMarco in forum Forum News, Updates, & FAQs
    Replies: 14
    Last Post: Mar 6th, 2008, 10:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •