Qual è il primo riferimento pubblicato alla programmazione test-first?

11

Sto rileggendo Refactoring di Martin Fowler. Nel Capitolo 4, Test di costruzione, ho trovato il seguente passaggio.

In fact, one of the most usefull times to write tests is before you start programming. When you need to add a feature, begin by writing the test. This isn't as backward as it sounds. By writing the test you are asking yourself what needs to be done to add the function. Writing the test also concentrates on the interface rather than the implementation (always a good thing). It also means you have a clear point at which you are done coding--when the test works.

Anche se ora sono un sostenitore dello sviluppo guidato dai test, non ricordo di essere stato introdotto al concetto quando ho letto questo libro quasi 5 anni fa.

Secondo Amazon.com, questo libro è stato originariamente pubblicato l'8 luglio 1999. È questo il primo riferimento pubblicato alla prima programmazione di test o c'è qualcosa anche prima?

    
posta Eric Weilnau 29.09.2010 - 16:00
fonte

3 risposte

9

Lo sviluppo guidato dai test è simile alla progettazione per contratto, in cui sono presenti precondizioni, invarianti e postcondizioni.

The term was coined by Bertrand Meyer in connection with his design of the Eiffel programming language and first described in various articles starting in 1986 [Wikipedia]

I metodi formali risalgono almeno al 1983 e sono stati utilizzati per sistemi di sicurezza critici come la metropolitana parigina senza conducente con il metodo B:

In the first and the most abstract version, which is called Abstract Machine, designer should specify the goal of the design. [Wikipedia]

Potrebbero essere alcune delle cose da cui Kent Beck "ha aiutato a fare il pioniere ... la riscoperta della programmazione prima del test".

Più precisamente: Apparentemente il Progetto Mercury della Nasa degli inizi degli anni '60 è stato il primo progetto software che utilizzava lo sviluppo basato sui test e altre pratiche agili. Non sono riuscito a trovare alcuna documentazione iniziale, ma ecco un rapporto 2003 che cita la comunicazione dei membri del progetto:

Project Mercury ran with very short (half-day) iterations that were time boxed. The development team conducted a technical review of all changes, and, interestingly, applied the Extreme Programming practice of test-first development, planning and writing tests before each micro-increment.

Anche il resto del rapporto è interessante, continua dicendo:

The earliest reference we found that specifically focused on describing and recommending iterative development was a 1968 report from Brian Randell and F.W. Zurcher at the IBM T.J. Watson Research.

Oltre ai test automatizzati, il rapporto del 1968 sostiene la codifica parallela e test, se non test-first:

g. Detail design, coding and documentation of each program block.
h. Design and documentation of test methods for each program block in parallel with step (g).

    
risposta data 20.05.2011 - 00:01
fonte
4

Jon Bently in Programming Pearls (pubblicato originariamente nel 1986) non menziona specificamente la programmazione Test-First. Ma nel capitolo "Scrivere programmi corretti", descrive la scrittura di un algoritmo definendo prima le precondizioni, gli invarianti e le postcondizioni, e nel prossimo capitolo descrive un framework di test automatizzato.

Non è un bel test-first, ma stava sicuramente gettando alcune delle basi.

Inoltre,

CIO Magazine, marzo 1993, Bug Busters , di Lucie Juneau, pg 84 :

Test cases ... can be developed even before any code has been written. Ideally these cases are based on an application's requirements ... If developers are given requirements-based tests before they begin to write code, they will design a product that can pass those tests ... "

    
risposta data 29.09.2010 - 19:02
fonte
3

Questo era Kent Beck , nel suo libro Extreme Programming , pubblicato anche in 1999 .

    
risposta data 29.09.2010 - 16:05
fonte

Leggi altre domande sui tag