2 Contexto de Teste de Software
|
|
|
- Theodoro Teves Terra
- 10 Há anos
- Visualizações:
Transcrição
1 2 Contexto de Teste de Software A satisfação de um usuário de software está diretamente relacionada ao fato deste software atender aos seus requisitos funcionais e não funcionais sem apresentar falhas durante a sua execução. No entanto, apesar dos esforços dos desenvolvedores, erros são cometidos ao longo de todo o ciclo de desenvolvimento de um software. Uma especificação mal concebida pode originar um sistema com funcionalidades distintas das esperadas pelo usuário ou, até mesmo, ausentes. Uma análise mal elaborada pode resultar numa arquitetura que não permita atender determinados critérios de qualidade. Um projeto mal construído pode comprometer a evolução do software. Uma codificação mal feita pode ocasionar falhas de execução. Defeitos são introduzidos durante a codificação do software e acabam se manifestando sob a forma de falhas muitas vezes observadas somente pelo usuário. Algumas causas podem ser apontadas como precursoras desta situação (Whittaker 2000). O usuário pode ter executado um código não testado. A ordem em que os comandos são executados durante o uso do software difere dos cenários de teste. O usuário aplicou uma combinação de valores de entrada não testada. O ambiente operacional do usuário nunca foi testado. Estes problemas revelam a necessidade de disciplina na condução de testes de um software a fim de identificar, tão cedo quanto possível, os defeitos nele existentes. Como observado, planejar e executar testes de software requer atenção sobre vários aspectos que incluem as funcionalidades, as entradas, as combinações de entradas e o ambiente de execução do software. Este capítulo aborda o contexto de teste de software no qual se situa esta pesquisa. Define a terminologia de teste adotada (seção 2.1). Introduz um processo de teste (seção 2.2) comum a esta prática. Cita as diferenças de escopo e de tipo de teste (seção 2.3), destacando o tipo de teste funcional (seção 2.4). Trata da automação de teste (seção 2.5), do teste baseado em modelo (seção 2.6) e de
2 Contexto de Teste de Software 24 sua extensão, o teste dirigido por modelo (seção 2.7). Ao final, revela os desafios projetados para a área de teste (seção 2.8) Terminologia de Teste A terminologia de teste aplicada na descrição desta pesquisa está em conformidade com especificações e padrões reconhecidos e adotados pela academia e pela indústria. O alinhamento entre os conceitos empregados pela prática de teste e estas referências não só facilita a sua compreensão quanto garante a sua adequação a contextos e domínios previamente conhecidos. As referências utilizadas foram o glossário padrão de terminologia de engenharia de software (IEEE Std , 1990), o vocabulário usado em teste de software (BS , 1998) e a segunda versão do UML (Unified Modeling Language) Testing Profile (UML2TP, 2003). Os dois glossários são padrões internacionais e foram elaborados, respectivamente, pelo Institute of Electrical And Electronics Engineers e pela British Standards Institution. O UML Testing Profile é uma especificação do OMG (Object Management Group) que define uma linguagem para projeto, visualização, especificação, análise, construção e documentação de artefatos de sistema de teste. Esta linguagem pode ser usada com as principais tecnologias de objetos ou componentes e com sistemas de teste em diversos domínios de aplicação. Os principais termos e expressões serão descritos brevemente segundo estas especificações de teste de software. O sistema em teste (system under test ou SUT) é a parte ou todo sistema, subsistema ou componente em teste. Funciona como uma caixa-preta que somente pode ser exercitada pela estrutura de teste por meio das operações disponíveis em sua interface pública (UML2TP, 2003). O cenário de teste (test scenario ou test context) é a coleção de casos de teste reunida com a configuração de teste. Os casos de teste são executados com base no cenário de teste (UML2TP, 2003).
3 Contexto de Teste de Software 25 O critério de teste (test criteria) representa o critério que o sistema tem de atender para passar no teste. O critério de aceitação (acceptance criteria) de um usuário ou interessado (stakeholder) e as regras de decisão de que um sistema passou ou falhou nos testes (pass/fail criteria) são exemplos de critério de teste (IEEE Std , 1990). O ambiente de teste (test environment ou test configuration) é a descrição do ambiente de hardware e software no qual os testes são executados e a descrição de qualquer software com que o sistema em teste interage quando testado usando dispositivos de teste ou stubs, que são esqueletos ou implementações com propósito especial de um módulo de software (BS , 1998). O conjunto de teste (test case suite ou test suite) é a coleção de um ou mais casos de teste de um sistema em teste (BS , 1998). O caso de teste (test case) é o conjunto de dados de entrada, condições de execução e resultados esperados elaborados para atingir um objetivo específico de teste, tal como exercitar um fluxo do programa ou verificar a conformidade com um requisito específico (IEEE Std , 1990; BS , 1998). O objetivo de teste (test goal ou test objective) é o conjunto de características de um software a serem medidas em condições específicas pela comparação do comportamento atual com o comportamento requerido descrito na documentação do software (IEEE Std , 1990). O dado de teste (test data ou stimulus) é o dado enviado ao sistema em teste (UML2TP, 2003). Corresponde freqüentemente ao dado de entrada fornecido à interface pública do sistema em teste durante a execução do caso de teste. O oráculo de teste (test oracle) é o mecanismo usado para gerar o resultado esperado de um caso de teste. Este resultado é confrontado com o resultado real obtido pela execução do sistema em teste. (BS , 1998). O resultado observado (test result ou observation) é o dado que reflete a reação do sistema em teste a um dado de teste (UML2TP, 2003). Corresponde comumente ao dado de saída (ou retorno) de uma função em teste presente na interface pública de um sistema. O laudo de teste (test log) é o registro da interação resultante da execução de um caso de teste. O laudo está associado a um veredicto que indica o grau de conformidade do sistema em teste com o objetivo definido por um caso de teste (UML2TP, 2003).
4 Contexto de Teste de Software 26 O veredicto (verdict) é a sentença conferida ao sistema em teste indicando a sua corretude ou não. Pode ser empregado também para reportar falhas no sistema de teste. Seus possíveis valores são passou (pass), falhou (fail), inconclusivo (inconclusive) ou erro (error). Os dois primeiros valores estão relacionados aos resultados do teste que pode ter seu propósito, respectivamente, evidenciado ou invalidado. O valor inconclusivo só é atribuído quando o teste nem passa nem falha. Na prática, isso só acontece se o teste elaborado não permite extrair conclusões sobre o resultado. O último indica uma falha na própria estrutura de teste que a torna, por conseguinte, inconsistente ou inválida (UML2TP, 2003) Processo de Teste Pautado pelas considerações em relação ao planejamento e à execução das atividades de teste de software, este pode ser estruturado em fases seqüenciais (Figura 3). Nesta abordagem (Whittaker, 2000), cada fase trata de problemas relacionados e o resultado de seu processamento serve como base para a fase seguinte. Figura 3 Processo de Teste O primeiro passo é a modelagem do ambiente de software (Figura 3). Nesta fase, é preciso identificar e simular as interfaces que o sistema de software utiliza bem como enumerar as possíveis entradas de dados aplicadas a estas interfaces. O termo interface aqui empregado representa não só a interface entre
5 Contexto de Teste de Software 27 humano e computador, mas também as interfaces de software, de sistemas de arquivos e de comunicação. A escolha do escopo de teste tem implicações diretas sobre os custos e o tempo gasto para a conclusão da atividade de teste. Além disso, é necessário compreender também as interações do usuário que estão fora do escopo do sistema em teste e podem afetar a sua operação (ex. leitura de um arquivo que pode ser apagado por outro usuário). Cada ambiente de aplicação pode resultar num número significativo de interações a testar. Um modelo é utilizado para descrever estas interações. O segundo passo é a seleção dos cenários de teste (Figura 3). Os parâmetros normalmente empregados na definição dos casos de teste são a cobertura do código e a cobertura do domínio dos dados de entrada. Mas essas coberturas analisadas de forma isolada não são suficientes. A seqüência de execução de comandos de código, a seqüência de aplicação de entradas e o ambiente de teste (configurações de hardware e software) também influenciam na formação dos cenários de teste. Como o número de cenários de teste para garantir estes aspectos pode ser infinito, é necessário estabelecer critérios que permitam definir a completeza dos testes de modo a atender os objetivos claramente determinados para os testes segundo um cronograma realista e factível. Estes critérios são limitações impostas à metodologia de teste que afetam os resultados reportados. O terceiro passo corresponde à execução e avaliação dos cenários de teste (Figura 3). A etapa inicial desta fase consiste em converter os cenários de teste numa forma executável que simula as ações dos usuários. A aplicação dos cenários pode ser manual ou automatizada. A primeira demanda muito esforço e está mais sujeita a erros humanos, a segunda requer a simulação de cada dado de entrada e dado de saída de todo ambiente operacional. A etapa final envolve comparar o resultado obtido pela execução do cenário de teste com o resultado esperado documentado pela especificação do software. Esta avaliação pode ser feita por meio de formalização da especificação, que permite derivar design e código usados para comparar comportamentos esperados e observados, ou por intermédio de código de teste incluído no código do software. O último passo equivale à capacidade de medição do progresso de teste (Figura 3). Considerando dados de entrada, cobertura de código, execuções com sucesso, falhas encontradas e outras estatísticas, observa-se que a simples
6 Contexto de Teste de Software 28 contagem de números pode não representar o progresso do teste corretamente. Qual seria o significado de encontrar muitas falhas? Uma boa metodologia de teste ou um código extremamente defeituoso? Deste modo, identificar o final de um teste de software é uma tarefa muito difícil, visto que sempre se desconhecerá o número real de defeitos remanescentes. Por isso, é preciso estabelecer critérios de término dos testes fundamentados em graus de complexidade de teste (completeza estrutural) e confiabilidade (completeza funcional) acordados como satisfatórios Escopo e Seleção de Teste O teste de software é classificado (Whittaker, 2000) de acordo com a primeira e a segunda fase do processo de teste descrito. Segundo o escopo da modelagem do ambiente de software, o teste pode ser um teste de unidade, teste de integração ou teste de sistema. O teste de unidade avalia individualmente um componente de software ou uma pequena coleção de componentes. O teste de integração procura analisar a comunicação entre os componentes por meio de suas interfaces. O teste de sistema considera a coleção de todos os componentes que compõem um software, sendo todo o domínio normalmente avaliado em relação à sua especificação. Este teste não deve ser confundido com o teste de aceitação ou auditoria funcional que visa verificar se o sistema atende às necessidades do usuário e não apresenta problemas ao ser utilizado. Quando o quesito é a seleção de caso de teste, existem o teste estrutural, o teste da estrutura de dados e o teste funcional. No teste estrutural, os cenários de teste consideram somente a estrutura do código e as estruturas de dados existentes. É conhecido também como teste caixa-branca ou teste baseado no código. No teste da estrutura de dados, a cobertura é medida com relação a uma parte da estrutura do código em adição à especificação. É conhecido ainda como teste caixa-entreaberta ou teste caixa-cinza. O teste funcional, ao contrário do estrutural, não é influenciado por estas estruturas. Este tipo de teste será abordado em mais detalhes a seguir por ser o empregado neste trabalho.
7 Contexto de Teste de Software Teste Funcional No teste funcional, a seleção dos cenários de teste se baseia nas características reveladas pela especificação do sistema em teste ou pelo ambiente operacional. A estrutura do código fonte ou as estruturas de dados internas (não expostas) não servem como referencial para elaboração dos testes. A idéia principal de um teste funcional é ignorar os mecanismos internos de um sistema ou de um componente e focar somente nas saídas geradas em resposta às entradas selecionadas e às condições de execução do software (Gao et al., 2003). Desta forma, mesmo nos casos em que o código fonte não esteja disponível, é possível testar um software e verificar se ele atende aos requisitos do usuário. Como não depende do código, a adequação do teste funcional está atrelada a outros fatores. A existência de uma especificação do sistema em teste é crucial para que requisitos funcionais sejam identificados. A capacidade do software em teste ser configurado de acordo com propriedades que podem ser redefinidas altera o seu comportamento em relação ao ambiente operacional. As interfaces do sistema são a única forma de interação com o mesmo e, portanto, precisam ser bem compreendidas para que a eficiência e a eficácia do teste sejam obtidas. O teste funcional é conhecido também como teste caixa-preta, teste baseado na especificação ou teste comportamental Técnicas de Teste Funcional As interfaces de cada componente do software representam a forma de interação com o mesmo e, por conseguinte, as diferentes técnicas de teste funcional (Gao et al., 2003) fazem uso da especificação destas interfaces para elaborar os cenários de teste. Algumas destas técnicas são descritas brevemente a seguir. O teste randômico (Figura 4) adota a estratégia da seleção aleatória dos casos de teste de todo o domínio de entrada. Esta abordagem não garante uma confiabilidade completa em relação ao teste das entradas por trabalhar com amostras que podem não ser significativas para os propósitos do teste.
8 Contexto de Teste de Software 30 Figura 4 Exemplo de Teste Randômico O teste de partições equivalentes (Figura 5) procura superar a limitação do teste randômico dividindo o domínio de entrada em diferentes partições disjuntas. A propriedade principal desta técnica é pressupor-se que, se um elemento de uma partição provocar a falha de um teste, todos os demais membros da partição também provocarão falhas. O contrário também é verdade, se um elemento de entrada resulta num teste bem sucedido, então os outros elementos da mesma partição também o serão. Este comportamento permite avaliar o domínio inteiro sem redundância, bastando avaliar poucos elementos de cada partição. Contudo, a maior dificuldade está em se definir de forma sistemática as partições. Figura 5 Exemplo de Teste de Partições Equivalentes O teste de valores de contorno (Figura 6) é uma extensão do teste de partições equivalentes. O princípio que rege esta técnica é o de que cada elemento de uma partição não apresenta a mesma probabilidade de revelar ou esconder um defeito do sistema em teste. Pela experiência adquirida na programação de aplicações, percebe-se que os elementos próximos ao contorno das partições normalmente expõem falhas com mais freqüência. Assim, enquanto o teste de partições equivalentes aumenta a eficiência do testes por reduzir o número de casos de teste, o teste de valores de contorno o suplementa focando nas áreas de maior risco.
9 Contexto de Teste de Software 31 Figura 6 Exemplo de Teste de Valores de Contorno O teste baseado em tabelas de decisão (Figura 7) é aplicado nos casos em que não é possível assumir variáveis mutuamente independentes na análise como nos teste de partições equivalente e teste de valores de contorno. Este técnica aborda cenários mais complexos onde há uma relação de dependência entre as variáveis e onde a combinação de ações é influenciada pela lógica dos relacionamentos entre as variáveis. As tabelas de decisão refletem todas as condições de teste, suas diferentes combinações, as ações relacionadas e suas correspondentes respostas. Figura 7 Exemplo de Teste baseado em Tabelas de Decisão O teste de mutação (Figura 8) é um teste baseado em defeitos. O mutante é uma versão do sistema em teste conhecida e deliberadamente defeituosa. Como o código fonte não está disponível, as alterações no programa alternativo são promovidas no nível de interface. O resultado de sua execução é então comparado com a do programa original. Caso sejam equivalentes, o mutante não contribui para a análise. Do contrário, se o mutante for detectado, significa que a alteração foi identificada pelo conjunto de teste e maior é adequação do mesmo.
10 Contexto de Teste de Software 32 Usam-se mutantes para aferir a sensibilidade do teste. Se o teste deixa de observar um defeito inserido num mutante, ele possivelmente deixará de encontrar defeitos originais existentes. O teste de mutação mede a eficácia do teste. Se o teste for altamente eficaz é de se esperar que o número de defeitos residuais seja bem pequeno. Figura 8 Exemplo de Teste de Mutação Características de uma Ferramenta de Teste Funcional Independente das técnicas de teste funcional adotadas, uma ferramenta de teste funcional deve apresentar algumas características que a tornem útil e amplamente empregada ao longo do ciclo de desenvolvimento de um software. Segundo estudo recente (Andrea, 2007), tais características quando existentes podem ajudar a garantir o sucesso inclusive do programa de testes. A primeira delas consiste em prover um ambiente em que seja possível descrever facilmente os cenários de teste. Se a definição destes cenários for complicada, isto representará um gargalo para a adoção da ferramenta que logo será abandonada. Idealmente, a ferramenta deve empregar uma linguagem de teste bem definida que permita especificar requisitos de forma clara e efetiva. Isto, somado a recursos do ambiente de desenvolvimento hoje existentes para codificação de sistemas (ex. preenchimento automático de comandos code complete ), facilitará a composição e a manutenção dos testes, diminuindo o impacto de sua adoção, que pode torná-los incompletos e obsoletos.
11 Contexto de Teste de Software 33 Outro aspecto relevante é permitir uma fácil leitura e compreensão dos cenários de testes. Até mesmo uma pessoa não especializada em teste terá condições de acompanhar a verificação de completeza e corretude do mesmo. Portanto, precisa ser concebida de forma a atender diferentes papéis no desenvolvimento de um produto. Logo, contempla o usuário, o especialista em negócios, o desenvolvedor e o testador. Uma vez garantido um formato legível, este objetivo será alcançado. A ferramenta também deve comportar a manutenção dos cenários de teste tornando possível a sua re-execução e a sua modificação. A re-execução possibilita a reprodução da falha, desde que preservado o estado anterior do cenário de teste. Também permite a realização de teste de regressão, por meio do qual é possível avaliar se determinados cenários de teste continuam válidos após mudanças introduzidas no código do sistema em teste. Para tornar seu emprego mais amplo, o ideal é que funcione em diferentes ambientes de execução de acordo com a necessidade do usuário de teste. O resultado da execução da ferramenta precisa ser uma saída com significado que facilitará a validação de oráculos de teste. Figura 9 Interação: Ferramenta e Sistema em Teste (Adaptação: Andrea, 2007) Visando contribuir com a automação dos testes, a ferramenta pode ainda apresentar diferentes pontos de contato (interfaces) com o sistema em teste (Figura 9). A cada ponto de contato estará associada uma camada da aplicação.
12 Contexto de Teste de Software 34 Assim é possível executar testes de forma mais rápida nos casos em que a interação evita camadas não pertinentes ao cenário de teste. Embora seja óbvio, é necessário ressaltar que a corretude de operação da ferramenta de teste é um caráter fundamental. Ela não pode mascarar com erros próprios os erros existentes no sistema em teste Automação do Teste Em virtude do teste manual de software representar uma atividade tediosa, muitas vezes redundante, sujeita a falhas humanas e um desperdício de tempo e dinheiro, a automação desta prática passou a ser vista como uma alternativa atraente para a aplicação de testes no desenvolvimento do software. A automação de teste de software refere-se às atividades de automação das tarefas e operações de engenharia no processo de teste de software utilizando estratégias bem definidas e soluções sistemáticas (Gao et al., 2003). Com isso, procura acelerar o processo de teste, reduzindo seu custo e tempo ao longo do ciclo de vida do software. Aumenta a qualidade e a eficácia do processo de teste ao permitir a adequação de um critério de teste num cronograma bem definido Níveis de Automação de Teste O grau desta automação varia de ambiente para ambiente de desenvolvimento. Com o intuito de avaliar o nível de maturidade da automação de teste de software no processo de teste adotado, um estudo (Gao et al., 2003) propôs a seguinte classificação: Nível 0 Sem ferramenta de teste. Estágio em que o processo de teste é manual e não é auxiliado por ferramentas em nenhuma de suas fases. Nível 1 Inicial. Estágio em que o processo de teste provê somente soluções sistemáticas para a gestão de informações de teste, incluindo requisitos de teste, casos de teste, procedimentos de teste, resultados dos testes e relatórios de falhas.
13 Contexto de Teste de Software 35 Nível 2 Repetível. Estágio que provê os recursos do nível anterior e acrescenta ao processo de teste a capacidade de execução dos testes e validação de resultados de forma sistemática. Ferramentas de análise de cobertura de teste baseado em código podem ser usadas neste nível. Nível 3 Automático. Estágio que provê os recursos do nível repetível e conta com a presença de geradores sistemáticos de casos de teste. Os dados e oráculos de teste são gerados automaticamente. Todo o processo de teste é automatizado. Nível 4 Otimizado. Estágio em que o processo automatizado conta com soluções de medição e análise do processo de teste que permitem avaliar a sua condução e questões de qualidade de software. Embora o último nível seja o ideal, para atingi-lo é preciso melhorar cada fase do processo de teste de forma gradativa. Esta classificação (Figura 10) acaba servindo como orientação de que etapas priorizar na busca deste ideal. Figura 10 Níveis de Automação de Teste (Tradução: Gao et al., 2003) Geração Automática de Dados de Teste Dentre os níveis de maturidade de automação, o que está relacionado diretamente à concepção dos testes de forma sistemática é o terceiro. Em meio às práticas apontadas, é de particular interesse de pesquisa avaliar um pouco mais detalhadamente a geração de dados de teste.
14 Contexto de Teste de Software 36 A construção manual de um conjunto de dados de teste representa uma grande parte do esforço de validação e verificação num projeto de software. Segundo levantamento feito por alguns estudos (Ince, 1987; Edvardsson, 1999), as técnicas utilizadas para automatizar esta construção são norteadas pela estrutura do código fonte da aplicação, pelas estruturas de dados existentes e pelas interfaces de software disponíveis. Esses trabalhos relacionam alguns tipos de geradores: randômico, adaptativo, baseado em sintaxe, baseado em caminhos de execução, baseados em fluxo de dados, orientado por especificação etc. Destes geradores, o que é baseado em sintaxe será comentado a seguir Gerador de Teste Baseado em Sintaxe Um dado de teste pode ter sua estrutura expressa por meio de uma notação textual. Um exemplo de notação utilizada na descrição de dados de teste (Figura 11) é a BNF (Backus-Naur Form). Um gerador baseado em sintaxe utiliza a sintaxe desta notação como guia para a construção de casos de teste, gerando dados de teste que a satisfaçam. Portanto, não depende da estrutura do programa a ser testado e pode ser utilizado em testes funcionais de software. Figura 11 Exemplo de Notação BNF
15 Contexto de Teste de Software 37 Um dos problemas enfrentados por esta abordagem de geração de dados de teste são as dependências de contexto não retratadas por uma análise puramente sintática. Gerar dados corretos sintaticamente não garante uma semântica também correta na aplicação dos dados de teste. Algumas soluções foram apontadas (Ince, 1987) para contornar essa situação. Uma delas é o uso de sintaxes dinâmicas. Neste caso, os dados são gerados inicialmente sem se preocupar com o contexto e depois são corrigidos levando em consideração as dependências de contexto. Outro procedimento é a adoção de gramáticas de atributos (Figura 12). As definições deste tipo de gramática são sobrecarregadas com atributos que representam informações contextuais associadas aos elementos da gramática. A partir deles é possível construir casos de teste completos com a descrição dos dados de teste e das saídas esperadas para um sistema em teste. Deste modo, gramáticas de atributos são usadas para expressar heurísticas de teste. A grande questão associada a esse tipo de gramática é se a complexidade da estrutura dos dados de teste não implicaria num crescimento muito rápido do tamanho da gramática. Figura 12 Exemplo de Gramática de Atributos As vantagens do uso deste tipo de gerador são forçar a documentação precisa da estrutura de dados de teste e produzir uma enorme quantidade de dados de teste. Ao assegurar que cada regra numa gramática seja exercitada e que uma distribuição estatística dos dados de teste seja obtida, este gerador permite que os testes aumentem de complexidade gradativamente.
16 Contexto de Teste de Software 38 A técnica adotada por geradores baseados em sintaxe apresenta, todavia, algumas limitações. Há classes de dados que não podem ser gerados a exemplo dos números primos. A escrita de regras sintáticas para conjuntos complexos de dados pode ser suficientemente entediante Teste Baseado em Modelo O objetivo do teste de software é a detecção de falhas. As falhas equivalem às diferenças notadas entre os comportamentos da implementação e o que era esperado com base na especificação. O teste baseado em modelo é uma variante de teste em que modelos explícitos são usados para capturar o comportamento de um sistema e de seu ambiente. Os pares de entrada e saída de um modelo de implementação são interpretados como casos de teste da implementação. corresponde à saída esperada do sistema em teste. A saída do modelo Uma definição para o teste baseado em modelo (Utting et al., 2006) é o processo de derivação automática de casos de teste concretos a partir de modelos formais abstratos e execução dos casos de teste Características do Modelo de Teste O modelo de teste precisa ser validado e os requisitos do sistema em teste nele figurados precisam ser avaliados quanto à consistência e à completeza. Isto implica o uso de um modelo mais simples que o sistema ou, pelo menos, de fácil verificação, modificação e manutenção. Do contrário, o esforço na sua elaboração não se justificaria. O modelo deve levar em consideração os conceitos existentes. Quaisquer omissões no modelo corresponderão a partes não testadas com base no modelo proposto. Deve ser preciso o suficiente para permitir a geração de casos de teste sem ambigüidade e redundância. confiabilidade dos testes. Isto torna útil a sua adoção e aumenta a
17 Contexto de Teste de Software Taxonomia de Teste Baseado em Modelo Uma solução de teste, para ser compreendida e comparada com outras, deve adotar uma classificação segundo uma taxonomia de referência. Uma taxonomia foi proposta (Utting et al., 2006) para o teste baseado em modelo. Ela identifica diferentes dimensões e suas possíveis instanciações, agrupadas pelos passos do metaprocesso de teste definido (seção 2.2). Em relação à etapa de modelagem, as dimensões são o escopo do modelo, nível de redundância, características do modelo e paradigma adotado. primeira define se o escopo é o sistema em teste, o ambiente de teste ou os dois. A segunda reflete se o modelo é utilizado apenas para teste ou também para o desenvolvimento do sistema em teste. A terceira classifica o modelo segundo o grau de determinismo, questões de tempo e natureza de eventos (discreto; contínuo; híbrido). A última identifica que notação foi utilizada para modelar o comportamento do sistema a exemplo das notações baseadas em estado, transição de estados, histórico, funcionalidades, operações e fluxo de dados. Quando se trata da etapa de geração de testes, as dimensões aplicadas são o critério de seleção e a tecnologia de geração. O critério de seleção pode envolver cobertura de estrutura do modelo, cobertura de dados, cobertura baseada em requisitos, especificação de caso de teste, cobertura baseada em defeito (ex. uso de mutantes). Em termos de tecnologia, são exemplos de instâncias: geração aleatória; algoritmos de busca em grafos; verificação de modelos; execução simbólica. A última dimensão está associada ao tempo de execução dos testes. Estes podem ser realizados de forma online, requerendo que gerador e sistema de teste estejam simultaneamente em execução. Em alguns casos o próprio sistema pode apresentar uma estrutura de auto-teste. A outra possibilidade é a off-line, quando os testes são gerados num momento e são executados posteriormente no sistema em teste sem a presença do gerador. A
18 Contexto de Teste de Software Processo de Teste Baseado em Modelo Neste item, um processo genérico de teste baseado em modelo (Figura 13) é apresentado (Utting et al., 2006) de modo a ressaltar os pontos de modificação e extensão do processo de teste definido anteriormente, que pode ser considerado um metaprocesso de teste. Figura 13 Processo de Teste Baseado em Modelo (Adaptação: Utting et al., 2006) O primeiro passo é a construção do modelo do sistema em teste com base na especificação de requisitos. Este modelo retrata o comportamento desejado para o sistema e poderá ser descrito em vários níveis de concretude. De acordo com o nível de concretude adotado, características funcionais e não funcionais serão avaliadas ou descartadas nos testes. Este passo equivale ao primeiro passo do metaprocesso de teste (Figura 14).
19 Contexto de Teste de Software 41 Figura 14 Extensão do Primeiro Passo do Metaprocesso de Teste O segundo passo é a definição do critério de seleção de teste. Este critério define que comportamentos descritos pelo modelo serão avaliados. Descreve, por conseguinte, um conjunto de teste. O critério pode estar relacionado a funcionalidades do sistema, estruturas do modelo, formas de interação com o sistema, entre outros, assim como a um conjunto bem-definido de faltas. O terceiro passo é a transformação do critério de seleção de teste em especificação de caso de teste. Esta especificação formaliza o critério e o torna operacional. Dado um modelo e uma especificação de caso de teste, um gerador automático será capaz de elaborar um conjunto de teste. A especificação se diferencia do conjunto de teste pelo fato da primeira ser genérica e o segundo ser sua especialização. Neste passo, todos os testes são enumerados. O quarto passo é a geração do conjunto de teste. Nesta etapa, um grupo de casos de teste que satisfazem uma determinada especificação de caso de teste é gerado. Este grupo compõe o conjunto de teste. O segundo, o terceiro e o quarto passos do processo de teste baseado em modelo correspondem à seleção dos cenários de teste do metaprocesso de teste (Figura 15).
20 Contexto de Teste de Software 42 Figura 15 Extensão do Segundo Passo do Metaprocesso de Teste O quinto passo é a execução dos casos de teste. Este passo é dividido em dois estágios. Corresponde à execução e avaliação dos cenários de teste no metaprocesso de teste (Figura 16). Figura 16 Extensão do Terceiro Passo do Metaprocesso de Teste
21 Contexto de Teste de Software 43 No primeiro estágio, o objetivo é conciliar os diferentes níveis de abstração entre o modelo e o sistema em teste. Para isto, é preciso aplicar uma entrada de dados concreta ao sistema em teste e registrar a saída do mesmo. Um adaptador é usado para fazer esta ponte. Ele é um componente que concretiza a entrada de dados e o resultado esperado, compara resultados concretos e gera a análise. No segundo estágio, um veredicto é gerado. Este é o resultado da comparação da saída do sistema com a saída definida pelo caso de teste. Um veredicto pode apresentar os seguintes valores: passou, falhou, inconclusivo, erro. Quando a saída esperada e a saída obtida estão em conformidade, o veredicto é passou. Do contrário, é falhou. Na situação em que não é possível avaliar a conformidade, então o resultado é inconclusivo. Se o próprio dispositivo de teste apresentar erros (exceções) durante a sua execução, então o resultado é erro Níveis de Concretude de Teste Um ponto crítico para a geração e execução de casos de testes é compreender as diferenças de concretude entre a especificação dos casos de teste, o modelo de geração de casos de teste e a implementação do sistema em análise (Prenninger & Pretschner, 2005). A especificação descreve os requisitos do sistema segundo as necessidades manifestadas por um ou mais interessados (stakeholders). Muitas vezes é feita de maneira informal e imprecisa, sendo assim mais abstrata. O modelo de teste descreve um conjunto de funcionalidades, propriedades e comportamentos deste sistema de maneira mais rigorosa e formal. O grau de detalhamento do modelo varia de acordo com os objetivos de teste, sendo alguns aspectos mais explorados que outros. A implementação é a realização (concretização) da especificação. Ela pode apresentar falhas decorrentes de interpretação equivocada de requisitos, requisitos incorretos ou de requisitos omitidos. Uma especificação de teste deve ser detalhada o suficiente de maneira a obter resultados expressivos quando é comparada à implementação do sistema. Ela deve refletir adequadamente os requisitos do cliente. O processo responsável por garantir a conformidade entre artefatos produzidos e requisitos é a validação.
22 Contexto de Teste de Software 44 Os modelos de teste são elaborados com o objetivo de facilitar a validação. Quando um modelo de teste é tão específico como a implementação do sistema, não justifica o esforço de sua construção dado que a sua própria validação teria complexidade equivalente à da validação da implementação. Deste modo, os modelos devem ser resultados de uma simplificação e, logo, não capturam todos os atributos de sua representação original. Também são pragmáticos e por isso os modelos não estão relacionados de uma única maneira a sua representação. Portanto, normalmente são mais genéricos que a implementação do sistema. Como conseqüência dos diferentes níveis de concretude, os casos de teste gerados não podem ser aplicados diretamente a uma implementação. As entradas aplicadas precisam ser descritas de forma concreta e compatível à implementação. As saídas do sistema, também concretas, são comparadas com o resultado esperado descrito pelos oráculos de teste dos casos de testes. Para que a comparação de resultados seja possível, os oráculos também precisam ser concretos. Esta verificação também deve levar em consideração o ambiente do sistema e sua influência na execução do mesmo Teste Dirigido por Modelo Os diferentes níveis de concretude empregados na modelagem de teste e as variações de comportamento obtidas em virtude do ambiente do sistema em teste sugerem a adoção de modelos independentes de plataforma (platform-independent models PIMs) e modelos específicos de plataformas (platform-specific models PSMs). Desta forma, uma estratégia similar à de arquiteturas dirigidas por modelo (model-driven architectures MDAs) seria utilizada no contexto de teste de software (Heckel & Lohmann, 2003; Dai 2004). Seguindo uma estratégia deste tipo, o projeto de modelos de teste independentes de plataforma seria reutilizado e garantiria a interoperabilidade dos mesmos ao longo de várias plataformas. Caberia à parte do modelo específica de cada plataforma realizar a transformação necessária para execução correta dos testes no seu ambiente. Segundo um levantamento feito (Heckel & Lohmann, 2003), muitas das abordagens de teste baseado em modelo não consideram a distinção entre modelos
23 Contexto de Teste de Software 45 independentes de plataforma e modelos específicos de plataforma. Estes modelos ou são projetados de acordo com uma plataforma específica ou são genéricos e representam apenas as informações independentes de plataforma. Figura 17 Teste de Dirigido por Modelos (Adaptação: Dai, 2004) Com o intuito de se beneficiar da separação de modelos na geração e execução de testes, a estratégia de teste dirigido por modelos (Figura 17) se propõe a ser o refinamento das principais atividades do teste baseado em modelo adotando essa estratégia estilo MDA. As atividades diretamente afetadas por esse paradigma seriam a geração de casos de teste a partir de modelos de acordo com um dado critério de cobertura, a geração de oráculos de teste para determinar os resultados esperados de um teste e a execução de testes em ambientes de teste possivelmente gerados a partir de modelos (Heckel & Lohmann, 2003). As duas primeiras são independentes de plataforma, enquanto a última requer o uso de modelos específicos capazes de gerar os ambientes de teste e de mapear os casos de teste e oráculos genéricos na plataforma específica correspondente.
24 Contexto de Teste de Software Desafios Os processos, técnicas, ambientes e ferramentas de teste sofrem adaptações às mudanças de contextos e tecnologias existentes e evoluem de acordo com a consolidação dos conhecimentos adquiridos na área de teste de software. Nesta linha de evolução, novos e recorrentes problemas e barreiras precisam ser transpostos para que objetivos maiores sejam alcançados. Um estudo recente destaca alguns dos desafios a serem superados pelas linhas de pesquisa da área (Bertolino, 2007). Estes desafios podem ser divididos segundo os aspectos de modelagem, automação e eficiência. No texto a seguir, os desafios enumerados estão diretamente relacionados a esta pesquisa Desafios à Modelagem Uma questão sempre recorrente na área de testes é como combinar diferentes estilos de modelagem tais como os baseados em assertivas, em contratos, em transições de estado ou em gramáticas. Como cada modelo é uma interpretação diferente da realidade observada, é provável que o uso articulado de modelos diferentes seja uma abordagem mais completa, embora mais complexa. Outro ponto é a necessidade de integrar a prática de teste baseado em modelo aos processos de software atuais, minimizando os impactos nas atividades de desenvolvimento. O desafio é tornar os modelos de teste tão genéricos quanto possível, preservando a sua capacidade de gerar casos de teste executáveis e mantendo a rastreabilidade de requisitos aos testes durante o ciclo de vida do sistema. Algumas dificuldades estão relacionadas aos oráculos de teste. É preciso conciliar estados e comportamentos especificados de forma abstrata com estados e comportamentos observados de forma concreta. Existe ainda uma decisão a ser tomada quanto ao balanceamento entre a precisão e o custo dos modelos. Modelos muito detalhados facilitam a geração dos testes, mas são de difícil elaboração e validação. A expressividade e a eficiência dos modelos adotados também devem ser medidas e contrastadas de acordo com ambiente de aplicação. A falta de ortogonalidade entre a seleção de casos de teste e a definição dos
25 Contexto de Teste de Software 47 oráculos de teste é outro fator a ser analisado. Atualmente, ambos são derivados de um mesmo modelo Desafios à Automação A automação de testes derivados de modelo ainda não é uma solução madura e carece de um maior número de estudos de caso para ter seus benefícios constatados (Bertolino, 2007). Algumas extensões deste paradigma de testes ainda precisam ser postas à prova como o caso de testes baseados em modelos de domínios específicos. Estes seriam capazes de restringir ainda mais o escopo de testes. Estudos precisam ser feitos para averiguar se a especialização dos mecanismos de testes seria benéfica à automação. O campo das idéias é fértil e podem ser tão avançadas quanto a sua imaginação permitir. No que tange à automação, testes online poderiam ser concebidos de forma a verificar a corretude de um sistema durante sua própria execução, portanto, uma análise dinâmica Desafios à Eficiência Muito se questiona sobre o comportamento do teste baseado em modelo quando se tem um ganho de escala. O quanto ele será capaz de atender a demanda sem aumentar a complexidade de modelagem e sem perder a eficiência. Dada a hipótese de que este tipo de teste atenda as necessidades de validação e verificação de sistemas, como estimar o custo para sua adoção passa a ser um critério de adequação à realidade do ambiente de desenvolvimento. O controle de evolução dos testes tem impacto direto sobre essa questão de custos. Adotando técnicas de regressão é possível reaproveitar casos de testes previamente executados e diminuir os custos da produção de novos. Contudo, ainda é necessário elaborar ferramentas de manutenção dos testes mais eficientes. O uso de padrões de teste também seria uma forma de reuso de conhecimento aplicado a testes que poderia aumentar a eficiência e reduzir custos.
Fundamentos em Teste de Software. Vinicius V. Pessoni [email protected]
Fundamentos em Teste de Software Vinicius V. Pessoni [email protected] Objetivos do treinamento 1. Expor os fundamentos de Teste de Software; 2. Conceituar os Níveis de Teste; 3. Detalhar sobre
Projeto de Sistemas I
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:[email protected] Requisitos: base para todo projeto, definindo o
CHECK - LIST - ISO 9001:2000
REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da
UML - Unified Modeling Language
UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril
GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas
PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas
ENGENHARIA DE SOFTWARE I
ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [[email protected]] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula
GARANTIA DA QUALIDADE DE SOFTWARE
GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características
2 Engenharia de Software
20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite
Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:
Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código
Concepção e Elaboração
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo
Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: ([email protected]) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
ISO/IEC 12207: Gerência de Configuração
ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que
Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto
Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha [email protected] http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento
Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental
CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
PLANOS DE CONTINGÊNCIAS
PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES [email protected] PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como
Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES
CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás
)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR
6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,
Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi
Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia
Processos de Desenvolvimento de Software
Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e
Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1
Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.
Fundamentos de Teste de Software
Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 3 Planejamento e Aula 8 do Projeto Aula 08 do Projeto SUMÁRIO INTRODUÇÃO... 3 ACOMPANHAMENTO DO PROJETO... 3 1. do Progresso...
Teste de Software. Profa. Cátia dos Reis Machado [email protected]
Teste de Software Profa. Cátia dos Reis Machado [email protected] Qualidade Garantia de Qualidade Qualidade do processo Qualidade do produto Testes Estáticos Testes Dinâmicos Teste de software
Qualidade de Processo de Software Normas ISO 12207 e 15504
Especialização em Gerência de Projetos de Software Qualidade de Processo de Software Normas ISO 12207 e 15504 Prof. Dr. Sandro Ronaldo Bezerra Oliveira [email protected] Qualidade de Software 2009 Instituto
Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW
Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto
Introdução à Qualidade de Software. Profº Aldo Rocha
Introdução à Qualidade de Software Profº Aldo Rocha Agenda O que é Qualidade? O que é Qualidade de Software? Qualidade do Produto e do Processo Normas e Organismos Normativos Qualidade de Software e Processos
Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: ([email protected]) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000
ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica
ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.
ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página
Gerenciamento de projetos. [email protected]
Gerenciamento de projetos [email protected] Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina
Feature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0
O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok
PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS
PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software
Guia de Especificação de Caso de Uso Metodologia CELEPAR
Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007
Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste
Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de
Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004
QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004
Prof. Marcelo Henrique dos Santos
ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em
Engenharia de Requisitos
Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.
QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1
QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de
3 Qualidade de Software
3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo
Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite [email protected] (81 )9801-6619
Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite [email protected] (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o
Engenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf ([email protected]) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto
Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto Prof. Elias Batista Ferreira Material cedido por: Prof. Edison A M Morais Objetivo Descrever os processos da norma
Modelo para Documento de. Especificação de Requisitos de Software
Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)
! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado
Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo
UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2
UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem
MODELO CMM MATURIDADE DE SOFTWARE
MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo
c. Técnica de Estrutura de Controle Teste do Caminho Básico
1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo
LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE
Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que
NBC TSP 10 - Contabilidade e Evidenciação em Economia Altamente Inflacionária
NBC TSP 10 - Contabilidade e Evidenciação em Economia Altamente Inflacionária Alcance 1. Uma entidade que prepara e apresenta Demonstrações Contábeis sob o regime de competência deve aplicar esta Norma
Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.
Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos
Pós-Graduação em Gerenciamento de Projetos práticas do PMI
Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL
DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling
DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA
Conceitos de Banco de Dados
Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir
Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler
Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler Introdução Objetivos da Gestão dos Custos Processos da Gerência de Custos Planejamento dos recursos Estimativa dos
Engenharia de Software
Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática
Modelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
Wilson Moraes Góes. Novatec
Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta
Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída
DCC / ICEx / UFMG Testes de Software Testes de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Teste de software buscam por erros ou anomalias em requisitos funcionais e não funcionais Classificação
Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída
DCC / ICEx / UFMG Testes de Software Testes de Software Teste de software buscam por erros ou anomalias em requisitos funcionais e não funcionais Classificação de testes pelo objetivo Teste de Validação:
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:
Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Gerenciamento de Riscos do Projeto Eventos Adversos
Gerenciamento de Riscos do Projeto Eventos Adversos 11. Gerenciamento de riscos do projeto PMBOK 2000 PMBOK 2004 11.1 Planejamento de gerenciamento de riscos 11.1 Planejamento de gerenciamento de riscos
Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA
Modelo para Documento de. Especificação de Requisitos de Software
Modelo para Documento de Especificação de Requisitos de Software (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications) A boa organização lógica do documento
PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0
PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0 Banco Central do Brasil, 2015 Página 1 de 14 Índice 1. FLUXO DO PEN - PROCESSO DE ENTENDIMENTO DAS NECESSIDADES DE NEGÓCIO... 3 2.
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.
1 Introdução Testes são importantes técnicas de controle da qualidade do software. Entretanto, testes tendem a ser pouco eficazes devido à inadequação das ferramentas de teste existentes [NIST, 2002].
Processos de gerenciamento de projetos em um projeto
Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.
CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO X PROJETO BÁSICO: DESCRIÇÃO DOS PROCESSOS DE TI
CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO X PROJETO BÁSICO: DESCRIÇÃO DOS PROCESSOS DE TI 1. PI06 TI 1.1. Processos a serem Atendidos pelos APLICATIVOS DESENVOLVIDOS Os seguintes processos do MACROPROCESSO
Engenharia de Software
Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo
CHECK LIST DE AVALIAÇÃO DE FORNECEDORES Divisão:
4.2.2 Manual da Qualidade Está estabelecido um Manual da Qualidade que inclui o escopo do SGQ, justificativas para exclusões, os procedimentos documentados e a descrição da interação entre os processos
Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc [email protected]
Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc [email protected] 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.
Modelagemde Software Orientadaa Objetos com UML
Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para
O modelo unificado de processo. O Rational Unified Process, RUP.
Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais
PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira
PLANEJAMENTO E GERENCIAMENTO DE PROJETOS Lílian Simão Oliveira Contexto Gerentes lutam com projetos assustadores e com prazos finais difíceis de serem cumpridos Sistemas não satisfazem aos usuários Gastos
Qualidade de Software. Profa. Cátia dos Reis Machado [email protected]
Qualidade de Software Profa. Cátia dos Reis Machado [email protected] Verificação x validação Verificação prova que o produto vai ao encontro dos requerimentos especificados no desenvolvimento
Sistemas de Informação I
+ Sistemas de Informação I Processo de software I Ricardo de Sousa Britto [email protected] + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,
Requisitos. Sistemas de Informações
Requisitos Sistemas de Informações Definindo o Sucesso do Software Clientes satisfeitos Eles estão satisfeitos quando você: Atende às expectativas Entrega no prazo Entrega no orçamento O Sucesso começa
Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares
Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares André Assis Lôbo de Oliveira Francisco Guerra Fernandes Júnior Faculdades Alves Faria, 74445190, Brasil [email protected],
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento
a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema
Simulado CTFL- BSTQB Tempo de duração: 60 minutos 1. Considerando as seguintes afirmações: I. 100% de cobertura de sentença (comando) garante 100% de cobertura de desvio II. 100% de cobertura de desvio
Requisitos de Software
Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,
Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos
SENAC Pós-Graduação em Segurança da Informação: Análise de Riscos Parte 2 Leandro Loss, Dr. Eng. [email protected] http://www.gsigma.ufsc.br/~loss Roteiro Introdução Conceitos básicos Riscos Tipos de
PROFESSOR: CRISTIANO MARIOTTI
PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade
