English 中文(简体)
How can the reliability of Software be checked through analysis?
原标题:

How can we analyze the software reliability? How to check the reliabilty of any application or product?

问题回答

First try to define "software reliability" and the way to quantify it.

If you accomplish this task, you will probably be able to "check" this characteristic.

The most effective way to check reliability is going to be to run your software and gather statistics on its actual reliability. There are too many variables in play, both at the hardware and software levels, to realistically analyze reliability prior to execution, with the possible exception of groups with massive resources like NASA.

There are various methods for determining whether a piece of software meets a specification, but most of the really productive ones do this by construction, i.e., by constraining the way in which the software is written so that it can be easily shown to be correct. Check out VDM, Z and the B toolkit for schemes for doing this sort of thing. Note that these tend to be expensive ways to program if you re not in a safety-critical systems environment.

Proving the correctness of the specification itself is really non-trivial!

Reliability is about continuity of correct service.

The best approach to assess reliability of a software is by dynamic analysis, in other words: testing.

In order to reduce your testing time you may want to apply input profiles different from operational one.

Apply various input distributions, measure how much time your software runs without failure. Then find out how far your input distributions are from operational profile and draw your conclusion about how much time the software would have run with operational profile.

This involves modeling techniques such as Markov chains or stochastic Petri nets.

For further digging, useful keywords are: fault forecasting and statistical testing.





相关问题
Fail Fast vs. Robustness

Our product is a distributed system. The modules I work on are fairly new, quite rigorous, well tested. They were developed with recent best practices in mind. Other modules can be considered as ...

NO-SQL reliable for small business app?

I m deciding between go for a NON-SQL engine or a regular SQL one for a document managment system for small bussines. I have experience with firebird/sql server and found a good track of reliability (...

Failure scenarios for reliable UDP?

What could be good list of failure scenaros for testing a reliable UDP layer? I have thought of the below cases: Drop Data packets Drop ACK, NAK Packets Send packets in out of sequence. Drop intial ...

热门标签