Engenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 1 Rational Unified Process RUP Fase Construção 2
VISÃO GERAL Fase Construção. Visão Geral 3 Os objetivos principais da fase de Construção incluem: A meta da fase de construção é esclarecer os requisitos restantes e concluir o desenvolvimento do sistema com base na arquitetura da baseline. Ênfase no gerenciamento de recursos e controle de operações para otimizar custos, programações e qualidade. Transição do desenvolvimento da propriedade intelectual durante a iniciação e elaboração, para o desenvolvimento dos produtos que podem ser implantados durante a construção e transição. Fase Construção 4
Os objetivos principais da fase de Construção incluem: Minimizar os custos de desenvolvimento, otimizando recursos e evitando retalhamento e retrabalho desnecessários. Atingir as versões úteis (alfa, beta e outros releases de teste). Concluir a análise, o design, o desenvolvimento e o teste de todas as funcionalidades necessárias. Atingir um certo paralelismo entre o trabalho das equipes de desenvolvimento. Fase Construção 5 Marco da Capacidade Operacional Inicial. O produto deve está pronto para ser passado para a Equipe de Transição. Além do software, um manual do usuário será desenvolvido. Critérios de Avaliação Este release do produto é estável e desenvolvido o suficiente para ser implantado na comunidade de usuários? Todos os envolvidos estão prontos para a transição para a comunidade de usuários? As despesas reais com recursos ainda são aceitáveis se comparadas com as planejadas? Fase Construção Marco 6
Importante para a construção Gerenciamento e Configuração de Mudanças Controle de versões Conhecimento dos Requisitos (Especificação de Caso de Uso) Realização de Caso de Uso 7 Desenvolvimento do Caso de Uso Requisitos Especificação de Caso de Uso Design Realização de Caso de Uso Implementação Testes Build Build Testado 8
"O Sistema": O próprio sistema executável, pronto para começar o teste "beta" Papel: Implementadores. Plano de Implantação: O Plano de Implantação descreve o conjunto de tarefas necessárias para instalar e testar o produto desenvolvido de modo que ele possa ser efetivamente transferido para a comunidade de usuários. Papel: Gerente de Implantação Conjunto de Testes : Testes implementados e executados para validar a estabilidade do build de cada release executável criado durante a fase de construção. Papel : Designer de Teste Fase Construção Marco 9 Casos de Testes Um Caso de teste é um conjunto de entradas de teste, condições de execução e resultados esperados desenvolvidos para um objetivo específico como, por exemplo, testar o caminho de determinado programa ou verificar o cumprimento de um requisito específico. Obtenção de Casos de Teste a partir de Casos de Uso Obtenção de Casos de Teste a partir de Especificações Suplementares Obtenção de Casos de Teste para Testes Unitários Obtenção de Casos de Teste para o Teste de Aceitação do Produto Criação de Casos de Teste Para o Teste de Regressão Conjunto de de Teste 10
Obtenção de Casos de Teste a partir de Casos de Uso Os cenários de caso de uso são identificados através da descrição dos caminhos que percorrer o fluxo básico e os fluxos alternativos, do início ao fim, através do caso de uso. Conjunto de de Teste 11 Obtenção de Casos de Teste a partir de Casos de Uso - Exemplo Conjunto de de Teste 12
Obtenção de Casos de Teste a partir de Especificações Suplementares Nem todos os requisitos de um objetivo de teste serão refletidos em casos de uso. Requisitos não-funcionais, como desempenho, segurança e acesso, e requisitos de configuração especificam comportamentos ou características adicionais do objetivo do teste. A Especificação Suplementar é a principal fonte de obtenção de casos de teste para esses comportamentos adicionais. Conjunto de de Teste 13 Obtenção de Casos de Teste para o Teste Unitário O teste unitário exige a avaliação da estrutura interna(caixa Branca) da unidade e de suas características comportamentais(caixa Preta). Testes Caixa Branca Testar todos os caminhos decisão-a-decisão (caminho DD) pelo menos uma vez, o que resulta na execução de todas as instruções. Em geral, uma decisão é uma instrução if, e um caminho DD é aquele que une duas decisões. Conjunto de de Teste 14
Teste Caixa Branca Exemplo Suponha que você execute um teste de estrutura em uma função que seja membro da classe Conjunto de Inteiros. O teste - com a ajuda de uma pesquisa binária - verifica se o conjunto contém determinado inteiro Conjunto de de Teste 15 Testes Caixa Preta A finalidade de um teste caixa preta é verificar o comportamento especificado da unidade, sem observar como a unidade implementa esse comportamento. Os testes caixa preta se concentram e se baseiam na entrada e saída da unidade. Particionamento de equivalência é uma técnica destinada a reduzir o número de testes necessário. Uma classe de equivalência é um conjunto de valores de acordo com o qual o objeto deve se comportar. Conjunto de de Teste 16
Obtenção de Casos de Teste para o Teste de Aceitação do Produto O teste de aceitação do produto é o teste final antes da implantação do software. O objetivo desse teste é verificar se o software está pronto e pode ser usado pelos usuários finais para executar as funções e as tarefas para as quais o software foi criado Conjunto de de Teste 17 Criação de Casos de Teste para o Teste de Regressão O teste de regressão compara dois builds ou duas versões do mesmo objetivo de teste e identifica diferenças como possíveis defeitos. Desse modo, ele pressupõe que uma nova versão deve se comportar como uma versão anterior e verifica se defeitos não foram introduzidos como resultado das mudanças. Conjunto de de Teste 18