IA- Reconhecimento Facial o quê testar ?
Tags: testing, braziliandevs, beginners, ia
Published: 2021-06-30 13:55:29

Olá QAs e DEVs, tudo massa? Integração entre times e áreas é muito importante profissionalmente e para a vida. Este tema será divido em 2 partes e contará com a participação do [Luiz Garcia Junior](https://medium.com/@lcsjun) na segunda parte.

**Tema de hoje: IA: Reconhecimento Facial o quê testar ?**

> Inteligência artificial (por vezes mencionada pela sigla em português IA ou pela sigla em inglês AI — artificial intelligence) é a inteligência similar à humana exibida por sistemas de software, além de também ser um campo de estudo acadêmico. Os principais pesquisadores e livros didáticos definem o campo como “o estudo e projeto de agentes inteligentes”, onde um agente inteligente é um sistema que percebe seu ambiente e toma atitudes que maximizam suas chances de sucesso.
Fonte: https://pt.wikipedia.org/wiki/Intelig%C3%AAncia_artificial

E um complemento...

> Um Sistema de Reconhecimento Facial é uma técnica cuja base vem de que cada pessoa tem um padrão característico facial em que, usando algum sistema de análise profunda de imagem, se pode identificar tal indivíduo.
Fonte: https://pt.wikipedia.org/wiki/Sistema_de_reconhecimento_facial

Após apresentar os conceitos e muitos outros que possam existir na rede, vamos falar como testar isso.

**1. Manual versus Automatizado**
Antes de botar a mão na massa efetivamente, é de extrema importância entender o que a IA irá trabalhar, como irá processar os dados, onde estará

![Compreender o ambiente](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34wg13avcvcrr5t8oig9.PNG)

hospedado a base, quais tecnologias ou abordagens de irá aplicar, além de outras variáveis que serão específicas de cada projeto. Para isso, gaste um tempo para coletar estas principais informações além de consultar documentos do projeto, tudo isso serão métricas que irá coletar. Assuma também a preocupação da base de dados de treinamento da IA, isso será a fonte vital de treinamento e resultados obtidos durante a fase de desenvolvimento. Tenha muito cuidado com a utilização da base de treinamento durante as fases do projeto: **Desenvolvimento > Testes > Refinamento > Homologação > Produção**
pois em cada fase e análise dos resultados, os mesmos podem correr o risco de “vício” e daí **mascarar falsos positivos**.

![Pirâmide de Teste](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mebfu2q3vc28a0pnwe21.PNG)
*Fonte: https://www.primecontrol.com.br/automacao-de-testes/*

**2. Cobertura e Requisitos**
Para a cobertura de requisitos e complexidade do sistema poderá utilizar a técnica: Complexidade Ciclomática, que é uma métrica de software usada para indicar a complexidade de um programa de computador. Desenvolvida por Thomas J. McCabe em 1976, ela mede a quantidade de caminhos de execução independentes a partir de um código fonte. Abaixo uma imagem para ilustrar:

![Cobertura de Teste](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7e8ok64eb7k5aruf6w4v.PNG)
*Fonte: https://www.treinaweb.com.br/blog/complexidade-ciclomatica-analise-estatica-e-refatoracao*

**3. Escopo do Teste**

Alguns itens que podemos abordar em âmbito de Reconhecimento Facial:
* Traços do Rosto;
* Traços Únicos;
* Códigos Binários;
* Pontos Nodais: possuímos cerca de ~80 pontos;
* Distância entre os pontos Nodais;
* Posição do Rosto;
* Captura: Foto (previamente salva) ou Live (captura no momento);
* Formas Geométricas;
* Porcentagem de confiança;
* Ambiente: luminosidade, saturação, hardware, etc.;
* Usuários duplicados;

**4. Métricas de Teste**
* Modo de Reconhecimento: snapshot, live, etc.;
* Usuários duplicados rating;
* Tempo de Resposta;
* Número de detecções: 1 para N;
* Números de detecções únicas: 1 para1;
* TAR: True Acceptance Rate;
* FRR: False Rejection Rate;
* FAR: False Acceptance Rate;
* Acurácia;

Além de todos os itens citados acima, o ambiente que irá ser executado o teste, é também de extrema importância, como rede e conexões, câmeras e qualidade de imagens capturadas, formato e local de armazenamento e muitas outras várias que deverá levantar e analisar conforme a realidade do seu projeto.

Este post é apenas um pedacinho da Área de Qualidade de Software e Desenvolvimento de Software, busque e qualifique-se.