DictionaryForumContacts

 justboris

link 16.02.2006 22:50 
Subject: test-first programming
Пожалуйста, помогите перевести.

Выражение встречается в следующем контексте: His career has combined the practice of software development with reflection, innovation, and communication. His contributions to software development include patterns for software, the rediscovery of test-first programming, the xUnit family of developer testing tools, and Extreme Programming.

Заранее спасибо

 operator

link 16.02.2006 22:56 
Разработка программ методом "сначала тест" (мой перевод).

Метод разработки программ, при котором сначала пишутся тесты, а потом программы, их удовлетворяющие.

 justboris

link 16.02.2006 23:10 
разработка програм с предварительным тестированием (?)

 Annaa

link 16.02.2006 23:12 
Это называется разработка через тестирование. Идея заключается несколько в ином. Грубо говоря, программист вместо того, чтобы, получив заказ, разработать идеологию программы, блок схему, алгоритм, потором создать программу и начать ее тестировать, пишет "как бы" упрощенный вариант, который легко оттестировать и отладить, а потом вносит в нее всевозможные изменения.
Например, пишется программа решения уравнений. Сначала берется линейное уравнение, а потом, когда мы точно знаем, что корень она ищет, переписываем ее, чтобы она искала корень уравнения n-ой степени

 operator

link 16.02.2006 23:17 
Annaa не права. В ХР "testing first" имеет совершенно определенное (и иное) значение. Я уже объяснил выше. Соответственно, "предварительное тестирование" не подойдет. Предварительно тесты разрабатываются, но само тестирование происходит, разумеется, только после того, как программа (в действительности, ее часть, модуль) написана.

разработка программ с предшествующей разработкой тестов

 operator

link 16.02.2006 23:18 
Прошу прощения, "соответственно" здесь ни при чем.

 justboris

link 16.02.2006 23:21 
хм, у меня вероятно будет возможность спросить лично, что ж он имел ввиду, но только будет поздно :(

 operator

link 16.02.2006 23:21 
Сначала берется линейное уравнение, а потом, когда мы точно знаем, что корень она ищет...

В линейном уравнении корень не ищется, ищется в квадратном.

 operator

link 16.02.2006 23:24 
test-driven development

Test-driven development (TDD) is a Computer programming technique that involves writing tests first and then implementing the code to make them pass... This technique is heavily emphasized in Extreme Programming.

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Test-driven+development&gwp=8&curtab=2222_1&linktext=Test driven development

 Annaa

link 16.02.2006 23:25 
А про корень уравнения Вы ничего не слышали. На уроках математики в школе называлось "решением". У линейного уравнения имеется один. Там где график ось Х пересекает.

 operator

link 16.02.2006 23:29 
ОК, Вы правы.

 Annaa

link 16.02.2006 23:32 
Оператор, Вы представляете себе, что такое тестировать программу? Тест не может писаться отдельно от программы по определению. Это невозможно.

Вот, почитайте
http://www.objectmentor.com/resources/articles/DesignPrin.pdf

Since the entire purpose of the Copy program is to copy, We will focus on writing the test for it first, but how do we write a test for a class that uses two other classes without creating those classes first? Do the simplest thing that could possibly work, create mock objects for the Reader and Writer classes. Now we have enough to implement test first. The
MockReader will allow us to hard code what we are going to read, and the MockWriter will expose a field so we can check that it "wrote" the right thing

(....)

At this point our test for copy passes. We are not done yet however, we still have to implement the Reader and Writer classes. We could just change the Mock members and parameters in the Copy class ...

Первая программа называется тестом, но реально это болванка, которую можно легко модифицировать с учетом наших целей.

 operator

link 16.02.2006 23:44 
Annaa,

Как профессиональный программист со стажем в 25 лет, я "представляю себе, что такое тестировать программу".

Вы просто, видимо, не понимаете, о чем идет речь в приведенном Вами примере. "Сreating those classes first" в данном случае не означает "designing those classes first", это (здесь) означает "instantiating those classes first", that is, creating instances of those classes, objects, that can be used in testing.

Тест не может писаться отдельно от программы по определению. Это невозможно.

Прекратите. Вы не знаете, о чем говорите.

 Annaa

link 16.02.2006 23:57 
Я не имею опыта программирования 25 лет, но тоже училась понемного чему-нибудь и как-нибудь. Впрочем, в процессе тестирования программы на этапе написания диссера я поняла, что это совершенно не мое. Я знаю о чем говорю, поскольку тоже немало программ успела оттестировать, но все было несколько в иной плоскости. Здесь готова согласиться с Вами. Немного поторопилась с выводами. Более того, я ждала Вашего ответа, чтобы покаяться. Я уже минут 15 назад поняла, что была неправа. Впрочем, термин "разработка через тестирование" вполне кошерен и гуляет по всему яндексу.

 justboris

link 17.02.2006 0:00 
ну, гуляние по яндексу не означает кошерности :) но это так, к слову :)))
а вообще так одну из книг перевели, поэтому теперь это уже употребимо и знакомо, хоть может и не абсолютно правильно

 

You need to be logged in to post in the forum