… :) One more thing on the topic I've just remembered: a test shouldn't be
just a method in a "test-case" class; test should be a separate alive
object with its own state and probably extendable behavior… preferably a
visible object that can be manipulated directly…

Regarding this, I think SUnit was just a very first approach to a good TDD
framework and should be rethought deeply (re-invented?)… but I don't know
if someone ever tried to do that, everyone seems to be satisfied with test
as methods approach.



--

Best regards,


Dennis Schetinin


2013/6/6 Dennis Schetinin <[email protected]>

> … I've forgot to explicitly mention that TDD-ing in Pharo I spent most of
> time in debugger and inspectors: I see live objects there, I can
> investigate and find roots of troubles, I code there… That's why TDD is
> most productive in Smalltalk environment for me, and another reason why I
> think a good debugger (in an alive environment) doesn't make TDD
> unnecessary (or inversely) but rather complement and empower each other.
>
>
> --
>
> Best regards,
>
>
> Dennis Schetinin
>
>
> 2013/6/6 Dennis Schetinin <[email protected]>
>
>> I didn't mean to start a big discussion so I'm not ready to state or
>> develop my vision right now fully and logically… But let's try to start
>> little-by-little.
>>
>> Considering Pharo as an example… there are  few minor issues like lack of
>> some code-producing features in debugger… the one I can remember right now
>> is lack of code formatting there, but there are few more. Fixing such
>> issues would be a first step towards TDD-oriented environment.
>>
>> Next steps would be about some more serious improvements: Test Runner
>> improvements, auto-test running (it's already is implemented I think?),
>> test annotations (expressing ideas behind every tests, relations between
>> them, etc.), better test navigation and, perhaps, a "TDD-oriented" browser.
>> Then, there should be introspection tools that for example silently save
>> all the history and allow to review, analyze the development process
>> regarding the idea-test-implementation triplets…
>>
>> …Sure, I rather have a "feeling" of the TDD-oriented environment then a
>> good proposal right now. The feeling grows to something almost reasonable
>> when I code, but I didn't have such chance for few months already, so I'm
>> kinda caught off base :)
>>
>>  --
>>
>> Best regards,
>>
>>
>> Dennis Schetinin
>>
>>
>> 2013/6/6 Frank Shearar <[email protected]>
>>
>>> On 6 June 2013 14:44, Dennis Schetinin <[email protected]> wrote:
>>> > TDD is not about tests (as a bug-finding/debugger tool) at all. And the
>>> > anti-regression feature of TDD is just the secondary one.
>>> >
>>> > First of all, TDD is about structuring thinking/creation process. And
>>> "test"
>>> > here is a tool that allows and makes developer to formalize
>>> requirements and
>>> > to translate them to the language they will be implemented in. This
>>> starts
>>> > and really drives coding. Thus, a programmer that really masters TDD
>>> (really
>>> > means an ability to apply "pure" TDD for all programming activities:
>>> both
>>> > top-down and bottom-up design activities) is expected to produce much
>>> better
>>> > architecture/design/code.
>>> >
>>> > … So, I don't think TDD is somehow obsolete by Smalltalk. Vice versa,
>>> TDD
>>> > should be really efficient here. And it's a great pity TDD is not
>>> actually
>>> > popular in Smalltalk society. One of the dire consequences is that
>>> modern
>>> > Smalltalk environments are not "TDD-oriented" and don't advantage from
>>> good
>>> > TDD methodology.
>>>
>>> Why do you think Smalltalk environments aren't "TDD oriented"? What
>>> would an IDE need to be TDD oriented? (I can think of something like
>>> Ruby's guard, which runs tests every time you save a file.)
>>>
>>> frank
>>>
>>>
>>
>

Reply via email to