Qualidade de Software e TDD

Eaí pessoal, qualidade é um assunto polêmico quando muitos de nós desenvolvedores trabalhamos com a metodologia XGH, mas afinal de contas.. O que é qualidade de software?

Um software de qualidade é aquele que satisfaz as necessidades definidas e não definidas do cliente, ou seja, faz com que software proporcione utilidade, confiança, segurança, prazer e conforto ao seu usuário.

E como garantir qualidade?

Para garantir a qualidade são necessários vários fatores, que podemos dividir em dois grupos:

  • Processos de Gestão/Requisitos
  • Processo de Desenvolvimento

Uma boa gestao de processos e equipe de levantament de requisitos são chave para a produção de um software de qualidade! Requisitos bem definidos deixam os implícitos de forma explícitas, ajudando as duas partes. Quem nunca ouviu: “Mas não foi assim que eu pedi”.

Já durante o processo de desenvolvimento de software, para garantir um software de qualidade existem alguns fatores, que acredito que sejam fundamentais levarmos em consideração quando entregamos um produto:

  • Manutenabilidade: Um código bem escrito e coeso, fácil de entender e pouco complexo. Algo que o desenvolvedor não tenha dificuldade para entender. É preciso lembrar que, quando escrevemos um código estamos criando um filho, que pode nos acompanhar por muitos e muitos anos.
  • Realização de Testes: Para a garantia de um software sem defeitos, erros ou falhas. Existem várias formas e tipos de testes que cobrem uma parte específica do sistema.
  • Documentação na medida: Eu acredito que, a documentação não pode ser em excesso e também não pode faltar.
  • Utilidade: Afinal de contas, do que adianta um código bem escrito, documentado e testado se não serve pra nada? É preciso que tenha alguma utilidade ao usuário.
Test Driven Development (TDD)

Seguindo a linha da garantia de qualidade de software, TDD é uma metodologia de desenvolvimento, que visa garantir a qualidade na entrega do software. O TDD, apesar de ser antigo (levando em consideração a evolução tecnológica) teem sido adotado cada vez mais nas fábricas de software.

TDD o que? Do inglês desenvolvimento orientado a testes, define algumas etapas antes de se desenvolver. Basicamente o desenvolvedor precisa escrever o teste antes de se desenvolver. Mas como isso funciona?

  1. Cenário de Teste: A ideia desta etapa, é que o desenvolvedor utilize alguma ferramenta de teste automatizado, escrevendo o teste.
  2. Produção do Código: Com base no teste produzido, o desenvolvedor começa a produção do código. Como o cenário de teste foi produzido anteriormente, essa etapa se torna mais produtiva.
  3. Execução do Cenário: Após a produção, a ideia é executar o teste até obter sucesso.
  4. Refatoração: Quando temos tudo funcionando é hora de refatorar. Talvez essa seja uma das etapas mais importantes, pois a ideia é tentar deixar o código mais simples e performático possível, ajudando também a ganhar manutenabilidade no código.

Puts.. mas escrever o teste antes.. dá trabalho heim? Sim e não, apesar de escrevermos mais código, o desenvolvedor que pensa no teste antes desenvolver é mais produtivo. Isso acontece porque ao escrevermos o teste, conseguimos enxergar os cenários de exceção e requisitos implícitos.

Bom pessoal, por hoje é só. Em breve estarei mostrando formas de implementar a primera etapa do TDD, conforme descrita acima. Este post dedico ao meu professor Adriano Bertucci que me incentivou a escrever um post com este tema. Até apróxima.

Anúncios

Deploy no Weblogic via linha de comando

Eae galera! Durante o processo de desenvolvimento perdemos muito tempo publicando pacotes em ambientes remotos realizando deploy via console/em do weblogic. Para facilitar existe uma forma de executar os deploys via linha de comando, desta maneira podemos automatizar o processo com alguns scripts.

#!/bin/bash
clear
SCRIPTPATH=`pwd -P`
cd /opt/oracle/mid1036/domains/soa_domain/bin
echo "executando setDomainEnv..."
. ./setDomainEnv.sh
echo "realizando undeploy..."
java weblogic.Deployer -adminurl t3://192.168.100.1:9001 -username weblogic -password weblogic1 -undeploy -name MyApp -targets cluster1
echo "realizando deploy..."
java weblogic.Deployer -adminurl t3://192.168.100.1:9001 -username weblogic -password weblogic1 -deploy -upload -name MyApp -targets cluster1 -source $SCRIPTPATH/MyApp.ear -plan $SCRIPTPATH/plan_MyApp_DEV.xml
echo "realizando deploy composite..."
ant -f /opt/oracle/mid1036/soa/Oracle_SOA1/bin/ant-sca-deploy.xml -DserverURL='http://192.168.100.1:9010' -DsarLocation=$SCRIPTPATH/sca_MyCompositeAPP_rev1.0.jar -Duser='weblogic' -Dpassword='weblogic1' -Dpartition='default' -Dconfigplan=$SCRIPTPATH/plan_sca_MyCompositeAPP_DEV.xml -Doverwrite=true

echo "deploys realizados com sucesso!"

O Script acima realiza deploy dos pacotes MyApp.ear e sca_MyCompositeAPP_rev1.0.jar. Com esse script basta executar no mesmo diretório onde está os pacotes.