среда, 18 марта 2015 г.

How to test “untestable” applications

Original in Russian: http://18delphi.blogspot.ru/2014/05/blog-post.html

Let’s say, this is a summary on:
How to test “untestable” applications. Or how to make applications testable.

Let's say – BASIС principles I take from the approach of Sergey Teplyakov who used to write that application testability is an indicator (a litmus paper) of application architecture being “GOOD”.

Once more – the architecture is “good” if it is well tested.

If it is DIFFICULT to write test for a “class”, then why may we think that our colleagues can EASILY use this class?

Teplyakov wrote about it here - Ideal architecture http://sergeyteplyakov.blogspot.ru/2011/11/blog-post_23.html (I actually recommend ALL his articles).

This theme was argued by Roman Yankovsky here - Testable architecture http://roman.yankovsky.me/?p=1541

I’ve written about how I myself found out that testing is needed and that “a good architecture is one that is well tested” and how after that I “began to sleep peacefully” here - http://18delphi.blogspot.ru/2013/03/blog-post.html

However, for long time I’ve been occupied by a thought. It is great if we thought of testing and the “good architecture” from the beginning and applied various approaches (TDD, in particular). But what if we have a GREAT amount of code written with not a slightest thought of testing?

What should we do?

How can we make our application “testable”?

Also, how to “set right” its architecture?

Since then I tried to write many “articles”.

The “prehistorical”:


-- there I tried to tell about GUI-testing “as I see it”. I developed testing myself for almost five years.

I also told that GUI-testing is used because of POVERTY, i.e. “BAD ARCHITECTURE”.

It turned out that “people do not understand”.

Then, I made one more attempt:


- where I tried to tell once MORE how to test applications that INITIALLY were not intended for TESTING.

AGAIN, it turned out that “people do not understand”.

At that moment, Vsevolod Leonov showed up and “gave a dare”.

Right here:

I owe SPECIAL THANKS to him for it!

And so a “modern” series “Testing of calculator” came to light:

All seven articles written for now are listed in this reference.

These articles “at first sight” seem to be “banal”, but, as for me, they rise MANY principal questions concerning developing, testing and writing requirements specification.

This series is an “open project”. My colleague from Ukraine and I will develop it. We're planning to write numerous articles and are currently working on it.

In particular, we have a plan - http://programmingmindstream.blogspot.ru/2014/03/blog-post_5.html

Although, our plan was got ahead by life and we have FAR GREATER ideas (I can share with anyone who’s interested).

Besides, we're GLAD to welcome “constructive critics” and CO-AUTHORS.

This is, actually, all “I know about testing” so far.

P.S. We have repository where we’re currently developing - https://bitbucket.org/ingword/lulinproject/src/9674200a1892ab5e2682f740632c9513b3cf9e1e/DummyCalculator/?at=Release

P.P.S. The next part about using “Tests with etalons” has appeared - http://18delphi.blogspot.com/2015/03/testing-of-calculator-61-testing-using.html

Комментариев нет:

Отправить комментарий