Pergunta

O Personal Software Processo (PSP) é projetado para permitir que engenheiros de software para entender e melhorar A perfomance deles. O PSP utiliza scripts para guiar um praticante através do processo. Cada script define o objectivo, os critérios de entrada, as etapas para executar, e os critérios de saída. PSP0 é projetado para ser uma estrutura que permite iniciar um processo pessoal.

Um dos scripts usados ??em PSP0 é o Script Development, que é o de desenvolvimento guia. Este script é utilizado uma vez que há uma declaração de requisitos, um resumo do plano de projeto, tempo e defeito registros de gravação são feitas, e um padrão tipo de defeito é estabelecida. As atividades deste roteiro são de design, código, compilação e teste. O script é encerrado quando você tem uma aplicação completamente testado e hora e defeitos registros completos.

Na fase de Código, você rever os requisitos e fazer um projeto, requisitos de registro defeitos no log, e realizar controle de tempo. Na fase de compilação, compilar, corrigir os erros tempo de compilação, e repita até que as compilações de programa, e registrar quaisquer defeitos e tempo. Finalmente, na fase de teste, você testar até que todos os testes executados sem erro e todos os defeitos são fixos, durante a gravação de tempo e defeitos.

As minhas preocupações são com a forma de gerir o código, compilar e fases de teste ao utilizar linguagens de programação modernas (línguas especialmente interpretadas como Python, Perl e Ruby) e IDEs.

As minhas perguntas:

  • Em linguagens interpretadas, não há tempo de compilação. No entanto, pode haver problemas na execução. Está a executar o script, fora da unidade (e outros) testes, considerados "compilação" ou tempo de "teste"? Deve erros com a execução ser considerada "compilação" ou erros "teste" quando o controle de defeitos?
  • Se um caso de teste encontra um erro de sintaxe, é que considerado um defeito do código, uma compilação defeito, ou um defeito de teste? O teste realmente encontrado o erro, mas é um problema de código.
  • Se um IDE identifica um erro que impeça a compilação antes de realmente compilação, deve que ser identificados? Se assim for, deve ser identificado e rastreado como um erro de compilação ou um erro de código?

Parece que a PSP, pelo menos o processo de linha de base PSP0, é projetado para ser usado com uma linguagem compilada e pequenas aplicações escrito usando um editor de texto (e não um IDE). Além de minhas perguntas, eu gostaria de receber os conselhos e comentários de quem está usando ou usou a PSP.

Foi útil?

Solução 5

Depois de ler as respostas por Mike Burton , Vinko Vrsalovic e JRL e re -reading os capítulos apropriados na PSP: Processo a Self-Melhoria de Software Engineers, eu vim com a minha própria assume esses problemas. O que é bom, no entanto, é que eu encontrei uma seção no livro que eu originalmente perdeu quando duas páginas grudadas.

  • Em linguagens interpretadas, há sem tempo de compilação. No entanto, pode haver problemas na execução. é execução o roteiro, fora da unidade (e outros) testes, considerados "compilação" ou tempo "teste"? Os erros devem com execução ser considerada "compilação" ou erros "teste" quando o controle de defeitos?

De acordo com o livro, ele diz que "se você estiver usando um ambiente de desenvolvimento que não compila, então você deve simplesmente pular a etapa de compilação." No entanto, também diz que se você tem uma etapa de compilação, "você pode gravar o tempo de compilação e quaisquer erros de compilação em fase de compilação".

Isto significa que para linguagens interpretadas, você quer remover a fase de compilação do rastreamento ou substituir a compilação com os seus scripts de construção. Porque o PSP0 é geralmente usado com pequenas aplicações (semelhante ao que seria de esperar em um laboratório da universidade), eu esperaria que você não teria um processo de construção e simplesmente omitir o passo.

  • Se um caso de teste encontra uma sintaxe erro, é que considerado um código defeito, uma compilação defeito, ou um teste defeito? O teste na verdade, a erro, mas é um problema de código.

eu iria gravar erros onde eles estão localizados.

Por exemplo, se um caso de teste tem um defeito, que seria um defeito de teste. Se o ran teste, e um erro foi encontrado no aplicativo que está sendo testado, isso seria um código ou projeto defeito, dependendo de onde o problema se originou.

  • Se um IDE identifica um erro que impediria compilação antes na verdade, a compilação, que deveria ser identificado? Se assim for, deve ser identificadas e rastreadas como uma compilação erro ou um erro de código?

Se o IDE identifica um erro de sintaxe, é o mesmo que você realmente detectar o erro antes da execução. Usando um IDE corretamente, há poucas desculpas para deixar defeitos que possam afetar a execução (como, erros de causa para a execução do aplicativo que não seja erros de lógica / implementação) através de.

Outras dicas

Em geral, como o PSP é uma aperfeiçoamento pessoal processo, as respostas às suas questões reais não importa, desde que você escolher uma resposta e aplicá-lo de forma consistente. Dessa forma, você será capaz de medir as vezes que você tomar em cada fase definida, que é o PSP é depois. Se sua equipe está coletivamente usando o PSP, em seguida, tudo o que você deve concordar em que scripts para usar e como responder às suas perguntas.

Meu assume as questões reais são (não que eles são relevantes):

  • Em linguagens interpretadas, não há tempo de compilação. No entanto, pode haver problemas na execução. é execução o roteiro, fora da unidade (e outros) testes, considerados "compilação" ou tempo "teste"? Os erros devem com execução ser considerada "compilação" ou erros "teste" quando o controle de defeitos?

Para mim, o tempo de teste é o momento em que os testes reais correr e não qualquer outra coisa. Neste caso, ambos os erros e tempo de execução eu acrescentaria como 'compilação' tempo, tempo que é usado na geração e executar o código.

  • Se um caso de teste encontra um erro de sintaxe, é que considerado um código defeito, uma compilação defeito, ou um teste defeito? O teste na verdade, a erro, mas é um problema de código.

Os erros de sintaxe são defeitos de código.

  • Se um IDE identifica um erro que impeça a compilação antes na verdade, a compilação, que deveria ser identificado? Se assim for, deve ser identificadas e rastreadas como uma compilação erro ou um erro de código?

Se o IDE é parte de seu conjunto de ferramentas, em seguida, vendo erros é como se ter descoberto os erros, e erros de código, portanto. Se você não usar o IDE regularmente, então eu contá-los como erros de compilação.

Eu usei PSP durante anos. Como já foi dito, é um processo pessoal, e você vai precisar de evoluir PSP0 para melhorar o seu processo de desenvolvimento. No entanto, a nossa equipe (todo o PSP-treinado) lutou com esses problemas em várias frentes. Deixe-me lhe dar uma idéia dos componentes envolvidos, e então eu vou dizer como conseguimos.

Nós tivemos um PowerBuilder "tier"; o PowerBuilder IDE impede que você mesmo salvar seu código até que ele compila corretamente e links. Parte do sistema utilizado JSP, embora a quantidade de Java era menor, e clichê, de modo que, na prática, não contá-lo em tudo. Uma grande parte do sistema foi em JS / JavaScript; isso foi feito antes das maravilhosas bibliotecas Ajax veio junto, e representou uma grande parte do trabalho. A outra porção foi grande Oracle PL / SQL; este tem uma fase de compilação um pouco mais tradicional.

Ao trabalhar em PowerBuilder, fase da compilação (e link) começou quando o desenvolvedor salvou o objeto. Se o teste bem sucedido, nós registramos um tempo de compilação de 0. Caso contrário, registramos o tempo que levou para nós para corrigir o erro (s) que causou o defeito em tempo de compilação. Na maioria das vezes, estes defeitos foram injectados na codificação, removido em fase de compilação.

Esse aspecto de compilação / link forçada do PowerBuilder IDE nos obrigou a mover-se a fase de revisão de código para depois de compilar. Inicialmente, isso causou-nos alguma angústia, porque não tínhamos certeza como / se uma tal mudança afetaria o significado dos dados. Na prática, tornou-se um não-problema. Na verdade, muitos de nós também mudou nosso código Oracle PL / SQL comentários para depois da fase de compilação, também, porque descobrimos que ao rever o código, que, frequentemente encobrir alguns erros de sintaxe que o compilador iria relatar.

Não há nada de errado com um tempo de compilação de 0, mais do que há algo errado com um tempo de teste de 0 (ou seja, o teste de unidade passou sem detecção de erros, e correu significativamente mais rápido do que sua unidade de medida). Se esses tempos são zero, então você não remover quaisquer defeitos nessas fases, e você não vai encontrar um 0 problema / div. Você também pode gravar um mínimo nominal de 1 minuto, se isso faz você mais confortável, ou se suas medidas exigem um valor diferente de zero.

A sua segunda pergunta é independente do ambiente de desenvolvimento. Ao encontrar um defeito, gravar que lhe injectada fase que em (tipicamente conceber ou código) e a fase removida, (tipicamente de conceber / revisão de código, de compilação ou de teste). Que lhe dá a medida chamada "alavancagem", que indica a eficácia relativa de remoção de um defeito em uma fase particular (e apoia o "conhecimento comum" que a remoção de defeitos mais cedo é mais eficaz do que removê-los mais tarde no processo). A fase do defeito foi injectado em é o seu tipo, isto é, um desenho ou codificação defeito. A fase do defeito é removido em não afeta seu tipo.

Da mesma forma, com JS / JavaScript, o tempo de compilação é efetivamente imensurável. Não registramos nenhum vezes para a fase de compilação, mas, novamente, nós não remover quaisquer defeitos nessa fase. A maior parte dos defeitos JS / JavaScript foram injectados na concepção / codificação e removido em análise da concepção, a revisão do código, ou de teste.

Parece, basicamente, como o seu processo formal não corresponde ao seu processo de prática. Passo para trás, re-avaliar o que está fazendo e se você deve escolher uma abordagem formal diferente (se de fato você precisa de uma abordagem formal para começar).

  • Em linguagens interpretadas, não há tempo de compilação. No entanto, pode haver problemas na execução. é execução o roteiro, fora da unidade (e outros) testes, considerados "compilação" ou tempo "teste"? Os erros devem com execução ser considerada "compilação" ou erros "teste" quando o controle de defeitos?

Os erros devem ser classificados de acordo com quando foram criados, não quando você os encontrou.

  • Se um caso de teste encontra um erro de sintaxe, é que considerado um código defeito, uma compilação defeito, ou um teste defeito? O teste na verdade, a erro, mas é um problema de código.

O mesmo que acima. Sempre voltar ao primeiro ponto no tempo. Se o erro de sintaxe foi introduzido durante a codificação, então ele corresponde à fase de codificação, se ele foi introduzido ao reparar um erro, então é na fase de defeito.

  • Se um IDE identifica um erro que impeça a compilação antes na verdade, a compilação, que deveria ser identificado? Se assim for, deve ser identificadas e rastreadas como uma compilação erro ou um erro de código?

Eu acredito que deve não ser identificado. É apenas o tempo gasto em escrever o código.

Como uma nota lateral, eu usei a ferramenta Painel de Processos para rastrear dados de PSP e achei bastante agradável. É gratuito e baseado em Java, assim que deve funcionar em qualquer lugar. Você pode obtê-lo aqui: http://processdash.sourceforge.net/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top