Slashdot Mirror


Software Approvals For Consumer Markets?

Odkin asks: "Some friends and I are struggling with a hardware project which is stalled due to costly consumer market approvals (which is alright I guess). But it struck me, why are there only market approvals for hardware and not software? The hardware approvals include functionality tests that ensure that the product works as intended in any way the user would handle it (even unsuitable use). Would such approvals for commercial software improve the quality of the products, including minimizing the risk of data loss and heightening the security? In other words, would it facilitate or inhibit the creation of good software?"

13 of 227 comments (clear)

  1. Probably would by KingKire64 · · Score: 4, Interesting

    make a better product. However it would make it real hard for small software houses to put out software. Plus isnt the EULA's whole point to get around accountability in a product?

    --
    "All I can tell the "lesser of two evils" folks is that if they keep voting for evil, they'll keep getting evil."-Lp.org
    1. Re:Probably would by DeICQLady · · Score: 2, Interesting

      The problem with voluntary tho is you can't promise someone will get paid so it would never get done.

      If there were a reliable (testing) house that could offer it at relatively low cost then maybe we could incorporate most types of developement. *shrug*

  2. Video game makers do it by ruzel · · Score: 3, Interesting

    Most small video game makers have to run there final versions by the box makers (Sony and Xbox). They run it through a bastion of tests before they will let it out to the consumer market. It doesn't seem to harm the video game makers ability to create good games. Of course, this doesn't include usability testing.
    ______________________

  3. This is the role of the project manager by Anonymous Coward · · Score: 1, Interesting
    The project manager is the one that should be writing the automated functional/customer level testing. They are the closest to the customer and hence the final requirements. It is the only way to ensure that the customer's requirements are met , are easily verifiable and easily quantifiable for both the customer and the software team.

    It is the Project Managers responsibility to get the customers requirements correct, it is also their responsibility to ensure that the requirements are met through automated functional level testing.

    cam--

  4. Re:Is software a bridge or a burger? by Frymaster · · Score: 3, Interesting
    and some software is like... a lawnmower.

    ever read the warranty that comes with yr lawnmower? about how it's only valid if the mower is used "reasonably and correctly"? if you run over rocks or now nine foot wet grass, the warranty won't cover damage. most software is like that.

    testing is done for "reasonable" use and the software shop regards "unreasonable" use as being either a) uncovered or b) a violation of the eula.

  5. SQA by VisorGuy · · Score: 2, Interesting

    Software Testing/Quality Assurance is supposed to perform this function.

    The problem is often insufficient tools.
    The company I work for as a Software Test Automation Specialist is looking at WorkSoft Certify and we like what we see, except the price-point (approximately triple our current tool: Rational Robot), however, that is currently in negotiations.

    --
    This user account is inactive account replaced by the PDA
  6. Re:Government Regulation.... uuuuughh.... by RLW · · Score: 3, Interesting

    You have never worked in an ISO9000 shop.
    Of course that doesn't mean that processes are any good. It does mean that the processes are documented and we stand by them.

    There are some good software shops out there that do a good job of vetting their code of bugs: like the guys who make VMWare. Then there are other shops that don't: like the guy who make MS Windows.

    Besides it's too late to require government involvement. The accepted industry practice of putting out buggy crap has already been established with the notable exceptions where NASA(proof that one can't catch every bug) and the FDA(proof that one can wade through immense bureaucratic red tape) are concerned.

  7. It Sort Of Does by Anonymous Coward · · Score: 1, Interesting

    Most software goes through a few stages of testing, namely QA (or QC depending on your favorite acronym), alpha then beta testing. At that point it is deemed acceptable and released to the public. The nice part about software vs. hardware is the ease of upgrading, so it doesn't have to be 100% out the door.

    Plus, who wants to build a hardware web server, application server, etc? Would it be fast? Yes. Would it be maintainable? No. Could you design it so you could add dynamically to the hardware? Probably. Would that be insanely expensive and take forever? Yes.

    You get the idea. Software generally is an application of quick design meant to short-circuit designing things in hardware and give the option of easy upgradeability.

    If your real question is, why is most software so crappy... if it's open source, fix it!

  8. Speed, Price, and Quality by tr0yt4b0r · · Score: 2, Interesting

    While it would of course be nice to have software without errors, the problem then becomes price and time to market. There is a saying in the project management world, "Speed, Price, and Quality. Pick two of the three." I've found this saying to be pretty accurate.

    As consumers we tend to want everything now, and cheaply. This would obviously push down the quality of the product. Being an impulse buyer myself I find most products pretty much suck these days because manufacturers (of software or hardware) know that we want everything now and cheap, so they don't focus on quality at all, just time to market. I'm of course exagerating a bit, but it does seem consumerism kills quality.

  9. Re:Approvals are for a different purpose. by iCoach · · Score: 2, Interesting

    Was just thinking, wouldn't "safety" in the mind of a software engineer being "failing safely"? i.e. not bringing down the entire system due to one application? I don't mind the single application so much as I mind memory leaks and security holes that tend to decimate the rest of my applications. I would think that an at least somewhat "cookie cutter" approach could be taken with these issues. Granted I wouldn't recommend them for an open source project. My thought is that if you intend to make money off it: it cannot interfere with another project (barring that it is designed to do so i.e. Spybot S&D), it cannot crash the entire system, it must be secure. Of course in this day and age people accept that things aren't going to be secure, not without insane overhead. Well that is what the certification process is about. UL charges $$$ to have things UL certified. They charge even more to come on-site to tell you that you can't call it UL certified until there are 3 additional stickers in place (been there). So create the UL of software for commercial applications. If you want to run it on a PC and make money from it you have to have it XX certified. It costs $3000 to have the software certified, and takes x months. It would slow the release of commercial software but at least stability would be improved. And many crashes are due to third party software, even the interaction between other applications. -Coach

    --
    "Never upset a goalie, getting hit with a blocker is an unpleasent experience - facemask or not." -Me
  10. Software and hardware are very different by DroidBiker · · Score: 2, Interesting
    Most software DOES go through fairly stringent approval processes. There are even some standardised ones (WHQL for example), but I haven't seen a good standard yet.

    The problem is in defining what exactly consitutes a GOOD approval process for any given piece of software. It's often easier to define this for hardware. You define proper operating ranges and how the thing should respond when used or abused in specific ways, and the result is often a product that will behave as expected in almost all realworld conditions.

    In software the failure cases tend to be more open-ended. The set of all possible types of input to the system may involve infinite permutations. You can only test the ones you thought of, and if you thought of them they're probably handled correctly in the first place. If you're developing a commercial app you have to deal with the fact that the hardware and OS your program relies on may in fact be subtly flawed. Also, any set of tests for a piece of software must be custom designed for that piece of software.

    Ideally software testing is more of a verification process than a corrective process. Your tests should (but rarely are) be created at the same time as your design and run continuously throughout the project lifecycle.

  11. You can't patch hardware by GringoGoiano · · Score: 2, Interesting

    You can't easily patch hardware. The consumer:

    • sends in the hardware for repair
    • waits 4 weeks while you service department opens the device, replaces the chip, does a burn-in test
    • gets fed up waiting, buys your competitor's product next time round

    with software once you identify the problem and fix it, the customer might be out of commission a half hour while the download, install, and possibly reboot the machine.

  12. And 90% of the time it's just snake oil by Moraelin · · Score: 2, Interesting

    Sorry, I'll bite. That's all good and fine in theory, but in practice that's another story.

    I do not regard stuff like a game crashing every half an hour as being caused by "unreasonable" use. Or for example: which of Fallout 2's many script bugs were "unreasonable" use?

    I also do not regard stuff like "oops, the user used the back button in the browser" or "oops, the user opened a link in another window" on web sites to be "unreasonable" use. Use of bog-standard browser features, that have been around for more than a decade, _is_ reasonable.

    It's the retarded ex-burger flippers who moved into software development during the dot-bomb that are unreasonable there. If Joe Coder can't use the HTTP session right (yes, including supporting multiple windows _and_ the back button) then the only "unreasonable" part is Joe Coder still being employed. Period.

    Etc.

    Basically I don't know about mandatory government testing, but I would very much like to see some legal responsibility that can't be waved away with an EULA. Some part that says that your responsibility is to the user, not just the current "hey, we only need to take their money. And then who the fsck cares if it works?"

    I'd also like to see some legal responsibility for the marketroids, same as in any other industry. If you say that a piece of software does something, then it damn better do that, to the letter. Just like if a steel company's marketroid says "we'll sell you 10 ft long, 1 inch thick beams, with 0.1% carbon content", you can sue the pants off those guys if it's only 9 ft long and with a completely other carbon content.

    And yes, I _am_ a software developper. It just makes me sick to see what this industry has turned into. It's the biggest snake oil operation in history. Hundreds of billions of dollars worth of snake oil every year.

    And this doesn't come out of nowhere. It's draining the rest of the society to keep a bunch of cheats, liars and leeches in business.

    --
    A polar bear is a cartesian bear after a coordinate transform.