Testability vs. Testing

The first time I heard the expression "unit testing" at a .NET conference was--if memory serves well--back in 2004. Since then, it took probably a couple of more years for the theme of "unit testing" to gain due visibility in the .NET space. I can't mention a date when I heard the word "testability" instead. And still in articles, blogs, and conference talks the prevailing term is "testing". Not that no conferences in the world had the word testability pronounced lately, but it never happened to me to attend a talk or something where I could hear it--maybe I just go to the wrong sessions and miss a lot of great events :)

Seriously, I feel that the word "testing" is used much more frequently than the word "testability". And I do believe that for developers and, especially, architects testability is a far more important aspect. In first place, testability is one of the required attributes of any software system according to the ISO standard for software architecture. Second, testability has a deeper impact than testing on the quality of the code you write. What's testability?

In our book "Architecting Applications for the Enterprise" Andrea and I write it as follows:

A broadly accepted definition for testability in the context of software architecture describes it as the ease of performing testing. And testing is the process of checking software to ensure that it behaves as expected, contains no errors, and satisfies its requirements.

In a nutshell, testing returns you a working application; testability returns you a better designed code. Honestly, can you spot any difference between a unit-tested piece of code that works and a piece code that just works (maybe tested by simply poking around)?

With the excuse of letting you do that cool thing called unit-testing more quickly and effectively, testability silently drives you towards a much better design of the code with plenty of SoC, dependency injection, low coupling, high class cohesion, and minimal responsibilities for classes.

Ultimately,design for testability means applying a software contract (code-contract in .NET 4.0) to classes and methods and keep classes cohesive, loosely coupled, and with dependencies clearly listed. Once classes are testable, unit-testing them is really a little detail.

 

 

 

Published 13 May 2009 11:26 AM by despos
Filed under:

Comments

# Dew Drop - May 13, 2009 | Alvin Ashcraft's Morning Dew said on 13 May, 2009 09:27 AM

Pingback from  Dew Drop - May 13, 2009 | Alvin Ashcraft's Morning Dew

# Jason Haley said on 13 May, 2009 10:01 AM

Interesting Finds: May 13, 2009

# Summary 10.05.2009 – 20.05.2009 « Bogdan Brinzarea’s blog said on 20 May, 2009 02:06 AM

Pingback from  Summary 10.05.2009 – 20.05.2009 «  Bogdan Brinzarea’s blog

# Innis said on 24 March, 2010 12:50 PM

Badly need your help. Man is the only animal that can remain on friendly terms with the victims he intends to eat until he eats them. Help me! Could you help me find sites on the: Online share trading australia fees comparison. I found only this - <a href="leadership.nlada.org/.../ShareTrading">india share market trading call tomorrow</a>. Share trading, experience stock causes a same trading of expenditure. Underlying importance from firm in enterprises and dealers is about that safe market as entities see, share trading. Thanks ;-). Innis from Malaysia.

# weblogs.asp.net said on 08 May, 2011 08:50 AM

Testability vs testing.. Reposted it :)

# Ecommerce website developers said on 21 June, 2011 06:21 AM

Nice informative post and i got a good knowledge about . your informational post is great resourceful for lots beginners in .net so they likes your blogs.

# weblogs.asp.net said on 21 June, 2011 11:51 PM

Testability vs testing.. Reposted it :)

# Android apps developer said on 16 August, 2011 12:35 AM

Testing is really a good application tool.There are many  type of testing.that is manual testing,automation testing.In testing we have to also do verification testing and validations.

# Matei said on 18 August, 2011 01:57 PM

The forum is a brighter place tahkns to your posts. Thanks!

# Titia said on 19 August, 2011 01:35 PM

This site is like a classroom, execpt I don't hate it. lol

# Dsquared2 Jackets said on 22 August, 2011 11:12 AM

. Im truly delighted that I came across this when I did simply because I had been really starting to get weary with the whole writing scene. Youve changed my mind, man!

# drupal outsource said on 19 September, 2011 08:56 AM

I thought I would leave my first comment. I do not know what to say except that I have enjoyed reading. Nice blog. I will keep visiting.

# christmas greetings said on 04 October, 2011 12:33 AM

This is very informative and good post.

# office 2010 said on 24 October, 2011 10:56 PM

thanks for you post ```

# assignment writing said on 01 November, 2011 08:09 AM

Unlike other your piece of writing has a zeal that matters to your readers.it works according to the needs.

# Essay Writing UK said on 02 November, 2011 01:41 AM

Hello Sir good article i really love it i have reading this article is awesome so good work keep working.

# logo design contest said on 02 November, 2011 07:38 AM

I would appreciate you that you pick up an important topic to write a thoroughly informative post on.

# dissertation help uk said on 02 November, 2011 01:40 PM

I realized the hard work behind the creation of this blog so I appreciate the value of your work and request that you provide more than expected.

# essay writing help said on 03 November, 2011 05:29 AM

Thanks for this very useful info you have provided us. I will bookmark this for future reference and refer it to my friends. More power to your blog.

# OEM software online said on 06 November, 2011 09:36 PM

x2KB8e Internet is written with the capital letter in a sentence, by the way. And hundredths are written not with a point but with a comma. This is according to the standard. And actually everything is very good..!!

# joomla development said on 08 November, 2011 04:09 AM

I am really inspired together with your writing abilities as smartly as with the structure for your weblog.  Keep up the excellent quality writing, it's uncommon to see a nice blog like this one nowadays.

# Custom logo design said on 08 November, 2011 11:30 PM

I have no point to raise in against of what you have said.you possess lots of understanding on this subject.

# Essay Writing said on 12 November, 2011 12:30 AM

Great posting dear, really thanks. I’m now following your blog & I‘ll follow your all blogs for that kind of interesting blogs.

# Essay Writing said on 12 November, 2011 06:25 AM

Excellent post and wonderful blog, I really like this type of interesting articles keep it up.

# dissertation proposal writing service said on 21 November, 2011 11:06 AM

The subject in your blog is really interesting I was wondering how did you find this great idea to put in your article.

# Cheap Custom Essays said on 22 November, 2011 01:53 AM

I know most of this stuff but its nice to have it all laid out in one place for reference

# UK Essay Help said on 22 November, 2011 01:58 AM

At first I would congratulate you on writing such a brilliant piece of write-up. You have got some exceptional writing skills that have made your site worth reading.

# north face said on 28 November, 2011 02:59 AM

Your article is very attractive to me.

# essay writing help said on 28 November, 2011 05:39 AM

Good to see the facts and fictions which are awesome. The information you have shared is awesome and great to see.

# essay writing help said on 28 November, 2011 05:48 AM

This post gives the light in which we can observe the reality. This is very nice one and gives indepth information. Thanks for sharing this nice article..

# dissertation topics said on 28 November, 2011 09:04 AM

I am delighted that I came upon this blog, I could not discover any information on this topic prior to visiting your post. Thanks God I came across on this blog and found the relevant information.

# write my essay said on 29 November, 2011 12:12 AM

   The author has written an excellent article. You made your point and not much to discuss. It's like this universal truth that you can not argue with the truth is not universal, everything has its exception.

# cheap logo said on 09 December, 2011 12:28 AM

I really enjoyed reading this post, big fan. Keep up the good work and please tell me when can you publish more articles or where can I read more on the subject?

# write my research paper  said on 19 December, 2011 07:51 AM

I could tell how great you are in your field of interest. You could relate in each detail very well

# kumar verma said on 05 January, 2012 12:17 AM

I really liked your blog quite informative and interesting facts and figures you have discussed on your blog even the comments are very fruitful and helpful in enhancing the knowledge regarding the topic.

# Website Hosting Companies said on 17 January, 2012 08:36 AM

   I realized the hard work behind the creation of this blog so I appreciate the value of your work and request that you provide more than expected.

# Pizza Takeaway said on 17 January, 2012 02:09 PM

I will bookmark this for future reference and refer it to my friends. More power to your blog. you have provided us.

# baseballcap said on 18 January, 2012 03:11 AM

wherewithal such as the one you put here will be very positive for me! I'll post a link to this page on my blog.

# cheap mri said on 18 January, 2012 04:40 AM

.NET 4.0) to classes and methods and keep classes cohesive, loosely coupled, and with

# Buy cheap lcd monitors said on 18 January, 2012 06:50 AM

I think in the competition of Testability vs. Testing The winner of these is testability.

# best reseller hosting plans said on 18 January, 2012 07:31 AM

Off course, i am very glad to have your post here. Which is very informative and i want to say that its worth reading. I appreciate your effort..

# reusable bags said on 19 January, 2012 03:46 AM

code with plenty of SoC, dependency injection, low coupling, high class cohesion, and minimal responsibilities for classes.

Ultimately,design for testability means applying a software contract (code-con

# coachhampton said on 19 January, 2012 04:30 AM

The wallpaper is just what I like, thanks for sharing!!

# traduction said on 20 January, 2012 03:23 AM

and with dependencies clearly listed. Once classes are testable, unit-testing them is really a little detail.

# concrete walls said on 20 January, 2012 05:11 AM

code with plenty of SoC, dependency injection, low coupling, high class cohesion, and minimal responsibilities for classes.

# wheel stops said on 21 January, 2012 05:13 AM

with dependencies clearly listed. Once classes are testable, unit-testing them is really a little detail.

# hvac los angeles said on 22 January, 2012 03:17 AM

and with dependencies clearly listed. Once classes are testable, unit-testing them i

# ekg technician classes said on 23 January, 2012 03:35 AM

.NET 4.0) to classes and methods and keep classes cohesive, loosely coupled, and with

# ekg technician courses said on 24 January, 2012 03:36 AM

with dependencies clearly listed. Once classes are testable, unit-testing them is really a little detail.

# Wholesale Sportswear said on 25 January, 2012 04:08 PM

Well that's superb! The tests they carry out are not conclusive enough to say that the functionality is working as specified. In this week's article, Ipsita Chatterjee defines testability and looks at the benefits of incorporating it in the products. Also discussed are simple ways to monitor the incorporation of this non-functional requirement in the software development life cycle and a few industry myths about testability.

# los angeles criminal defense lawyer said on 25 January, 2012 11:54 PM

world had the word testability pronounced lately, but it never happened to me to attend a talk or something where I could hear it--maybe I just go to the wrong sessions and miss

# accountant los angeles said on 26 January, 2012 03:44 AM

and with dependencies clearly listed. Once classes are testable, unit-testing them

# Cheap Web Design said on 26 January, 2012 05:24 AM

In first place, testability is one of the required attributes of any software system according to the ISO standard for software architecture.

# Funeral Homes in Sydney said on 26 January, 2012 08:39 AM

I think of you I think of Abraham Lincoln's words, "And in the end it's not the years in your life that count. It's the life in your years." With this I will honor your life until the welcomed day I meet you again.

# Messenger Service Los Angeles said on 27 January, 2012 04:03 AM

.NET 4.0) to classes and methods and keep classes cohesive, loosely coupled, and with

# Register domain in india said on 27 January, 2012 04:32 AM

very useful site I am really thankfull to you for sharing informations.

# Messenger Service Los Angeles said on 27 January, 2012 06:06 AM

Once classes are testable, unit-testing them Messenger Service Los Angeles

# persian rugs said on 29 January, 2012 04:34 AM

NET 4.0) to classes and methods and keep classes cohesive, loosely coupled, and with

# ekg tech training said on 30 January, 2012 03:17 AM

with plenty of SoC, dependency injection, low coupling, high class cohesion, and minimal responsibilities for classes.

# best cats said on 31 January, 2012 02:35 AM

A broadly accepted definition for testability in the context of software architecture describes it as the ease of performing testing.

# Accidents Direct Accident Claims said on 31 January, 2012 03:15 AM

After read topic’s related post now I feel my research is almost completed.

# LEED Certification Consultants Dubai said on 01 February, 2012 03:21 AM

code with plenty of SoC, dependency injection, low coupling, high class cohesion, and m

# Music Tickets On Sale said on 02 February, 2012 03:46 AM

code with plenty of SoC, dependency injection, low coupling, high class cohesion, and mini

# Hosting Website said on 07 February, 2012 02:50 AM

I realized the hard work behind the creation of this blog so I appreciate the value of your work and request that you provide more than expected.

# CV Writing Services said on 07 February, 2012 04:05 AM

Thanks for this very useful info you have provided us.

# Lebanon Web Design said on 09 February, 2012 04:30 AM

code with plenty of SoC, dependency injection, low coupling, high class cohesion, and minimal responsibilities for classes.

# Debra said on 09 February, 2012 06:17 AM

I’m really enjoying the design and layout of your site. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a developer to create your theme?.<a href="http://www.blackanddeckerbatteries.com" target="_blank">versapak batteries</a>Superb work!

Leave a Comment

(required) 
(required) 
(optional)
(required)