Bom, antes de começarmos a falar especificamente sobre testes de software é preciso primeiro falar sobre o ciclo de desenvolvimento do software. Bom, esse ciclo de desenvolvimento ele pode ser resumido a quatro atividades básicas: a especificação, o projeto e implementação, a validação e a evolução. Pois bem, por especificação entenda que aqui, nessa atividade, a gente tem a etapa de entender qual é o problema.
Em projeto e implementação, a gente cria uma solução e escreve o código-fonte. Validação significa pegar esse projeto, pegar essa solução que foi criada e verificar se essa solução está de acordo com o que o usuário quer, por exemplo. E evolução significa manter esta solução sendo útil para os usuários por um longo período.
Então quando a gente fala em testes de software, nós estamos falando sobre uma forma de validação, estamos falando sobre a atividade do ciclo de desenvolvimento do software de validação ou ainda, tá, se você quiser assim pensar, agente pode entender que o teste é uma maneira de validar o software que está sendo construído, Ok? Mas o que que vem a ser teste de software? Bom, a gente sabe que hoje em dia os sistemas de software são partes integrantes da nossa vida, né?
Desde aplicações comerciais, serviços bancários, produtos de consumo, a gente tem centrais multimídia dentro dos carros, a gente tem carros autônomos hoje em dia, mas de alguma forma, além do software estar cada vez mais em contato com as pessoas ou as pessoas se tornando cada vez mais dependentes do software, é fácil também a gente identificar ou mesmo citar algumas experiências negativas com softwares, que por exemplo não funcionaram como o esperado. Teste de software tem o objetivo de avaliar a qualidade do software e reduzir o risco de falhas desse software durante a sua operação,Ok? Então teste de software é isso, ela tem o objetivo de avaliar a qualidade ou verificar se o software está pronto para uso ou não se ele precisa passar por melhorias se ele tem que passar por correções para encontrar defeitos no software para que esse software não apresente falhas quando o usuário estiver usando esse software, ok?
Então esse é o principal objetivo. E por que que a gente tem que tomar esse cuidado, porque é tão importante descobrir as falhas antes de o software ser entregue para o usuário? Porque quando os defeitos são detectados e posteriormente corrigidos, vai acontecer uma contribuição para a qualidade dos componentes ou dos sistemas.
Além disso, o teste de software também é necessário para verificar se os requisitos contratuais ou requisitos legais, eles atendem aos padrões específicos do setor, Ok? Então se software atende aos requisitos do Contrato ou se software, por exemplo, ele atende alguma regulamentação específica, como aqui no caso do Tocantins se você vai desenvolver um software para que seja colocado em um restaurante, por exemplo, aquele cupom fiscal que é entregue para o cliente, depois que ele paga a conta, ele tem que estar de acordo com as normas da Secretaria da Fazenda do Estado do Tocantins, Ok? Então teste também vai verificar isso, se ele está de acordo com essas normas Agora, observar que teste de software é muito mais do que executar testes.
Mas por que isso? O teste de software ele é um processo. Então entenda que quando a gente fala em processo, significa que dentro dele há várias atividades diferentes e a execução do teste incluindo, a verificação dos resultados do teste, é apenas uma das atividades.
Então por exemplo, quando você acaba de escrever um código fonte, lá no editor de texto ou no ambiente qualquer e você manda compilar aquele código, você está verificando ali, por exemplo, se há erros de sintaxe ou não. Você de fato não testou ele ainda, ok? Você não pode considerar aquilo como um teste, tá?
Então, o processo de teste ele também vai incluir atividades como o planejamento do teste, ou seja, por que é que você quer testar, a análise dos resultados do teste, a própria forma como você vai executar os testes, tá certo? Então, tudo isso aqui, está relacionado com o teste. Isso faz parte do processo de teste, Ok?
A gente vai falar de novo do processo de teste na aula número 3. Bom, o teste de software então, ele é um processo que tem dois objetivos: o primeiro deles é verificar se os resultados obtidos através do uso do produto que você tá testando corresponde ao resultado esperado, ou seja, se ele vai fazer o que se espera que ele faça, ok? Isso a gente chama de teste de validação.
Agora um outro objetivo é tentar verificar se o sistema não tem defeito e esse a gente chama de teste de defeito. Então, veja que uma coisa é você se certificar e que ele funciona direito, outra coisa é verificar se ele não tem defeito. São dois objetivos diferentes, Ok?
Então, a atividade de teste é necessária porque quem desenvolve software somos nós, seres humanos e, bom, a gente já sabe que podemos, estamos sujeitos a cometer erros e esses erros podem acontecer pelos mais variados motivos seja em função da complexidade do software desenvolvido, seja por mudanças necessárias em um software que existe e que pode levar as novas falhas, a ausência de métodos, né? As pessoas às vezes estão fazendo aquilo pela primeira vez ou ele não tem a compreensão de alguma coisa que possa facilitar o processo, então aquilo para ele é tudo muito complexo. Então, ele não tem a exata noção, o desenvolvedor, de saber se o que ele tá fazendo tá bom ou não.
Ele apenas tá fazendo. . .
ou até por exemplo, questões pessoais, então você pode cometer um erro durante o desenvolvimento do software porque poxa vida, naquele dia você tava preocupado com um parente seu que está doente, você tava preocupado porque tinha contas a pagar e você não tinha dinheiro, enfim. Então, como somos pessoas somos falíveis e somos nós, seres falíveis, que desenvolvem software. Então, por isso é que a atividade de teste ela é tão necessário, tá certo?
E até o próprio ambiente de trabalho, então, por mais produtivo que você ser, por mais habilidoso que você seja, se você está inserido em um ambiente de trabalho no qual você não está satisfeito, isso aí vai prejudicar a sua produtividade, então isso aí pode fazer com que você cometa erros, Ok? Então, há vários fatores que devem ser levados em conta né que influem na qualidade do software e é por isso que a gente tem que testar. Independente dos problemas pessoais do desenvolvedor, os problemas de entendimento sobre o que deve ser feito, é fato que a gente precisa testar o produto, testar o software, para que quando ele chegar na mão do usuário, ele não tenha defeitos ou o que é o mais correto dizer é que a gente consiga corrigir a maior quantidade de defeitos possível!
Pois bem, nesse vídeo então você viu que teste de software é uma atividade dentro do ciclo de desenvolvimento que além de descobrir defeitos assegura que o produto testado funciona conforme o especificado.