[erlang-questions] Vá: Email Interview On Inserting Faults into Erlang Programs At Run Time

Attila Rajmund Nohl attila.r.nohl@REDACTED
Thu Apr 30 15:25:25 CEST 2009


2009/4/30, Hoat Do <quangd@REDACTED>:
> Dear Erlang programmer,
>
> We are two BSc thesis students, studying Software Engineering and
> Management at the IT University of Gothenburg Sweden. We are currently
> conducting a research study on the use of fault injection technique
> (http://en.wikipedia.org/wiki/Fault_injection) for evaluating Erlang
> software testing tools. This approach works by inserting faults into
> Erlang programs, and evaluating testing tools by checking if they can
> detect the fault or not.
>
> This study will involve finding out what typical faults exist in Erlang
> programs, and how they can be injected into such programs. We have been
> going through Erlang/OTP releases (R10B-0
> <http://erlang.org/download/otp_src_R10B-0.readme> - R13
> <http://erlang.org/download/otp_src_R13A.readme>A) and other Erlang
> sources to find out what faults have been detected over the years. We
> need your help in finding out how these faults can be injected into
> Erlang programs at run time. Any idea on how this can be done will be
> highly appreciated.
>
> Below are some Erlang faults^1 :
>
> *API mismatches*
> Calling the wrong function/using the wrong arguments
>
> *Race conditions*
> Two parallel processes trying to do something incompatible, e.g. one
> deleting and the other reading a table object
>
> *Wrong context (process)*
> Executing in the wrong context, e.g. trying to read from a table that
> only exists on another Process

My "favourite" kind of faults:
if (Bcchno == no_value) ->
     update(Cell)
end,

similar with case. The other favourite is to implement objects as
gen_servers and have circular dependency between them, leading to
deadlocks. For API mismatches don't forget the wrong return value
type.



More information about the erlang-questions mailing list