ti-enxame.com

Qual é a primeira referência publicada à primeira programação de testes?

Estou relator de refatoração por Martin Fowler. No capítulo 4, construir testes, me deparei pela seguinte passagem.

Na verdade, um dos tempos mais usados ​​para escrever testes é antes de começar a programação. Quando você precisar adicionar um recurso, comece escrevendo o teste. Isso não é tão atrasado quanto parece. Ao escrever o teste, você está se perguntando o que precisa ser feito para adicionar a função. Escrever o teste também se concentra na interface em vez da implementação (sempre uma coisa boa). Também significa que você tem um ponto claro em que você é feito codificando - quando o teste funciona.

Enquanto eu sou um defensor do desenvolvimento impulsionado pelo teste agora, não me lembro de ter sido introduzido ao conceito quando originalmente li este livro há quase 5 anos.

De acordo com a Amazon.com, este livro foi originalmente publicado em 8 de julho de 1999. Este é o primeiro referência publicado ao teste-primeira programação ou há algo antes?

11
Eric Weilnau

O desenvolvimento impulsionado é semelhante ao projeto por contrato, onde você tem pré-condicionadas, invariantes e pós-condições.

O termo foi cunhado por Bertrand Meyer em conexão com seu design da linguagem de programação Eiffel e primeiro descrito em vários artigos a partir de 1986 [Wikipedia]

Métodos formais Data de pelo menos 1983, e foram usados ​​para sistemas críticos de segurança, como o Metro de Paris sem motorista usando o método B:

Na primeira e a versão mais abstrata, chamada máquina abstrata, designer deve especificar o objetivo do design. [Wikipedia]

Estas podem ser algumas das coisas da qual Kent Beck "ajudou a pioneira ... a redescoberta da primeira programação do teste".

Mais para o ponto: Aparentemente, o início do projecto de 1960 da Nasa Mercury foi o primeiro projeto de software utilizando desenvolvimento e outras práticas ágeis. Não consegui encontrar nenhuma documentação inicial, mas aqui é A 2003 relatório que cita a comunicação dos membros do projeto:

O projeto Mercury correu com iterações muito curtas (meio dia) que eram boxed do tempo. A equipe de desenvolvimento realizou uma revisão técnica de todas as mudanças, e, curiosamente, aplicou a prática de programação extrema de testes de desenvolvimento, planejamento e escrita de teste antes de cada micro-incremento.

O resto do relatório também é interessante, continua dizendo:

A referência mais antiga descobrimos que especificamente focada em descrever e recomendar o desenvolvimento iterativo foi um relatório de 1968 de Brian Randell e F.W. Zurcher no IBM T.J. Pesquisa Watson.

Além de testes automatizados, o relatório 1968 defende codificação e testes paralelos, se não testar primeiro:

g. Design de detalhes, codificação e documentação de cada bloco de programa.
[.____] h. Design e documentação de métodos de teste para cada bloco de programa em paralelo com a etapa (g).

9
Hugo

Jon bently in Pearls de programação (originaly publicado em 1986) não menciona especificamente a programação do teste. Mas no capítulo "escrevendo programas corretos", ele descreve escrever um algoritmo pela primeira definição de pré-condições, invariantes e pós-condições, e no próximo capítulo descreve uma estrutura de testes automatizada.

Não é bem test - primeiro, mas ele estava definitivamente colocando algumas das bases.

Além disso,

[~ # ~] cio [~ # ~] Magazine, março de 1993, Bug Busters, por Lucie Juneau, pg 84 :

Casos de teste ... podem ser desenvolvidos antes mesmo de qualquer código ter sido escrito. Idealmente, esses casos são baseados nos requisitos de um aplicativo ... Se os desenvolvedores receberem testes baseados em requisitos antes de começarem a escrever código, eles projetarão um produto que pode passar esses testes ... "

4
AShelly

Isso foi Kent Beck , em seu livro programação extrema , também publicado em 1999 .

alt text

3
user2567