Qualquer contexto, não só na atividade de teste de "Software", é importante conhecer as palavras, as frases mais utilizadas, para que as pessoas envolvidas falem a mesma língua. Então, nesse vídeo eu vou falar pouquinho sobre os principais termos relacionados com a atividade de teste de software. Antes disso, verifica as seguintes notícias publicadas na mídia: "Falha no 'Whatsapp Web' coloca 200 milhões de usuários risco". Então, 9 de setembro de 2015, o jornal O Globo noticiou essa falha no "Whatsapp". O problema é que o aplicativo tinha uma falha. De acordo com a firma de segurança "Checkpoint", o "bug" expôs cerca de duzentas milhões de pessoas vulneráveis a ataques "hackers". O problema foi relatado à companhia no dia 21 de agosto. Outra notícia. 4 de abril de 2014, o mesmo portal G1 noticiou: "Garoto de 5 anos acha falha no 'login' do 'Xbox' ". Foi feito agradecimento pela "Microsoft", que enumera pesquisadores que encontraram falhas de segurança seus produtos. Esse garoto descobriu uma vulnerabilidade na tela de "login" do "Xbox One". Para terminar, uma outra notícia: "Consumidores que compraram o 'Galaxy S8' na pré-venda reclamam de defeito". Então a "InfoMoney" de 20 de abril de 2017 destacou essa notícia, as pessoas estavam reclamando de defeito. É provável que a "Samsung" consiga corrigir o erro, por meio de atualização de "software", se o problema for realmente esse desnivelamento de cores. Então observa o seguinte, diferentes termos foram utilizados nesses casos, para dizer que problema "software" foi a causa dos incidentes ocorridos. Você percebeu isso? Então, será que esses termos: engano, defeito, erro, falha, são palavras sinônimas? É sempre que a gente está estudando sobre teste de "software"; participando de uma entrevista de emprego na área; ou estudando para testes, para aulas de certificação; esses termos, eles sempre aparecem. E as pessoas sempre tem bastante dúvidas, se eles são palavras sinônimas e quais são as diferenças entre eles. Existem entidades e sociedades que buscam estudar e padronizar essa terminologia da área. Então nesse caso, que a gente tem uma figura bem conhecida, que explica pouquinho das diferenças entre engano, defeito, erro e falha. De forma geral, o engano, ele introduz defeito no "software"; e o defeito, quando ativado, ele pode produzir erro; e esse erro, se propagado até a saída do "software", aí ele se constitui uma falha. Aqui a gente tem exemplo, olha só: Considere esse comando aqui, z recebe y mais x. Suponha que ele foi substituído por engano pelo programador, por exemplo, pelo comando: "z" é igual "y" menos "x". Então, se o defeito introduzido for ativado, com x igual a zero, então vamos verificar aqui. Suponha que o y seja 1 e o x seja zero. O quê que vai acontecer aqui? Mais zero, o valor esperado de z é. Mas como houve engano, qual será o resultado? Então mesmo para y e zero para x. Menos zero, z continua tendo o valor de 1. Então nesse caso, nenhum valor incorreto para variável z é produzido. Então, existiu o engano que introduziu o defeito, mas o defeito si nesse caso, ele é ativado, mas não produziu nenhum erro. Então, consequentemente, não houve uma falha aqui. Agora, para qualquer outro valor de x diferente de zero vai acontecer erro. Por quê? Suponha aqui, y igual a 1 e x igual a 1. Então qual que é o valor esperado para z? Mais dois. Certo? A mesma coisa aqui, só que menos vai dar o quê? Zero. Então o valor para z vai ser zero, observa que é diferente. Então a ativação do defeito aconteceu, mas foi produzido erro. Por quê? Porque o valor esperado para z era dois, mas que valor apareceu? Zero. Então está o erro, se propagar até a saída, vai caracterizar uma falha. Aqui a gente tem exemplo que tenta definir melhor, de forma descrita, as diferenças entre esses termos. Então de forma geral, engano ou inglês, "mistake", é a ação humana que produziu resultado incorreto, foi quando, vamos supor, o desenvolvedor ou programador, ele trocou ali o sinal pelo outro, aconteceu engano. O defeito, que inglês é "fault", é passo, processo ou definição de dados, incorreto produto de "software". Então no uso comum, os termos erro, "bug" e defeito, são usados para expressar esses significados. Agora o erro, que é "error" inglês, é a diferença entre o valor computado, observado ou medido, e o valor teoricamente correto. Então nesse caso aqui, o valor observado foi zero, mas o valor que era esperado para z, era o quê? Dois. Então aconteceu erro. E a falha, que é "fail", é a inabilidade do sistema ou componente de realizar a função requerida, considerando as questões de desempenho exigidas. Então, esse erro, ele pode ser propagado até saída. E aí pode pedir ao usuário de seguir no sistema, algum relatório sair com informações erradas e assim por diante. Então aqui tem resuminho. É importante conhecer os termos e os jargões utilizados para a gente falar a mesma linguagem. Aqui a gente considerou alguns termos mais importantes, que causam mais dificuldade das pessoas compreenderem as diferenças, que foi o engano, defeito, erro e a falha. Essas definições nem sempre são seguidas, a gente viu nas notícias que elas podem ser cambiadas, podem ser trocadas por outras palavras. As pessoas achando que são sinônimas, mas não são. É importante saber diferenciar esses termos e existem padrões internacionais, inclusive, que coletam e padronizam terminologias da área. É importante a gente conhecer esses padrões. Então como dica de próximos passos, eu deixo para você identificar outros termos e outros conceitos relacionados à atividade. Quanto mais você lê sobre uma área mais conhecimento você adquire e mais "expert" nessa área você fica. Exercitar os conhecimentos adquiridos até agora, por meio de exercícios e análise de casos. Tá certo? Aqui algumas referências utilizadas, principalmente livro de introdução ao teste de "software" e os "slides" do curso de "Teste de Software- Teoria e Prática".