Questions tagged [robustness]

Robustness is the ability of a system to continue to run after it detects an error (Steve McConnell, "Code Complete").

Robustness is the ability of a system to continue to run after it detects an error.
/Steve McConnell, "Code Complete"/

As per wikipedia:

In computer science, robustness is the ability of a computer system to cope with errors during execution or the ability of an algorithm to continue to operate despite abnormalities in input, calculations, etc.

The opposite of robust code is fragile code; an example of fragile code would be having a class with all its member variables marked as public.


The benefits of having robust code are many, some of the most important ones are:
1. Easy to change. Robust code is easier to change because external factors don’t affect its behaviour.
2. Less bugs. The more robust the code is, the less combinations that cause a bug in the code.
3. Better integration. Robust code is predictable, so from an integrator point view, is always going to have the same behavior. 4. Consistency. Robust code works fine no matter who, when or how it gets called.
/Robustness, the forgotten code quality/

Several links by theme:
Examples for Robustness Requirements
10 characteristics of a robust application or service

134 questions
7
votes
4 answers

Node.Js in Erlang style?

I am a complete noob when it comes to both Node.Js and Erlang. But wouldn't it be possible to build a Node.js app that emulates Erlang behavior? e.g. you pass json messages across an distributed node.js server park and even pass new code to those…
Roger Johansson
  • 22,764
  • 18
  • 97
  • 193
7
votes
4 answers

Best way to check function parameters: Check for null or try/catch

when implementing/using methods that return or work with instances of objects, what is the most elegant approach to check the function parameters ? Method to call: someType GetSomething(object x) { if (x == null) { return; } // …
Inno
  • 2,567
  • 5
  • 32
  • 44
7
votes
2 answers

How to robustly call third-party code in the presence of exceptions?

In a language which uses exceptions to signal errors, I want to call some third-party code and, if it fails, run fallback code instead. For example: try: result = third_party.fast_calculation() catch: result = slower_calculation() In my…
user200783
  • 13,722
  • 12
  • 69
  • 135
7
votes
5 answers

How to measure robustness?

I am working on a thesis about meassuring quality of a product. The product in this case is a website. I have identified several quality attributes and meassurement techniques. One quality attribute is "Robustness". I want to meassure that somehow,…
Stefan Hendriks
  • 4,705
  • 5
  • 34
  • 43
6
votes
3 answers

Should my script use cp or mv to be more robust?

I have a bash script (Scientific Linux). The script has to operate on a file. Let's say "file.dat" (around 1 GB of size) After some time the scripts is restarted and executes the following: if [ -f file.dat ]; then cp file.dat…
espinozahg
  • 61
  • 1
  • 4
5
votes
2 answers

How do you manage external dependencies for your application?

There are many types of external dependencies. Interfacing with external applications, components or services (e.g. Outlook to send emails, TWAIN or WIA for scanning, ActiveX objects and Web services for various purposes, and so on). What is your…
5
votes
4 answers

Throw runtime warnings in C++

I started using exceptions some weeks ago and now I wonder if there is a way to just throw a warning. This warning shouldn't force the application to exit if it isn't caught. I will give you an example in what situation I would like to use…
danijar
  • 32,406
  • 45
  • 166
  • 297
5
votes
1 answer

android content provider robustness on provider crash

On android platforms (confirmed on ICS), if a content provider dies while a client is in the middle of a query (i.e. has a open cursor) the framework decides to kill the client processes holding a open cursor. Here is a logcat output when i tried…
5
votes
1 answer

Big websites that were developed using Ember.js

I'm considering using Ember.js to develop my new websites. I'm not sure how stable & how much it being used by the community for big projects. Would you recommend using it? Do you know big websites that are using it? Thanks, Lior
liorix
  • 807
  • 1
  • 10
  • 21
4
votes
3 answers

How to simulate a pod failure in kubernetes

In order to make some robustness tests on a multi pod system, I need to simulate somehow a pod failure. I don't want to use scale down on the deployment since it is less realistic. Deleting pods is also not very functional in my case since pods are…
Miliganos
  • 43
  • 1
  • 3
4
votes
7 answers

Null and blank values

What's the best way of writing robust code so that a variable can be checked for null and blank. e.g. string a; if((a != null) && (a.Length() > 0)) { //do some thing with a }
Jonathan D
  • 1,364
  • 2
  • 12
  • 30
4
votes
1 answer

Features of a robust WinForm application

[Based on the strong comment below (dated April 7 and 8, 2010) from when I originally posted this question, I took a hard look at what I wrote and asked myself "Huh? What am I really after here?" I decided drastic action was called for: discard the…
Michael Sorens
  • 35,361
  • 26
  • 116
  • 172
4
votes
1 answer

Strengthen python UDP server

I'm a beginner in python (2.6/2.7) who has been thrown in the deep end to create a network service to an existing python app. I've got a UDP server up and running which works just great but I'm asking for help in making it slightly more bullet…
kingsaul
  • 243
  • 1
  • 2
  • 7
3
votes
2 answers

interprocess::named_upgradable_mutex - remains locked if process is killed

I'm using boost::interprocess::named_upgradable_mutex to synchronize a few processes. I'm using boost::interprocess::sharable_lock and boost::interprocess::scoped_lock to lock the mutex. When testing the synchronization, it looks fine as long as the…
Yochai Timmer
  • 48,127
  • 24
  • 147
  • 185
3
votes
2 answers

What kinds of out-of-band failures am I forgetting to test?

I came across an amazing presentation years ago (which of course I can't find) that listed a bunch of kinds of failures for remote services that people usually don't test for. In addition to timeout, 4xx, 5xx, etc, it listed things like: connection…
1
2
3
8 9