Considere o método transfere(int quantia, Conta origem, Conta destino), que transfere uma quantia de dinheiro da conta origem para a conta destino. Este método funciona correctamente quando a quantia é maior do que 0, a conta origem está no estado abstracto aberto e a conta destino não está no estado abstracto inactivo.

Utilizando a análise de domínio, desenvolva a matriz de domínio que representa os casos de teste que verificam a correcta concretização do domínio válido deste método. Considere ainda que os invariantes de estado da classe Conta são os seguintes:

  1. estado abstracto aberto: saldo >= 0 ∧ inactivo < 500;
  2. estado abstracto descoberto: saldo < 0 ∧ inactivo < 500; 
  3. estado abstracto inactivo: inactivo >= 500.