Engenharia de Software - Estratégias de teste de software

6.07k views1866 WordsCopy TextShare
UNIVESP
univesp.br Engenharia de Software Univesp (Universidade Virtual do Estado de São Paulo) Professor: M...
Video Transcript:
E aí [Música] o Olá eu sou professor Marcelo Fantinato Essa é a disciplina de engenharia de software E hoje nós vamos falar sobre estratégias de teste de software 1 é bom nas aulas anteriores nós passamos por várias atividades relacionadas ao processo de engenharia de software vocês devem se lembrar que nós começamos lá com engenharia de requisitos depois nós passamos por projeto e arquitetura de software e ainda com algumas informações extras relacionadas também a o projeto e ainda um pouco de implementação qualificação de software na sequência então no processo de engenharia de software e viria agora
a codifi cação propriamente dita embora pode ficar época codifi cação propriamente dita não seja parte da ementa desta disciplina de engenharia de software vocês estão vendo Purificação e implementação aprendendo linguagem de programação em outras disciplinas então aqui na ele na disciplina de engenharia de software a gente de certa forma pula a etapa de modificação propriamente dita e vamos pra próxima etapa que é justamente teste de software a o assunto o de hoje né então uma vez que o software ele é codificado ele é implementado ele precisa ser testado né Assim como qualquer outra coisa que
a gente cria desenvolve no mundo uma vez ele envolvido precisa ser verificado se está tudo ok precisa ser checado ser validado né existem diferentes verbos aí que a gente possa usar na engenharia de software existem sentidos adequados para cada um desses verificar o validar e o teste de software é um tipo de verificação e validação né mas é especificamente validação de software Ou seja eu quero validar o software que foi a implementado para saber se está de acordo com os requisitos lá no início Neto Eu gostaria que o software implementado esteja de acordo com os
requisitos lá do início seu definir determinados requisitos e não implementei daquela forma alguma coisa tá errada então para esse vídeo o teste de software a o teste então a gente pode definir como uma atividade realizada para revelar os defeitos existentes no software eu executo o teste para ver onde estão os defeitos porque sempre vai existir defeitos a gente sempre vai acabar colocando algum defeito quando a gente desenvolve o software é e eu executo para encontrar esses defeitos né não entenda um software o teste de software como uma forma de provar que soft Está correto ou
livre de defeitos por isso pois isso é é impossível vocês nunca conseguem executar um conjunto de teste tão grande que vocês falam bom conseguir provar que o software é está livre de defeitos não basta mais alguns testes e pronto encontra mais algum defeito então A ideia é fazer um conjunto ahn relativamente bom é de e para encontrar a maior parte dos defeitos possível e como a gente faz esse conjunto relativamente bom de testes usando uma boa estratégia de teste Já que eu não vou poder testar tudo porque é uma humanamente impossível Então vamos tentar seguir
uma estratégia de teste essa estratégia de teste então ela vai ser um roteiro bem definido sistemático envolvendo diferentes pessoas em diferentes momentos para um determinado tipo de um determinado sistema de software para um outro software que eu estou desenvolvendo um outro roteiro vai ser feito certo então vai variar muito do tipo do sistema de software que está sendo testado eu posso usar diferentes níveis diferentes etapas diferentes tipos de teste usando diferentes técnicas de teste certo então uma coisa precisa ficar bem clara é que dependendo do do Foster do sistema né de software que está sendo
e o a estratégia de teste ela pode ser diferente é E para isso eu preciso planejar bem esse teste projetar os casos de teste é os casos de teste que eu vou executar eu no dia a dia a gente falar eu estou executando alguns testes na verdade estou executando alguns casos de teste é E aí uma vez que esses esses casos de teste estão projetados Então eu preciso executá-los propriamente dito fazer a coleta dos resultados passou falhou é o cada um dos casos de teste e aí avaliar os resultados né se falhou Vinte por cento
trinta por cento se o Silas se a falha são críticas é o avaliar os resultados para saber qual é a situação o bom é falando então estratégia de teste a uma forma de visualizar esse roteiro é dividir o os testes em etapas ou em níveis que é o que está representado aqui na figura por essa parte aqui olha Começando por teste de unidade depois indo para teste de integração teste de validação e teste de sistema é uma das formas de organizar a estratégia de teste outros autores podem apresentar algumas variações nesses níveis Mas normalmente é
teste de unidades seguido por teste de integração e finalizando por teste de sistema alguns autores incluem o teste de validação aqui ou não Tá Mas normalmente é unidade integração e sistema e Por que essa diferença a o teste de unidade é quando você testa um pedacinho do Foster logo depois que ele foi codificado o teste de integração a testa aquelas várias unidades linhas que já foram testadas individualmente a partir do momento aquelas vão sendo Integradas então eu faço o teste de integração esse teste da Integração Então coloque em prova o projeto lembra que lá naquela
em algumas aulas aí para trás nós trabalhamos o projeto de software que define como o as classes os componentes as diferentes partes do software são integrados Então nesse momento a gente tá fazendo o teste de integração integrando as partes fazendo o teste de integração e colocando em prova o projeto uma vez que foi integrado nós fazemos o teste de validação que é colocar em prova os requisitos propriamente dito não que eu já não estivesse é colocando os requisitos em prova porque porque quando eu estou testando cada unidade no nível do código ali dentro daquele código
estão os requisitos representados individualmente mas é só quando eu tenho todo o código integrado é um teste de validação é que eu realmente vejo os requisitos de uma forma mas é mas completa porque porque algum requisito ele para poder realmente ser usado de cabo a rabo de início ao fim ele precisa do sistema como um todo estar integrado E aí no teste de validação em que o válido os requisitos no software implementado e por fim o teste de sistema em que eu estou colocando em prova a prova o que foi definido na engenharia de sistemas
em geral o sistema composto do software e hardware em que eu vou colocar à prova os requisitos não-funcionais que tem um Bom desempenho se eu tenho uma boa segurança se eu tenho uma boa disponibilidade e vários outros tipos de requisitos não-funcionais Tá bom então é essa segura aqui ela também apresenta uma forma diferente de ver a estratégia de teste em que eu tenho começando né assim vejam que essa flecha está de baixo para cima aqui eu começo a fazer o teste das unidades individualmente uma vez que eu vou integrando em pedaços maiores que eu faço
o teste de integração e eu posso ir integrando maiores maiores até que eu tenho o sistema como um todo é e aí eu faço o teste do sistema o teste de validação e o teste de sistema que alguns autores juntam em uma só chama tudo de teste de sistema Aliás o teste de aceitação né é teste de aliás é o teste de validação mesmo desculpa o teste de validação e o teste de sistema que alguns autores chamam de apenas uma coisa é quando a gente tá falando especificamente de orientação a objetos que é bastante comum
né no Dia a Dia profissional a o teste de uma bom Então na verdade é fazer o teste de cada classe que é implementada tá quando vocês prestam aquela classe especificamente o desenvolvedor está testando uma desenvolvendo uma classe e ele mesmo já testando aquela classe e ele tá então ele está então fazendo teste de unidade englobando o teste daqui dos métodos que estão dentro daquela classe Oi e aí uma vez que aquelas classes elas vão serão Integradas indiferentes é estratégias você pode integrar essas classes seguindo por exemplo a sequência de execução bom para executar uma
determinada tarefa eu preciso dessa classe depois daquela classe e depois daquela classe e por ter um método dessa classe invoca o método daquela classe que invoca o método daquela classe Então qual a sequência de execução eu preciso eu vou integrando aquelas classes E à medida que eu vou integrando eu vou testando e também existe o teste baseado em uso em que a eu entrego essas classes de uma outra forma é por exemplo a classe que usa as classes mais baixas numa ordem de hierarquia de qualquer forma eu preciso integrando essas classes e eu vou a
agrupando e testando é eu tenho também a gente tem também estratégias especializadas se eu tiver falando a mente uma aplicação web você tiver falando de aplicativos móveis podem haver estratégias de teste específicas para esse tipo de aplicações então para quem desenvolve aplicação web aplicativos móveis é muito interessante procurar saber quais são as estratégias de teste específicas para elas e aí só para resumir aqui algumas dessas coisas nós ainda Veremos em aulas posteriores mas então olha voltando para aquela frase né em que o estratégia de teste ela definir níveis tipos e técnicas de teste nós já
falamos então que são os níveis que significa quando o que parte será testada precisamos definir o que vai ser e quando vai ser o teste de unidade de de integração e de sistema a em relação aos tipos de teste é o que será testado eu vou testar a funcionalidade propriamente dita Ou seja que eu tenho uma função que vai cal é quadrada realmente está sendo calculado a raiz quadrada se eu entro com quatro tá saindo dois ou tá saindo três Está correto ou tá errado o resultado propriamente dito mas eu tenho também outros tipos eu
posso testar o desempenho a segurança o estresse a usabilidade escalabilidade e assim por diante vários outros tipos de requisitos não-funcionais então isso são tipos de teste e por fim eu possa ter técnicas de teste que é como será atestado né então quando o que e agora como eu posso testar é usando técnicas de teste estrutural que teste funcional que é justamente o assunto das nossas próximas duas aulas certo então isso foi uma visão Geral de si la teja de teste e a gente entra nas próximas aulas com visões um pouquinho mais específica sobre as técnicas
de teste estrutural e funcional É isso aí obrigado e a e a bibliografia aqui o livro engenharia de software uma abordagem profissional do prédio e Max é um pouquinho diferente é é uma bibliografia diferente do que a gente tem adotado nas aulas anteriores nesse caso Então esse livro desses autores aqui também bem famosos na engenharia de software agora sim obrigado tá [Música] [Música]
Copyright © 2024. Made with ♥ in London by YTScribe.com