La compréhension de ce que Faute, Erreur et Défaillance de la moyenne

Considérer la classe suivante:

class Xyz {
    public int count;

    public void numZero (int[] x) {
        //Effects: if x == null throw NullPointerException
        //else return the number of occurrences of 0 in x
        int count = 0;
        for (int i = 1; i < x.length; i++) //we have a bug here
            {
            if (x[i] == 0)
            {
                count++;
            }
        }

        this.count = count;
    }
}

Je suis en train de me faire une tête sur ce que Fault, Error et Failure signifient vraiment.

Faute

De ce que j'ai compris, un Fault dans ce contexte serait une faille dans le code écrit de la logique.
Donc dans ce cas la Fault serait le fait que le code indique à l'ordinateur pour commencer à parcourir tous les éléments de v avec un indice du début de la 1 à la place de l'0.

Erreur

Lors de l'exécution de la méthode ci-dessus, nous obtenons toujours un Error mais une fois de temps (lorsque la v.length == 0), comme ce que nous voulons vraiment, c'est pour itérer sur tous les éléments de x, mais comme nous sommes en commençant par i = 1, qui n'est pas vraiment passe.

Avec un vecteur vide en entrée, car nous ne pouvons pas entrer dans le for loop, de sorte que notre code incorrect n'est pas exécuté, ce qui signifie que l'Erreur ne se produit pas, et tout se passe comme devrait en théorie.

Échec

Depuis notre code a un Fault que, dans des temps d'exécution sera presque toujours manifeste dans un Error, nous n'avons qu'un Failure quand nous sommes à la sortie incorrecte.

En supposant qu'une Error effectivement arrivé dans mon programme, nous n'avons qu'un Échec si elle est d'une certaine manière visible pour le monde extérieur. C'est, si j'en private int count; au lieu de public int count; je n'avais jamais jamais une Erreur dans ma classe (bien sûr, il serait le plus inutile de classe jamais!). Est-ce vrai?

Est tout ce que j'ai dit de corriger ou suis-je égaré dans quelque chose?

Grâce

Cela appartient à english.stackexchange.com
...ou sqa.stackexchange.com :))
qui doit certainement être une blague, non?

OriginalL'auteur devoured elysium | 2011-06-12