Considere o seguinte método que realiza a procura binária de um dado valor num vector de inteiros:


 boolean lookup(int vector[], int key, int n) {
        int medium;
        int low = 0;
        int high = n;
        while (low <= high) {
            medium = (low + high)/2;
            if (vector[medium] == key) { // value found
                return medium;
            }
            else {
                if (vector[medium] < key)
                    low := medium + 1;
                else
                    high := medium - 1;
            }
        }
        return -1;
    }

  1. Desenho o grafo de controlo de fluxo do método lookup.
  2. Identifique o conjunto mínimo de caminhos que atinge 100% de cobertura de instrução.
  3. Identifique o conjunto mínimo de caminhos que atinge 100% de cobertura de ramo.
  4. Identifique o conjunto mínimo de caminhos que atinge 100% de cobertura de caminho.
  5. Especifique os casos de teste necessários para exercitar o ciclo de forma completa (full mode).