Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by n1 on Wednesday June 03 2015, @09:48AM   Printer-friendly
from the wishful-thinking-and-faith dept.

Your average scripter likely isn't writing a whole lot of proofs or going through the rigors of formal program verification, generally. Which is fine because your average scripter also isn't writing software for jet airliners or nuclear power plants or robotic surgeons. But somebody is—and the odds are pretty good that your life has been in their hands very recently. How do you know they're not a complete hack ?

Well, you don't really. Which prompts the question: How is this sort of code tested? It was a short blog post written by Gene Spafford, a professor of computer science at Purdue University, that inspired this particular asking of the question.

http://motherboard.vice.com/read/how-is-critical-life-or-death-software-tested

[Related]: They Write the Right Stuff by Charles Fishman at Fast Company


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Wednesday June 03 2015, @10:56AM

    by Anonymous Coward on Wednesday June 03 2015, @10:56AM (#191527)

    I support professional licensing for the IT/computing field. I have seen incompetence from all breeds of workers. This includes those with degrees, self taught, and certification holders. It as much employers fault for how they interview and select people as it is the incompetent employee. A lot of interviews have a lot of "how much experience to you have with product X version Y?" that don't assess ability to think critically or understanding of foundational concepts. Good licensing programs would mean that universities and trade schools would be forced to ensure students passing the class actually understand what it is about. Due to how critical computer networks, servers, and software are becoming to the functioning of organizations, the amount of data computer systems hold, and how in the OP run safety critical applications, the stakes of incompetency at any level are higher.

    Licensing isn't a panacea, but it would add accountability. For example, software developers writing safety critical applications would have no excuse to not have an understanding of the entire system from the ISA through whatever libraries they use. Help desk employees would have no excuse falling for basic social engineering tactics.

    Believe it or not, in some US states it is possible to get physician licenses, PE, bar membership, etc without a fancy degree. People just have to demonstrate to the licensing board that they have the knowledge and skills one would obtain by going through such a degree program.

    My short answer is a proper licensing program would make sure people have the skills and knowledge to do the proper proofs and testing.

  • (Score: 4, Insightful) by sjames on Wednesday June 03 2015, @11:18AM

    by sjames (2882) on Wednesday June 03 2015, @11:18AM (#191531) Journal

    Simple licensing won't do it. You have to grant authority to match the responsibility. Like a PE, the code cannot ship until the lead developer personally gives it his stamp and signature. Not shouldn't ship, not policy discourages shipping, but can not ship or someone's going to jail.

    People see the low bug rates in NASA code and say why isn't everything else like that? The reason is because if it was, we'd be on the edge of our seats waiting for NT to be approved any day now. And it would be available for only $100,000/seat.

    Instead, what happens is that a very small safety critical subset of the code is written to those standards. The rest is written the usual way and communicates with that tiny safety critical core. The core's job is to never let an unsafe condition exist. That is all.

    Honestly, we're doing fine in that department. Where safety is actually critical, appropriate methodologies have been used and we don't see a lot of problems there. Theriac was a long time ago.

    • (Score: 2) by Wootery on Wednesday June 03 2015, @04:50PM

      by Wootery (2341) on Wednesday June 03 2015, @04:50PM (#191675)

      Honestly, we're doing fine in that department. Where safety is actually critical, appropriate methodologies have been used and we don't see a lot of problems there. Theriac was a long time ago.

      Did you miss the stories about hackable cars and pacemakers?

      • (Score: 2) by sjames on Wednesday June 03 2015, @10:21PM

        by sjames (2882) on Wednesday June 03 2015, @10:21PM (#191804) Journal

        There is a point there, some safety critical applications have not been appropriately treated as such. Perhaps I should have said that where applications HAVE been identified as such, appropriate methodologies have been applied and it hasn't been a problem.

        I don't see how licensing for such applications can help if they aren't correctly categorized in the first place, and it is clearly not needed where they have been identified.

        • (Score: 0) by Anonymous Coward on Thursday June 04 2015, @12:17AM

          by Anonymous Coward on Thursday June 04 2015, @12:17AM (#191828)

          Is this NASA code publicly available? Seems like it would be a good learning tool.

          • (Score: 1) by KGIII on Thursday June 04 2015, @08:24AM

            by KGIII (5261) on Thursday June 04 2015, @08:24AM (#191960) Journal

            Being open to the public is in NASA's charter but the code is probably not open because of "State Secret" which may or may not be justified but we will never know because we do not get to see the code.

            --
            "So long and thanks for all the fish."
          • (Score: 2) by fadrian on Friday June 05 2015, @01:10PM

            by fadrian (3194) on Friday June 05 2015, @01:10PM (#192497) Homepage

            Not really - old processors, limited use outside its intended purpose. The special sauce is in the processes used to build said software, anyhow, not in the software itself.

            --
            That is all.
    • (Score: 0) by Anonymous Coward on Wednesday June 03 2015, @11:55PM

      by Anonymous Coward on Wednesday June 03 2015, @11:55PM (#191822)

      It is pretty well known that complete testing is impossible. Consider the element of time. Have you tested every single time value of the clock that is possible? People talk about code coverage, but what does that mean? Does that mean every line is hit? Every possible combination of branches? All possible states? Consider an application that is a single API end point that takes in a HTTP post with a parsed string? To do complete testing, that might mean the factorial of bits allowed by the posting system. This is even ignoring the limitations of the other systems, such as apache or IIS that your API sits on top of. Or the interaction between your API and other system...or the operating system....or the meta data included in an HTTP post...or the hardware that the system runs on...or the speed of the client computer's network...or solar radiation (a real issue; http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf [toronto.edu] )... or time. So why pretend we can?

      I don't disagree that it is difficult for lay people to filter out the wheat from the chaff or the sentiment that we experts should be doing this regarding software development. Cem Kaner suggested a open certification (http://kaner.com/?p=392 ) process because we don't even have deep agreement on what testing actually is, much less how much is needed. To create a license from the state would suggest we actually do have a solid understanding of how to build software. Heck, most developers don't even know that toUppering Turkish characters can get you into trouble (http://www.i18nqa.com/iuc37-Texin-Critical%20values%20for%20i18n%20testing.pdf )! I think that we as a group don't really know how to develop software, even for medical systems (http://www.popsci.com/technology/article/2012-10/hacker-attackers-could-reverse-pacemakers-distance-delivering-deadly-shocks ), but I hope to get ourselves closer to that point in my lifetime.

      - JCD

  • (Score: 2) by VLM on Wednesday June 03 2015, @12:15PM

    by VLM (445) on Wednesday June 03 2015, @12:15PM (#191545)

    Believe it or not, in some US states it is possible to get ... PE, bar membership, etc without a fancy degree.

    The way my state handles it is the on the job experience / apprenticeship is long enough that you'll be in your 40s if you try that. I guess if you're independently wealthy and very patient you could intern under a lawyer for a decade before taking the bar exam thus skipping law school, but most people won't do that.

    Most of the stuff the .gov does is intended to screw the citizens to the benefit of organizations, which makes this law really weird, because its intended to help the little guy. So say the accreditation bodies are having a stereotypical testosterone inspired pissing match so technically a OB/GYN from Wisconsin can not get licensed in Michigan because their school administrators don't like our school administrators (made up example, almost certainly not true). A law like this short circuits accreditation pissing matches by saying "Well, yeah, but if you were a practicing OB/GYN in WI for more than 15 years you get auto-licensed in MI even if the school administrators are behaving like children and we wouldn't let a non-local new grad work here." Its sort of a statute of limitations kind of attitude... if you're a new grad you'll simply have to meet the new, weird, local standards, but if you're an experienced old hand that counts for more than mere paperwork hoop jumping and you'll do just fine, or at least do better than any noob no matter the noob's paperwork.

  • (Score: 0) by Anonymous Coward on Wednesday June 03 2015, @03:47PM

    by Anonymous Coward on Wednesday June 03 2015, @03:47PM (#191634)

    Professional licensing makes sense in medicine and dentistry because public safety is directly at risk, in nearly every encounter.

    The teaching of law has evolved over centuries and probably doesn't change much from one decade to the next, other than throwing a couple courses to cover the latest faddish subject. So licensing probably makes sense in that field, as well.

    IT is different, it changes very rapidly in comparison. Even most IT professionals had never heard of the Internet, WWW, Java, or n-tier computing until 20 years ago. The dot-com boom led to an explosion in client- and server-side technologies for web page processing, most of which have fallen into disuse. The art of writing GUI applications was a big deal in the '90s; now it's a narrow specialization that most IT professionals consider uninteresting. Now cloud computing is the big deal, but there's no consensus on stack architecture yet. There are also several candidates for hardware replacements for DRAM which could also act as a persistent store, overcoming the drawbacks of today's flash memory. That could revolutionize system architecture in the same way that OS-360 did in the 1960's.

    So, in short, I support targeted certification programs. The marketplace will filter out the weak ones.

  • (Score: 3, Interesting) by SecurityGuy on Wednesday June 03 2015, @04:26PM

    by SecurityGuy (1453) on Wednesday June 03 2015, @04:26PM (#191664)

    I don't think it's that clear. Should we let any old yahoo write the code that runs your pacemaker? Probably not...but maybe if it goes through some formal certification/review/testing. Then letting someone incompetent write it would, in the ideal world, just guarantee you don't pass the testing.

    On the flip side, licensing can be burdensome and useless. I wanted to get an electrician's license, somewhat unnecessarily, because I'd like to make some additions to my own property and I'd like to be able to say they were done by a licensed electrician. When I looked into it, there were requirements like a 2-year apprenticeship. That seems a lot excessive considering the electrical code isn't that long AND any work I did would have to be inspected anyway.

    So sure, a proper licensing program would be good. You can easily institute a licensing program. Proper, though? One that isn't simply protectionist and that does a good job of excluding bad developers, but not excluding great developers with a nontraditional path? I'm skeptical you can make it work.