6 - testes - sommerville - capitulo_08

47
slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. Capítulo 8 Testes de Software © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Adaptado por: Prof. M.Sc. Nathielly de Souza Campos E-mail: [email protected] Lattes: http://buscatextual.cnpq.br/buscatextual/ visualizacv.do?id=K4711153U6

Upload: lucas-da-silva

Post on 25-Nov-2015

130 views

Category:

Documents


7 download

TRANSCRIPT

  • slide 1

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Captulo 8 Testes de Software

    2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

    Adaptado por: Prof. M.Sc. Nathielly de Souza Campos E-mail: [email protected] Lattes: http://buscatextual.cnpq.br/buscatextual/ visualizacv.do?id=K4711153U6

  • slide 2

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Tpicos abordados

    Testes de desenvolvimento

    Desenvolvimento dirigido a testes

    Testes de release

    Testes de usurio

  • slide 3

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de programa

    Os testes so destinados a mostrar o que um programa faz, o que pretende fazer e para descobrir os defeitos do programa antes desse ser colocado em uso.

    Ao testar o software, voc executa um programa usando dados artificiais.

    Voc verifica os resultados do teste para erros, anomalias ou informaes sobre os atributos no funcionais do programa.

    Podem revelar a presena de erros, NO a sua ausncia.

    O teste parte de um processo de verificao e validao mais geral, que tambm inclui tcnicas de validao esttica.

  • slide 4

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Objetivos do processo de testes

    Demonstrar para o desenvolvedor e o cliente que o software atende aos seus requisitos.

    Para softwares customizados, isso significa que deve haver pelo menos um teste para cada requisito no documento de requisitos. Para produtos de software genricos, isso significa que deve haver testes para todos as caractersticas do sistema, alm de suas combinaes, as quais sero incorporadas no release do produto.

    Para descobrir situaes em que o comportamento do software est incorreto, indesejvel ou em desacordo com sua especificao.

    Testes de defeitos esto interessados em eliminar comportamentos indesejveis do sistema, tais como falhas no sistema, interaes indesejveis com outros sistemas, clculos incorretos e corrupo de dados.

  • slide 5

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Validao e testes de defeito

    O primeiro objetivo leva a testes de validao.

    Voc espera que o sistema execute corretamente usando um determinado conjunto de casos de teste que refletem o uso esperado do sistema.

    O segundo objetivo leva a testes de defeito.

    Os casos de teste so projetados para exporem defeitos. Os casos de teste em testes de defeito podem ser deliberadamente obscuros e no precisam refletir como o sistema normalmente usado.

  • slide 6

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Objetivos do processo de testes

    Testes de validao

    Para demonstrar para o desenvolvedor e o cliente que o sistema de software corresponde s suas exigncias.

    Um teste bem sucedido mostra que o sistema opera como planejado.

    Testes de defeitos

    Para descobrir falhas ou defeitos no software, em que seu comportamento incorreto ou no est em conformidade com a especificao.

    Um teste bem sucedido um teste que faz o sistema funcionar incorretamente e, dessa maneira expe um defeito no sistema.

  • slide 7

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Um modelo entrada-sada de teste de programa

  • slide 8

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Verificao vs. validao

    Verificao:

    "Estamos construindo o produto da maneira correta?".

    O software deve estar em acordo com sua especificao.

    Validao:

    "Estamos construindo o produto certo?".

    O software deve fazer o que o usurio realmente necessita.

  • slide 9

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Confiana e V & V

    O objetivo de V &V estabelecer a confiana na adequao do sistema ao seu intuito".

    Depende da finalidade do software, das expectativas do usurio e do ambiente de marketing

    Finalidade do software O nvel de confiana depende do quanto o software crtico para uma organizao.

    Expectativas do usurio Usurios podem ter expectativas baixas em certos tipos de software.

    Ambiente de marketing Colocar um produto em um mercado rapidamente pode ser mais importante do que

    encontrar defeitos no programa.

  • slide 10

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Inspees e testes

    Inspees de software Interessadas na anlise da representao esttica do sistema para descobrir problemas (verificao esttica)

    Pode ser suplementado por ferramentas baseadas em documentos e anlise de cdigos.

    Teste de software Interessados no exerccio e observando o comportamento do produto (verificao dinmica)

    O sistema executado com dados de teste e seu comportamento operacional observado.

  • slide 11

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Inspees e testes

  • slide 12

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Inspees de software

    Essas envolvem pessoas examinando principalmente a representao do cdigo-fonte com o objetivo de descobrir anomalias e defeitos.

    As inspees no exigem a execuo de um sistema, assim, podem ser usadas antes da implementao.

    Elas podem ser aplicadas a qualquer representao do sistema (requisitos, os dados de projeto, configurao, dados de teste, etc.)

    Tm se mostrado uma tcnica eficaz para descobrir defeitos de programa.

  • slide 13

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Vantagens das inspees

    Durante os testes, os erros podem mascarar (esconder) outros erros. Pois a inspeo um processo esttico, no qual no necessrio se preocupar com as interaes entre os erros.

    Verses incompletas de um sistema podem ser inspecionadas sem custos adicionais.

    Se um programa est incompleto, ento necessrio desenvolver equipamentos de teste especializados para testar as partes que esto disponveis.

    Bem como procurar por defeitos no programa, uma inspeo tambm pode considerar atributos mais amplos de qualidade de um programa, como o cumprimento de normas, portabilidade e manutenibilidade.

  • slide 14

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Inspees e testes

    Inspees e testes so complementares e no tcnicas opostas de verificao.

    Ambos devem ser usadas durante o processo de V &V.

    As inspees podem verificar a conformidade com uma especificao, mas no a conformidade com os requisitos reais do cliente.

    As inspees no podem verificar caractersticas no-funcionais, como desempenho, usabilidade, etc.

  • slide 15

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Um modelo do processo de teste de software

  • slide 16

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Estgios de teste

    Testes de desenvolvimento, no qual o sistema testado durante seu desenvolvimento para descobrir bugs e defeitos.

    Testes de release, em que uma equipe de testes separada testa uma verso completa do sistema antes que ele seja liberado para os usurios.

    Testes de usurio, em que os usurios ou potenciais usurios de um sistema testam o sistema em seu prprio ambiente.

  • slide 17

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de desenvolvimento

    Testes de desenvolvimento incluem todas as atividades de testes que so realizas pela equipe de desenvolvimento do sistema.

    Teste de unidade, em que so testadas as unidades de programa individual ou classes de objetos. Os teste de unidade devem se concentrar em testar a funcionalidade dos objetos ou mtodos.

    Testes de componentes, em que vrias unidades individuais so integradas para criar componentes compostos. Testes de componentes devem se concentrar em testar as interfaces dos componentes.

    Teste de sistema, em que alguns ou todos os componentes de um sistema so integrados e o sistema testado como um todo. Esses devem se concentrar em testar interaes entre os componentes.

  • slide 18

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de unidade

    Teste de unidade o processo de teste de componentes individuais isoladamente.

    um processo de teste de defeitos.

    As unidades podem ser:

    Funes individuais ou mtodos dentro de um objeto

    Classes de objetos com vrios atributos e mtodos

    Componentes compostos com interfaces definidas usados para acessar suas funes.

  • slide 19

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes automatizados

    Sempre que possvel, os testes de unidade deve ser automatizados para que essas sejam executados e verificados sem interveno manual.

    Em testes de unidade automatizados, voc faz uso de um framework de automao de teste (como JUnit) para escrever e executar os testes do seu programa.

    Frameworks de testes de unidade fornecem classes de testes genricos que voc estende para criar casos de teste especficos.

    Eles podem executar todos os testes implementados e informar, muitas vezes por meio de alguma interface grfica, sobre o sucesso ou fracasso dos testes.

  • slide 20

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Componentes de testes automatizados

    Uma parte da configurao, em que voc inicia o sistema como caso de teste, ou seja, as entradas e sadas esperadas.

    Uma parte de chamada, em que voc chama o objeto ou o mtodo a ser testado.

    Uma parte afirmao, em que voc compara os resultados da chamada com o resultado esperado.

    Se a afirmao avaliada como verdadeira, o teste foi bem sucedido, se for falsa, ento ele falhou.

  • slide 21

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Eficcia dos testes de unidade

    Os casos de teste devem mostrar que, quando usado como esperado, o componente sendo testado faz o que supostamente ele deve fazer.

    Se houver defeitos no componente, esses devem ser revelados por casos de testes.

    O que nos leva a dois tipos de casos de teste de unidade:

    O primeiro deve refletir a operao normal de um programa e deve mostrar que o componente funciona como esperado.

    O outro tipo de casos de teste deve ser baseado em testes de experincias, de onde surgem os problemas comuns. Ele deve usar entradas anormais para verificar se esses so devidamente processados e que o componente no falhe.

  • slide 22

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Diretrizes gerais de testes

    Escolher entradas que forcem o sistema a gerar todas as mensagens de erro.

    Projetar entradas que causem o transbordamento dos buffers de inputs.

    Repetir a mesma entrada ou uma srie de entradas inmeras vezes.

    Forar a gerao de sadas invlidas.

    Forar os resultados de clculos serem muito grandes ou muito pequenos.

  • slide 23

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Pontos Importantes

    Os testes podem apenas mostrar a presena de erros em um programa. Eles no podem demonstrar que no existem defeitos remanescentes.

    Testes de desenvolvimento so de responsabilidade da equipe de desenvolvimento de software.

    Uma equipe separada deve ser responsvel por testar um sistema antes que ele seja liberado para os clientes.

    Testes de desenvolvimento incluem testes de unidade, em que voc testa objetos individuais e mtodos de componentes, em que voc testa grupos de objetos relacionados e testes do sistema, em que voc testa sistemas parciais ou completos.

  • slide 24

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Teste de componente

    Geralmente, os componentes de software so componentes compostos de vrios objetos que interagem.

    Por exemplo, no sistema da estao meteorolgica, o componente reconfigurao inclui objetos que lidam com cada aspecto da reconfigurao.

    Voc acessa a funcionalidade desses objetos atravs da interface do componente definido.

    Portanto, os testes de componentes compostos devem focar em mostrar que a interface do componente se comporta de acordo com sua especificao.

    Voc pode supor que j foram concludos os testes de unidade sobre os objetos individuais dentro do componente.

  • slide 25

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de sistema

    Testes de sistema durante o desenvolvimento envolvem a integrao dos componentes para criar uma verso do sistema e, em seguida, testar o sistema integrado.

    O foco dos testes de sistema testar as interaes entre os componentes.

    Os testes de sistema verificam se os componentes so compatveis ,se interagem corretamente e transferem os dados certos no momento certo por suas interfaces.

    Os testes de sistema testam o comportamento emergente de um sistema.

  • slide 26

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de sistema e de componentes

    Durante os testes de sistema, os componentes reusveis que tenham sido desenvolvidos separadamente e os sistemas de prateleira podem ser integrados com os componentes recm-desenvolvidos. Em seguida, o sistema completo testado.

    Nesse estgio podem ser integrados os componentes desenvolvidos por diferentes membros da equipe ou subequipes. Os testes de sistema so um processo coletivo, e no um processo individual.

    Em algumas empresas, o teste de sistema pode envolver uma equipe de testes separada do envolvimento de projetistas e programadores.

  • slide 27

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Polticas de testes

    Testes de sistema exaustivos so impossveis, assim polticas de teste que definem a cobertura necessria dos testes do sistema devem ser desenvolvidas.

    Exemplos de polticas de testes:

    Todas as funes do sistema que so acessados atravs de menus devem ser testadas.

    Devem ser testadas todas as combinaes de funes (por exemplo, formatao de texto) acessadas por meio do mesmo menu.

    Onde a entrada do usurio fornecida, todas as funes devem ser testadas com entradas corretas e incorretas.

  • slide 28

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Desenvolvimento dirigido a testes

    O desenvolvimento dirigido a testes (TDD Test Driven Development) uma abordagem para o desenvolvimento de programas em que se intercalam testes e o desenvolvimento de cdigo.

    Testes so escritos antes do cdigo e "passar" nos testes o fator crtico de desenvolvimento.

    Voc desenvolve o cdigo de forma incremental, juntamente com um teste para esse incremento. Voc no passa para o prximo incremento at que o cdigo que voc desenvolveu passe no seu teste.

    TDD foi introduzido como parte dos mtodos geis como o Extreme Programming. No entanto, ele tambm pode ser usado em processos de desenvolvimento dirigido a planos.

  • slide 29

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Desenvolvimento dirigido a testes

  • slide 30

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Processo de atividades de TDD

    Iniciar identificando o incremento de funcionalidade que necessria. Isto deve ser normalmente pequeno e implementvel em poucas linhas de cdigo.

    Escrever um teste para esta funcionalidade e implementar isso como um teste automatizado.

    Executar o teste, junto com todos os outros testes que foram implementadas. Inicialmente, voc no implementou a funcionalidade de modo que o novo teste ir falhar.

    Implementar a funcionalidade e reexecutar o teste.

    Uma vez que todos os testes forem executados com sucesso, voc se move sobre a implementao da prxima parte de funcionalidade.

  • slide 31

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Benefcios do TDD

    Cobertura de cdigo

    Cada segmento de cdigo que voc escreve deve ter pelo menos um teste associado, para todo o cdigo escrito tem pelo menos um teste.

    Testes de regresso

    Um conjunto de testes de regresso desenvolvido de forma incremental enquanto um programa desenvolvido.

    Depurao simplificada

    Quando um teste falhar, deve ser bvio onde est o problema. O cdigo recm-escrito tem de ser verificado e modificado.

    Documentao de sistema

    Os prprios testes so uma forma de documentao que descreve o que o cdigo deve estar fazendo.

  • slide 32

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de regresso

    Testes de regresso testam o sistema para verificar se as mudanas no "quebram" os cdigo previamente trabalhado.

    Em um processo de teste manual, os teste de regresso so caros, mas, com testes automatizados, so simples e diretos.

    Todos os testes so reexecutados toda vez que feita uma alterao no programa.

    Os testes devem ser executados com 'sucesso' antes da mudana ser executada.

  • slide 33

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de release

    Teste de release o processo de testes de uma verso particular de um sistema que se destina para uso fora da equipe de desenvolvimento.

    O principal objetivo do processo de teste de release convencer o fornecedor de que o sistema bom o suficiente para o uso.

    Portanto, os testes de release precisam mostrar que o sistema oferece a funcionalidade, o desempenho e confiabilidade especificados, e que no falha durante o uso normal.

    Geralmente, os testes de release so um processo de teste caixa-preta, em que os testes so derivados somente a partir da especificao do sistema.

  • slide 34

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de release e testes de sistema

    Testes de release so uma forma de teste do sistema.

    Diferenas importantes:

    Uma equipe separada, sem envolvimento com o desenvolvimento do sistema, deve ser responsvel pelo testes de release.

    Os testes de sistema realizados pela equipe de desenvolvimento devem se centrar na descoberta de bugs do sistema (teste de defeitos). O objetivo do teste de release verificar se o sistema atende aos seus requisitos e bom o suficiente para uso externo. (teste de validao).

  • slide 35

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes baseados em requisitos

    Testes baseados em requisitos envolvem o exame de cada requisito e o desenvolvimento de um teste ou testes para esses.

    Requisitos do MHC-PMS:

    Se sabido que um paciente alrgico a algum medicamento em particular, a prescrio dessa medicao deve resultar na emisso de uma mensagem de aviso para o usurio do sistema.

    Se um mdico opta por ignorar um aviso de alergia, ele deve fornecer o motivo pelo qual o aviso foi ignorado.

  • slide 36

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de requisitos

    Definir um registro do paciente alrgico. Prescrever medicamentos para as alergias que j conhecidas. Verificar se o sistema emite uma mensagem de aviso.

    Criar o registro de um paciente com alergia. Prescrever a medicao para a alergia do paciente, e verificar se o aviso emitido pelo sistema.

    Estabelecer um registro do paciente em que so registradas alergias a duas ou mais medicaes. Prescrever ambas as medicaes separadamente e verificar se emitido o aviso correto para cada droga.

    Receitar dois medicamentos s quais o paciente alrgico. Verificar se so emitidos corretamente dois avisos.

    Prescrever um medicamento que emite um aviso e ignorar esse aviso. Verificar se o sistema exige informaes explicando por que o aviso foi ignorado.

  • slide 37

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Caractersticas testadas pelo cenrio

    Autenticao por logon no sistema.

    Download e upload dos registros de um paciente especfico para um computador porttil.

    Programao de visitas domiciliares.

    Criptografia e descriptografia do registros de um paciente em um dispositivo mvel.

    Recuperao e modificao de registros.

    Links com o banco de dados dos medicamentos, o qual mantm informaes sobre os efeitos colaterais.

    O sistema de aviso de chamada.

  • slide 38

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Um cenrio de uso para o MHC-PMS

    Kate uma enfermeira especialista em sade mental. Uma de suas responsabilidades visitar os pacientes em casa para verificar a eficcia do tratamento e se os pacientes esto sofrendo com os efeitos colaterais da medicao. Em um dia de visitas, Kate faz o login no MHC-PMS e usa-o para imprimir sua agenda de visitas domiciliares para aquele dia, juntamente com o resumo das informaes sobre os pacientes a serem visitados. Ela pede que os registros desses pacientes sejam transferidos para seu notebook. solicitada a palavra-chave para criptografar os registros no notebook. Um dos pacientes que Kate visita Jim, que est sendo tratado com medicao para depresso. Jim acha que a medicao est ajudando, mas acredita que tem o efeito colateral de mant-lo acordado durante a noite.

  • slide 39

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Um cenrio de uso para o MHC-PMS

    Kate vai consultar o registro de Jim; sua frase-chave solicitada para decifrar o registro. Ela verifica o medicamento prescrito e consulta seus efeitos colaterais. Insnia um efeito colateral conhecido. Ela faz uma observao sobre o problema no registro de Jim e sugere que ele visite a clnica para ter sua medicao alterada. Ele concorda. Assim, Kate faz um prompt de entrar em contato com ele quando ela voltar clnica, para que faa uma consulta com um mdico. Ela termina a consulta e o sistema criptografa novamente o registro de Jim. Depois, terminadas suas consultas, Kate retorna clnica e transfere os registros dos pacientes visitados para o banco de dados. O sistema gera para Kate uma lista de pacientes que ela precisa contatar para obter informaes de acompanhamento e fazer agendamentos de consultas.

  • slide 40

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de desempenho

    Parte dos testes de release podem envolver ensaios sobre as propriedades emergentes de um sistema, tais como desempenho e confiabilidade.

    Os testes devem refletir o perfil de uso do sistema.

    Geralmente, os testes de desempenho envolvem o planejamento de uma srie de testes, nos quais a carga aumentada continuamente at que o desempenho do sistema se torne inaceitvel.

    Testes de estresse so uma forma de testes de desempenho em que o sistema deliberadamente sobrecarregado para testar seu comportamento at falhar.

  • slide 41

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Testes de usurio

    Testes de usurio ou cliente, uma etapa no processo de teste em que os usurios ou clientes fornecem informaes e conselhos sobre os testes de sistema.

    Testes com usurios so essenciais, mesmo quando j foram realizados os testes de sistema abrangentes e testes de release.

    A razo para tanto, que as influncias do ambiente de trabalho do usurio tem um efeito importante sobre a confiabilidade, desempenho, usabilidade e robustez de um sistema. Esses no podem ser replicados em um ambiente de teste.

  • slide 42

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Tipos de testes de usurio

    Testes alfa

    Usurios do software trabalham com a equipe de desenvolvimento para testar o software no local do desenvolvedor.

    Testes beta

    Um release do software disponibilizado para os usurios para que possam experimentar e levantar os problemas descobertos com os desenvolvedores do sistema.

    Testes de aceitao

    Clientes testam um sistema para decidir se se esse est pronto para ser aceito dos desenvolvedores do sistema, e implantado no ambiente do cliente. Principalmente para sistemas sob encomenda.

  • slide 43

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    O processo de testes de aceitao

  • slide 44

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Estgios do processo de testes de aceitao

    Definir critrios de aceitao

    Planejar testes de aceitao

    Derivar testes de aceitao

    Executar testes de aceitao

    Negociar resultados de teste

    Rejeitar/aceitar sistema

  • slide 45

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Mtodos geis e testes de aceitao

    Em mtodos geis, o cliente/usurio faz parte da equipe de desenvolvimento e responsvel pela tomada de decises sobre a aceitabilidade do sistema.

    Os testes so definidos pelo usurio/cliente e so integrados com outros testes executados automaticamente quando mudanas so feitas.

    No existem processo de testes de aceitao separados.

    O principal problema aqui se o usurio incorporado ou no um usurio "tpico" e se pode representar os interesses de todos os stakeholders do sistema.

  • slide 46

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Pontos Importantes

    Ao testar o software, voc deve tentar "quebrar o software usando a experincia e as diretrizes para escolher tipos de casos de teste que tm sido eficazes na descoberta de defeitos em outros sistemas.

    Sempre que possvel, voc deve escrever testes automatizados.

    Cada vez que uma mudana feita em um sistema, os testes so incorporados em um programa que possa ser executado.

  • slide 47

    2011 Pearson Prentice Hall. Todos os direitos reservados.

    Pontos Importantes

    O desenvolvimento test-first uma abordagem para o desenvolvimento em que os testes so escritos antes do cdigo ser testado.

    Os testes de cenrio envolvem a inveno de um cenrio tpico de uso e para uso desse para derivar casos de testes.

    Os testes de aceitao so um processo de teste de usurio, em que o objetivo decidir se o software bom o suficiente para ser implantado e usado em seu ambiente operacional.