Garantia Mínima de Qualidade
Em pleno 2015...
Essa foi a frase mais esperada na chegada desse ano.
Então,
para começar o ano bem, um artigo que vem de encontro ao que diz no
bordão e à um assunto que volta e meia é debatido. O fato de saber o que
temos que testar, para a partir dessa resposta iniciarmos nossos
trabalhos.
Enfim,
sabermos o que temos que testar é algo importantíssimo, daí nos dá um
próximo passo, o que temos que garantir, assim atuando com os 5W2H.
Podemos então, voltar à temas já mais que discutidos anteriormente em
várias comunidades, livros, eventos e demais. Onde, na maioria dos
casos, cerca de 65% se chega à conclusão de que devemos levar em
consideração às características conhecidas e listadas pela extinta
ISO-9126.
- Funcionalidade
- Usabilidade
- Performance
- Manutenibilidade
- Portabilidade
- Operacionabilidade
- Eficiência
- Segurança
- Conectividade
- Continuidade
Mas,
daí sempre vem aqueles comentários: "Poxa, o mundo mudou", "Isso é
coisa de dinossauro", "Cade agilidade?", "A vida não é mais como
antigamente".
Então surgem as perguntas:
O que temos que realmente testar?
O que temos que garantir para que o sistema possa ser entregue ao cliente?
O que devemos garantir principalmente?
O que devemos garantir no mínimo?
Perguntei à alguns colegas que são destaques no Brasil do Oiapoque ao Chuí, a seguinte interrogação:
"O que devemos garantir minimamente para aprovar um SW?" As respostas foram as seguintes:
"Em dias atuais, devemos pensar em
usabilidade, o sistema pelo menos deve ser intuitivo e de fácil
manuseio. O usuário ao olhar pela primeira vez para um SW ele tem de se
familiarizar, identificar facilmente qual o intuito e como chegar ao seu
objetivo.
Depois deste, as funcionalidades básicas e seus
desdobramentos devem ser garantidos. Desempenho e capacidade vão sendo
avaliadas e melhoradas de acordo com a necessidade real deste Software."
Kamilla Queiróz
GTS-CE
Robson Agapito
Testadores.com
"
Sempre devemos olhar para o risco, e levar em consideração onde se perderá dinheiro.
Se for um software de vendas, o ponto mais importante pode ser
no checkout, que finaliza a venda, então seria onde focaríamos os
testes.
Sempre os seus casos de testes devem estar priorizados
conforme a criticidade, e a partir disso testar o mas crítico primeiro e
testar os casos de menor criticidade depois conforme o tempo
disponível.
Outro detalhe, comece pelo "happy path", pois se este não
funcionar nem vale a pena continuar o teste do "pacote" disponível.
"
"A garantia de que as expectativas do dono do produto sejam atendidas.
Mas você me fala: "Só isso?"
E eu digo: Sim!
Podemos ter a nossa experiência para colaborar e lapidar essa
ideia, mas no final de contas, essa expectativa é a que precisa ser
atendida. Linha de pensamento: "Ele pensou em algo, ele vai administrar
(de maneira ou outra) e ele precisa estar confiante com aquilo. Sobre a
tecnologia e como vai ser feita, isso é parte do nosso entusiasmo"."
Ramsés Saccol
GUTS-RS
Vimos aqui várias opiniões e respostas para a mesma
pergunta. O que se tem, são, visões e ambientes diferentes que resultam
em diferentes formas de abordar um determinado assunto.
Assim,
uma das várias faces do Teste de Software que venho pesquisando à fundo
nesses últimos anos, é com o intuito de trazer algo que possa servir
para vários tipos de abordagem, ter visões iniciais, onde podemos partir
do mesmo princípio para poder assim após este princípio chegar aos seus
níveis de conhecimento e de atuação.
Um dos grandes desafios
hoje é ter um conceito base à toda área de desenvolvimento de software.
Se fizermos a pergunta a 50 pessoas envolvidas no desenvolvimento de
software, em todo o Brasil, teremos cerca de 80% das respostas uma
diferente da outra.
Um novo capítulo da Literatura dos
Testes de Software, a Era que transcendem os Livros e vão de encontro à
internet, diretamente nos Blogs.
Respondendo à pergunta feita em uma frase:
"Devemos garantir inicialmente 3 pontos, duas características vistas até hoje como principais: Usabilidade e Funcionalidade. E uma terceira característica relevante ao negócio"
Vamos à parte científica da resposta:
Desenvolvi uma prática bem interessante para partirmos do
pressuposto de cada tipo de sistema com que vamos lidar. Uma técnica que
persiste em definir um Triângulo da Qualidade onde vamos respeitar 3
lados que buscaremos garantir ao longo do projeto até sua entrega(o que
garante no mínimo esses três pontos definidos no início).
SG = UF + x
Dado que Sistema Garantido é um sistema que atenda Funcionalidade e
Usabilidade mais uma terceira característica relevante ao negócio.
Qual a diferença do que temos até hoje?
Nos últimos 15 anos recebemos um grande volume de
literatura e uma massa enorme de informações para podermos atuar, para
garantir a qualidade de um sistema. Técnicas para atuarmos no
desenvolvimento e novas formas de desenvolver. Contudo, poucas formas de
simplificar, poucas metodologias com que nos ajude de forma rápida a
dizer o que temos que fazer, para garantir o mínimo. Podemos encontrar
outras, utilizar outras e até aplicar metodologias de outras áreas de
atuação dentro do desenvolvimento de um software. Mas essa vem de
encontro ao que chamo de "praticidade de informação", ter aquele norte
de forma prática.
Qual a metodologia?
Ao longo dos anos, viemos aprendendo novas técnicas de
desenvolvimento dos testes e do controle da qualidade, porém, partindo
de um lado gerencial e analítico para definirmos onde queremos chegar,
foram poucas as novidades.
A metodologia do Triângulo dos Testes, nos trás uma
simplificação, uma forma de buscarmos aquela qualidade do software com
que perdemos ao longo do desenvolvimento de um software. Com o passar do
tempo dentro de um ciclo de desenvolvimento, seja ele um ERP de 30.000
horas de desenvolvimento, seja um Hotsite com 200 horas de
desenvolvimento. Nos perdemos na hora de garantir o básico.
Os pontos básicos para a garantia são esquecidos durante o
desenvolvimento do software, então com esta simplificação, poderemos
buscar a todo momento o que vamos garantir e chegar no resultado, seja
após 15.000 depois do planejamento inicial do ERP, sabendo onde queremos
chegar, seja, após 100 horas do desenvolvimento do Hotsite.
Como vamos definir os pontos a serem principais?
De acordo com o negócio de atuação do sistema. A base do triângulo, nos definimos com duas características:
- Funcionalidade
- Usabilidade
A funcionalidade, é definida como base, pois nenhum sistema deve ser entregue sem as funções as quais ele deve atender.
A usabilidade, é definida como base, pois o sistema tem de ser pelo menos utilizável.
A terceira, é definida como variável através do negócio do sistema.
Triângulo dos Testes de Software.
Partindo desta garantia, vai de cada tipo de negócio e exigência a partir do cliente, garantir outras características, bem como Portabilidade(hoje a 3° principal característica de um software), Performance seguida de Segurança. Entre outras mais especificas.
Triangulo UFPo
Triangulo UFS
Triangulo UFPe
A proposta é apresentar este novo método, essa visão dos
Testes de Software. Bem como uma atual orientação dos testes. Um
princípio atual e futuro, de onde possamos partir dele. Visto que é
embasado em tudo o que foi dito no passado até hoje e prontamente
utilizando esta base, para fazer esta melhoria consideravel na visão dos
Testes de Software.
Conhecendo os Triângulos dos Testes
Entendendo que nós precisamos garantir um mínimo de
Qualidade, então sugiro essa metodologia de Garantia mínima da
Qualidade. Aqui descrevemos sobre 3 tipos de Triângulos iniciais da
Garantia da Qualidade.
Sabemos que temos que garantir os cenários de testes
referentes à Funcionalidade e a Usabilidade, então, qual outra
característica devo acrescentar?
Triângulo UFPo
Com esta abordagem, você pode prontamente definir o
inicio dos Testes, com testes mínimos garantindo a qualidade pela
Usabilidade, Funcionalidade e Portabilidade.
A portabilidade representa a garantia do nosso sistema
funcionar minimamente em mais de 1 plataforma. Nos casos Web, de
funcionar em mais de um Browser, nos casos Mobile, funcionar em mais de 1
aparelho homologado.
Tipos de sistemas:
- Sistemas Web
- Sistemas Mobile
- Games
Assim ao definir que utilizaremos este Triângulo no
inicio do desenvolvimento para garantir estas três caracteristícas,
garantiremos que nosso sistema satisfaz os critérios mínimos das
funcionalidades, é usável e possível de ser utilizado em mais de uma
plataforma.
Triângulo UFPo
Triângulo UFS
Com esta abordagem, você pode prontamente
definir o inicio dos Testes, com testes mínimos garantindo a qualidade
pela Usabilidade, Funcionalidade e Segurança.
A Segurança é algo cada vez mais essencial nos
dias de hoje, visto que a informação está para qualquer um na internet
inclusive com a web em nuvem hoje.
Tipos de sistemas:
- Sistemas que envolvem transações e integração entre sistemas.
- Sistemas envolvendo Informações pessoais
- Sistemas em Nuvem
A abordagem definida com o Triângulo UFS, sugere uma garantia das
características do sistema com a relevância em Segurança, assim, os
termos de Usabilidade e Funcionalidade, devem por si, atuarem também com
cenários que tendem a garantir que dados sejam protegidos pelo sistema.
Triângulo UFS
Triângulo UFPe
Com esta abordagem, você pode prontamente
definir o inicio dos Testes, com testes mínimos garantindo a qualidade
pela Usabilidade, Funcionalidade e Performance
Um sistema lento, que não utiliza de forma
adequada os componentes utilizados pelo Hardware, sem uma arquitetura de
código bem definida hoje pode ser algo prejudicial ao negócio do
cliente.
Tipos de Sistemas:
- Sistemas embarcados
- Sistemas Desktop
- Sistemas BI
Com a abordagem do Triângulo UFPe, você define
que abordará as regras de negócio e usabilidade, mas não apenas, que se
preocupara com a arquitetura do software, e quão rápido você consegue
obter a informação e dispôr ela na tela.
Triângulo UFPe
Esta metodologia pode ser utilizada livremente, também
combinada com qualquer tipo de característica. Assim dependendo do
usuário que esteja realizando o planejamento. As sugestões dos três
Triângulos são sugestões aplicáveis.
Pirâmide da Qualidade de Software
Após termos em mente que o mínimo necessário no nosso
atual cenário mundial de Qualidade de Software, temos então 2
características fundamentais e uma variável.
SG = UF + x
Vamos evoluir o cenário da Abordagem da Garantia de
Qualidade e quais características e Testes utilizar para garantir com
mais profundidade o Sistema.
Se combinarmos os 3 triângulos principais, citados acima,
teremos a Pirâmide dos Testes. Assim, teremos uma maior garantia com
cenários de testes em várias características.
Podemos também definir os
quatro quadrantes base de sua pirâmide, assim definindo o Quadrado dos
Testes. Porém em um segundo momento considerando o 5° elemento(o qual
seria a ponta da pirâmide).
SG = UF + xy ± z
logo
SG = UFxy + z ou SG = UFxy - Z
Assim, ao ser perguntado novamente, poderemos ter algo na
ponta do lápis(lingua), para respondermos onde queremos que nosso
sistema atenda com uma Qualidade Mínima que se espera dele.
Este
artigo mostrou ainda que de forma simples um norte para você iniciar
seus Testes, sabendo o que você deve garantir ao menos para entregar seu
produto.
Lembrando que esta sugestão metodológica não é uma Garantia Completa, mas sim a Garantia Mínima.
Contribuições e Revisões:
Ramsés Saccol
Kamilla Queiróz
Robson Agapito
Patrícia Araújo
Luana Lobão
Augusto Magalhães
Por
Artigo publicado no blog 4ALL Tests em: January 27, 2015 at 10:50 PM