Archive for the 'programming' Category

Software Verification

This morning I stumbled across a job advertisement for a “Software Verification Engineer”. In my opinion it is high time that verification spreads and that our industry takes a more responsible approach towards its artifacts, so I was curious to find out which company was advertising.

Unfortunately, the advertisement was a complete disappointment and it only underlined just how miserable a state our profession is in: the “Software Verification Engineer” turned out to be a “Software Tester”. Before you misread this as disrespect for software testers: I fully appreciate the value of the work of software testers…. Only, it is not verification!

Edsger W. Dijkstra’s “Program testing can best show the presence of errors but never their absence.” is folklore. Yet not only do we see job advertisements like the one that made me start this post, even the Wikipedia entry on “software verification” mentions testing as an approach to verification.

The only way to verify software is to rigorously prove that it fulfills its specification.

Improve Problem-Solving Ability

Here are some excellent hints on improving your problem-solving ability. Surely, not all of them will work for everyone, but you may want to try some of them…