Eu tenho cerca de 4000 linhas de código para um aplicativo da web em JavaScript / PHP / CSS / HTML. Como posso testá-lo corretamente?
Eu só suporte a versão mais recente do IE e Safari. Eu resolvi todos os erros. Existe uma boa maneira de testá-lo para que eu possa ir tão longe quanto chamar o código de robusto?
Eu considerei usar o perl Mechanize para preencher automaticamente formulários ou fazer algo semelhante.
Eu também tenho uma classe de teste PHP para testar o funcionamento interno das minhas classes PHP. No entanto, há algum tipo de padrão ou diretrizes de conformidade a serem cumpridas? Existe uma maneira de dizer que esse código passa nos padrões IEEE xxx foo para robsustness de código etc.?
Eu validei meu HTML usando validadores W3 e meu JavaScript usando jslint.com.
Aqui está uma lista de itens de dilligence:
- HTML / CSS passa na validação W3
- JavaScript passa jslint
- PHP passa na classe de teste PHP interna
Teste do Usuário
- Crie um conjunto de ações do usuário e implemente usando perl mechanize ou similar.
Existem padrões ou procedimentos para liberar código na Web?
Respostas:
A validação de software é uma área enorme, não há uma resposta definitiva para sua pergunta. Além disso, o engenheiro de validação de software geralmente é uma posição especial que requer muito mais conhecimento do que desenvolvimento e muitas habilidades (como por exemplo "especificação de depuração" que é realmente muito pouco trivial) que agora são comuns na comunidade de desenvolvedores.
Segundo, a validação de software (e a validação de código como parte essencial) não está testando. Há uma citação famosa de Dijkstra:
Portanto, essa é a principal diferença da validação de software (por exemplo, declarando que seu software é válido, não contém erros) e teste (para possíveis erros ou bugs).
Se reduzirmos sua pergunta para "como validar corretamente um aplicativo Web baseado em PHP?" Eu posso dar a seguinte resposta:
Análise de contaminação.
Existem algumas ferramentas legais ( 1 , 2 ) para realizar análises de contaminação no PHP. Essa é uma análise estática (que significa que é feita sem a execução do seu código) que identifica possíveis coletores (vazamentos) de informações confidenciais.
Eu usei algumas dessas ferramentas ( Pixy ) em minha própria prática e descobri que elas, como todas as outras ferramentas na análise estática, parecem superestimar o perigo potencial. No entanto, eles podem ajudá-lo a identificar alguns problemas de segurança que você pode não estar ciente. Isso é especialmente importante para aplicativos da Web que lidam com alguns dados confidenciais.
Isso não excluirá todas as vulnerabilidades possíveis, como XSS, mas cobrirá muitas comuns, como código PHP e injeções de SQL, etc.
Validação de conformidade.
Esta etapa você já executou executando os validadores JSLint e CSS / HTML em seu site completo.
Testes de carga.
Se a disponibilidade do seu aplicativo da Web for um problema (ou mesmo parte do seu SLA), eu também realizaria alguns testes de carga. Esses podem ser gerados por alguns IDEs, como o Visual Studio, ou você também pode usar a estrutura JMeter de código aberto para esse fim.
fonte
Os padrões são tão bons quanto as pessoas que os aplicam. (especialmente verdadeiro com os padrões de qualidade ISO ...)
Se você deseja testar completamente o seu software, precisa de uma boa especificação de requisitos que possa ser usada para verificar o fato de que você executou / implementou todas as tarefas / recursos / etc, conforme elas devem ser implementadas. Também ajuda ter outra pessoa a olhar para o projeto apenas de uma perspectiva de garantia de qualidade / teste de software (de revisões de código a testes exploratórios do usuário).
Outra observação que você pode querer considerar é o fato de que, sem uma especificação clara de requisitos, como desenvolvedor, você provavelmente assumirá as coisas como 'recursos' em vez de 'bugs' :)
Existem padrões IEEE para especificações de requisitos (IEEE 830) e planos de teste (IEEE 829). No entanto, acho que eles são um pouco OTT para muitos projetos.
(Também estou um pouco surpreso por você não ter um banco de dados?)
fonte
A resposta não é popular.
Você deve fazer com que os usuários saibam disso. Depois de esgotar a lista de bugs relatados após várias iterações de teste, você poderá chamar seu código apenas como robusto.
Você testá-lo sozinho será de pouca utilidade, porque você está nas árvores codificando e não pode ver a floresta.
Você não sabe que os desenvolvedores são os piores testadores de todos os tempos? Sou desenvolvedor e só sei disso depois de muitos anos caindo de cara depois de dizer com orgulho: "isso funciona perfeitamente no meu laptop".
fonte