Procedures

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pedrocestari
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 02 Jul 2010 4:28 pm
Localização: Porto Alegre
Pedro Cestari

Boa tarde,

Pessoal, estou entrando em um projeto, onde estamos migrando muitas procedures do BD - Sybase, para o Oracle 10g, e isso está criando uma demanda imensa de teste nas procedures migradas, gostaria de saber se teria como automatizar estes teste, digo assim, ela apenas tem que executar corretamente, passando por todas as verificações que possue, a estratégia que foi passada, criar o comando de executar a procedure, pasando os parametro para que faça uma determinada ação, mas gostaria de automatizar isso, para dar mais vazão, e com isso poder cobrir mais as procedures testadas.

Espero te conseguido explicar o que mais ou menos gostaria de fazer.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

como saber que valores seriam passados como parametro para cada procedure?

se quer saber se as procedures foram compiladas com sucesso pode ser obtida essa informação pela user_errors, se a procedure não existir aí é porque a compilação (não execução) foi feita com sucesso.
pedrocestari
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 02 Jul 2010 4:28 pm
Localização: Porto Alegre
Pedro Cestari

Isso seria feita a analise, em cima das procedures... teria como saber, mas tu imagina ter uma procedure que passa sei la, uns 20 parametros, tipo, ou outra maneira de realizar uma "teste automatizado", abri o topico para saber se teriam alguma maneira de abortar isso, pra dar um pouco de velocidade para essa tarefa.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

ah cara não sei bem como lhe chegou essa atividade, qual a area de negocio, etc etc...

você poderia fazer algo então +- assim:

ler a view USER_SOURCE, pegar os cabecalhos das procedures,
e montar um script,
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Em vez de usar 20 parâmetros, organize os parâmetros por types (colunas da mesma tabela, ou parâmetros correlacionados) e passe menos parâmetros. Vai facilitar muito a vida.

Por exemplo:

Selecionar tudo

SQL> create or replace package pk_teste as
  2    type t_pessoa is record (id_pessoa number(10),
  3                             nome      varchar2(50),
  4                             dt_nasc   date);
  5  
  6   procedure cadastra_pessoa (p_pessoa in t_pessoa);
  7  
  8  end pk_teste;
  9  /
 
Package created
 
SQL> 
Aí na chamada, fica bem menos monstruoso o negócio, pois é só passar uma variável.

Quanto a automatizar, dá para fazer scripts de teste, que façam chamadas para sua procedure em loop, por exemplo, percorrendo um cursor e passando linhas para a procedure para execução. No final verifique os logs de erro e a correção do processamento.

É claro que para cada procedure você vai ter que criar o programa de teste. Mas só a primeira vez. Depois fica muito simples cada vez que houver alterações, em cada ciclo do desenvolvimento.
pedrocestari
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 02 Jul 2010 4:28 pm
Localização: Porto Alegre
Pedro Cestari

Hummm, interessantes essa parte da automação, gostei muito, era mais ou menos isso que estava pesando, tu teria algum exemplo para me basear??
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes