Uma homenagem (bem atrasada) aos nossos amigos programadores pelo dia do programador, comemorado no dia 12 de Setembro.
Fique por dentro das novidades, assine o feed do QualidadeBR.
Fonte: Cartoon adaptado do blog SuperfolderK28
Uma homenagem (bem atrasada) aos nossos amigos programadores pelo dia do programador, comemorado no dia 12 de Setembro.
Fique por dentro das novidades, assine o feed do QualidadeBR.
Fonte: Cartoon adaptado do blog SuperfolderK28
Um dos testes de Caixa Preta (Black Box) é o Fuzz testing, cuja tradução seria algo como teste aleatório. É uma técnica que consiste basicamente na inserção de dados aleatórios na aplicação, com o objetivo de descobrir falhas no programa, relacionadas com a inserção/leitura de dados, e, assim, melhorar a confiabilidade do software.
O procedimento de implantação do Fuzz testing é composto por três passos:
Fique por dentro das novidades, assine o feed do QualidadeBR.
Fonte:
Harold E. Fuzz testing – Attack your programs before someone else does. IBM – Developer Works, 2006.
Fuzz testing – Wikipedia
Pessoal, há um tempo atrás publiquei um artigo sobre os tipos de testes, Teste Estrutural (White Box) X Teste Funcional (Black Box), no qual disse que iria detalhar cada técnica de teste em futuros artigos. Pois bem, como dizem “promessa é divida” e aqui inicio falando sobre testes de sobrevivência.
Segundo o livro Base de conhecimento em teste de software, os testes de sobrevivência avaliam a capacidade do software de continuar operando mesmo quando algum elemento (software ou hardware) fica inoperante ou pára de funcionar. Ou seja, seria uma versão do programa “No Limite” para o software, no qual iriamos verificar o comportamento do mesmo, em situações atípicas. Por exemplo: queda de um dos servidores utilizados, queda do banco de dados, etc.
Logicamente, não é cobrado que a aplicação continue funcionando normalmente em tais situações, o que é verificado é o comportamento dela nessas situações. A aplicação deverá está preparada para enfrentar esses “desastres”, por exemplo: uma aplicação bancária ao perder conexão com o banco de dados, deverá parar as suas execuções atuais e informar ao(s) usuário(s) do ocorrido e quando a conexão com a base de dados for restabelecida ela deverá dá um rollback nas execuções que foram paradas.
Outro objetivo dos testes de sobrevivência é conhecer os limites do software, para que em produção evite-se submeter-lo a tais situações. Podendo até esse limite tornar-se uma restrição do software. Uma analogia pode ser feita com o elevador, no qual há uma restrição quanto a quantidade de passageiros máximos ou peso máximo que o mesmo pode transportar, pois foi realizado testes previamente, que revelaram que caso essa restrição não seja respeitada o elevador corre risco de quebra.
Por fim, podemos concluir que os testes de sobrevivências são essenciais para aplicações críticas, pois irão revelar os seus limites e ajudará a equipe a tomar decisões para prevenir tais situações.
Fique por dentro das novidades, assine o feed do QualidadeBR.
Fonte:
Bastos, A.; Rios, E.; Cristalli, R. & Moreira, T. Base de conhecimento em teste de software. São Paulo, Martins Fontes, 2007.
Muitas vezes estamos buscando saber o que determinada coisa é e não buscamos saber o que ela deveria ser. Pela complexidade humana, encontramos uma distinção nos sistemas pela qual há sistemas que estão imersos na natureza e outros que não estão.
Pode parecer meio confuso, pois quando falamos em natureza, cada indivíduo faz uma associação diferente com a palavra natureza. Um sistema que está imerso na natureza, seria um que possui poucas barreiras com o usuário, e com o qual o usuário tem uma interface colaborativa, ou seja, que o comportamento do sistema possa reproduzir ou emitir, em certo sentido, o comportamento normalmente esperado de um humano em cooperação com o usuário.
Qualidade Sem Nome, ou Quality Without a Name (QWAN), foi definida pelo arquiteto, matemático e urbanista, Christopher Alexander, no seu livro The Timeless Way of Building, como sendo:
Uma qualidade central que é a raiz da vida e espírito de um homem, uma cidade, uma construção, da natureza. Tal qualidade é precisa e objetiva, mas não possui um nome.
Fugindo dessa definição filosófica, a qualidade central seria como o chassi de um carro: é ele que definirá a qualidade do produto final (carro), não adianta ter um motor potente, ou um bom piloto, se o chassi do carro foi mal projetado.
Alexander, ainda diz que a Qualidade não pode ser fabricada, mas sim gerada, indiretamente, pelas ações das pessoas. Embora muitos ainda pensem que a Qualidade esteja intrinsecamente ligada aos processos, metodologias ou ferramentas, quando na verdade ela está diretamente ligada as pessoas e suas ações.
Aplicando a QWAN em TI, podemos associar ela ao real objetivo de algum programa, ou seja, aos requisitos do projeto. E esses podem está errados, fazendo com que o “chassi” da nossa aplicação fique totalmente prejudicado. Afinal, na maioria das vezes, a falha está no planejamento do projeto e não no desenvolvimento.
E qual o motivo para esse fato?
A verdade é que a Qualidade é traduzida muitas vezes até a entrega final do produto, e durante estas traduções podem ocorrer algumas das seguintes situações:
O conceito de QWAN nos leva a uma revolução, Alexander não apenas tentava achar padrões que explicassem a existência da QWAN, mas também achar padrões que gerem objetos com essa qualidade.
QWAN proporciona uma conexão quase emocional com a estrutura projetada. Proporciona àqueles que interagem com ele um sentimento de completude, de conforto, de sentirem-se vivos. Os artefatos que a possuem são flexíveis, extensíveis, adaptáveis, reutilizáveis, enfim, possuem qualidades que de um certo ponto de vista emulam vida.
Esta definição é demasiada subjetiva para se adequar aos paradigmas atuais de Engenharia de Software. O QWAN opera no nível visceral de inteligência humana e as disciplinas da engenharia almejam o nível comportamental.
Por fim, podemos entender que a QWAN nos fazem evidenciar que o produto deverá fornecer uma sensação imediata de compreensão e afetividade com o usuário. Por isso, devemos colocar o usuário no centro do projeto e sempre estarmos nos perguntando e comprovando se o sistema correto está sendo construído. Buscando a criação de estruturas que são boas para as pessoas e influem positivamente nelas, melhorando seu conforto e qualidade de vida.
Fique por dentro das novidades, assine o feed do QualidadeBR.
Fonte:
Christopher, A. The Timeless Way of Building, Oxford University Press, New York, 1979.
Valente, E. Padrões de Interação e Usabilidade, UNICAMP, Campinas, 2004. (obtido no site da Biblioteca Digital da UNICAMP)
Lehti, L.; Ruokonen, A. Foundation of the patterns. (obtido no link: http://www.cs.tut.fi/~kk/webstuff/Foundationofpatterns.pdf)
A área de Testes é uma das que mais tem crescido, nos últimos anos, para se ter idéia em média há umas 50 a 70 vagas da área de Testes no Apinfo, site dedicado a vagas de TI, tendo como base o estado de São Paulo.
Esse resultado dá-se, devido a importância da execução dos testes, durante o ciclo de desenvolvimento. Principalmente, com o “boom” das práticas de outsourcing e de offshoring, que exigiu das empresas uma maior garantia da qualidade de seus produtos.
Recentemente saiu uma lista dos empregos de TI à prova de recessão, feita pela empresa de recrutamento online JobFox, na qual se encontra na 12º posição os profissionais especialistas em testes e controle de qualidade.
A carreira nesta área geralmente respeita a seguinte hierarquia:
Fique por dentro das novidades, assine o feed do QualidadeBR.
http://www.testexpert.com.br/?q=node/101
http://carreiradeti.com.br/carreira-areas-ti-tecnologia-prova-recessao/