Skip to content

Testability as the design metric

March 26, 2006 by Artem

I don't care how good you think your design is. If I can't walk in and write a test for an arbitrary method of yours in five minutes its not as good as you think it is, and whether you know it or not, you're paying a price for it. (Michael Feathers)

If you practice a lot of unit testing, test-driven-development of whatever method that includes a lot of testing, you have to spend a lot of time on it. And most of time you have to do the testing-related work before the problem happens and before anyone is affected. Certainly it is good to capture the bug early, before it hurts anybody, but the need to do the "extra" work in advice introduces the temptation to "just tweak this small feature and test it if the problem arises later".

One of the usual consequences of this kind of approach is a set of hardly testable classes. Just because they use a lot of direct dependencies, instantiate concrete classes instead of using generic interfaces, etc. Programmers can use the best patterns available, document the implementation very well and still the heavily dependent code would be difficult to maintain and update. One of the reasons is that unless the class is separable (to be put into the test-tube), it is complex to examine what exactly consequence the new changes have. Another reason is that since the Stone Age people learn best from the examples. It is much easier to understand the class logics if you can scrutinize it alone, without having to instantiate the rest of the system and put the test data into the DB.

What is your experience? Did you have situations, when well-designed and well-documented code is difficult to maintain, because it is not modular enough?

Comments

Remember Fowler's definition of "detestable" ;)

March 27, 2006 by thrantal, 9 years 18 weeks ago
Comment id: 1

I find your idea of "well-designed... code... [which] is not modular enough" self-contradictory :)

Seriously though, I have gone as far as saying that testability and good design would be synonymous. This is obviously inaccurate in a provocative way.

Nevertheless orthogonality and loose coupling as some characteristics of good code go well further back than the recent programmer testing hype. And tight coupling I have experienced as the prime obstacle of programmer testing.

The lack of source code comments, for example, is not so grave. If it is easy to get a particular functionality running in fast programmer tests, you can use this to get empirical data of what the code does. This sometimes gets your understanding closer to the reality than documentation can, especially copy-pasted documentation ;)

Timo, I agree with you.

March 27, 2006 by Artem, 9 years 18 weeks ago
Comment id: 2

Timo, I agree with you. However, I believe, that the "lack of testability" is not that visible metric and therefore not that obvious. The same way as a house might look perfectly until you discover that sewer system is missing.

Unfortunately, testability as well as all the other design nuts'n'bolts does not have the concrete visible link to the balance line. Rather often one has to do the research to prove [to his boss] that the testable design is profitable.

Merry Christmas 2014 Whatsapp SMS

December 19, 2014 by Christmas 2014 Whatsapp SMS (not verified), 32 weeks 2 days ago
Comment id: 38511

yeah , i think

January 18, 2015 by Anonymous (not verified), 28 weeks 20 hours ago
Comment id: 40641

Kami toko onlien menjual

January 18, 2015 by Mebel Jati (not verified), 28 weeks 19 hours ago
Comment id: 40658

Kami toko onlien menjual produk Toko Mebel Online Jepara yang menawarkan produk produk mebel asli jepara memang sudah dikenal hingga mancanegara, jepara selalu menjaga kualitas produk furniture dengan sangat teliti Mebel Jepara Mulai dengan produk produk minimalis yang sqangat elegant hingga produk klasik modern yang sekarang sedang trend di beberapa tahun terakhir, produk klasik modern kami meliputi Kursi Tamu Jati dengan model klasik modern juga tersedia mebel minimalis khas mebel jepara yang di buat dengan menggunakan material kayu perhutani pilihan, kayu perhutani dipilih karena memang kualitasnya yang jauh dari kayu kebun, produk Mebel Jepara Murah dengan model simple elagant kami tawarkan dengan harga yang cukup kompetitif, semuanya tergantung akan banyaknya bahan yang digunakan juga tingkat kerumitan produk dengan Mebel Jati Jepara yang tentunya tidak mengurangi kualitas dari produk Mebel Jepara yang kami tawarkan. Kami selalu berupaya dengan menawarkan produk produk Mebel Jepara dengan desain terbaru, dikarenakan setiap produk kami mempunyai keistimewaan tersendiri yang berbeda dengan produk mebel lainnya, yaitu tingkat kualitas kehalusan finishing juga kuaslitas ukiran yang khas Mebel Jati Jepara kami selalu terjaga kualitas dan pamornya. Kami juga mempunyai banyak produk galleri yang dapat anda jadikan patokan untuk anda tempatkan di ruang tamu rumah anda, produk produk tersebuat dapat anda lihat disini Kursi Tamu asli produk Cv. Karya Priboemi Jepara yang dapat anda pesan secara custom atau biasa disebut pesanan sesuai keinginan anda, itu semua kami produksi menggunakan material kayu mahoni perhutani dan kayu Furniture Jepara dengan label Cv. Karya Priboemi Jepara yang sudah dikenal baik dalam maupun luar negri, anda tidak perlu khawatir akan kualitas dari setiap produk kami, beragam model Kursi Tamu kami sudah mulai membuka pemesanan dengan anda cukup dengan santai diruamh, anda tinggal menyodorkan bagaimana produk mebel yang anda inginkan, anda dp maka kami akan kerjakan, untuk lama proses tergantung tingkat kerumitan produk pesanan, itu smua bisasa kami tawarkan secara Mebel Jepara Online dengan kekuatan kontruksi pengrajin mebel jepara asli, yang memang sudah profesional dalam proses pembuatan kontruksi, pengrajin profesional iru semua ada di perusahaan kami Cv. Karya Priboemi Jepara, kontruksi tersebuat bisa anda pakai hingga puluhan tahun, karena kualitas kami di atas produk produk lain, yang banyak di jual di pasaran Mebel Jepara tentunya sangat kokoh. Kami juga mempunyai banyak katalog produk meja muali dari meja makan ukiran jepara, meja makan klasik modern elegant yang tentunya sangat mewah untuk anda tempatkan di ruang makan rumah mewah anda, juga tak ketinggalan, kami juga menawarkan produk mebel Meja Makan Jati asli desain Cv. Karya Priboemi Jepara, yang tentunya mempunyai kualitas diatas rata rata standart export, pamor produk mebel dari jepara memang masih banyak dikagumi oleh masyarakat luas, dikarenakan tenaga tenaga mebel jepara mempunyai pengalaman yang lebih baik ketimbang tenaga mebel di luar sana, bahkan produk Mebel Jepara dsekarang sudah banyak di copy, salah satunya negri china, malaysia yang merekrut tenaga di jepara untuk mengajarkan kepada warganya di sana. dan anda juga dapat memilih warna di menu dan tak ketinggalan kami juga menawarnak produk Kamar Set Minimalis Modern menjadi brand ambrossador di beberapa tahun terakhgir, maraknya rumah berdesain minimalis modern membuat produk ini sangat laku di pasaran, untuk katalognya anda dapat  melihat katalog produknya disini Kamar Set Jati juga bisa disini untuk katalog produk ruang tamu dengan desain minimalis, anda bisa mengirimkan gambar desain yang anda inginkan, atau anda juga bisa lihat katalog kami disini Kursi Tamu Klasik Mewah kota kami sangat terkenal dengan produk produk etnik khas dari jawa yang terbuat dengan menggunakan material kayu jati yang di ukir dengan ukiran khas mebel jepara yang membuatnya begitu mendunia hingga sekarang, anda pasti akan tercengan jika sudah melihat produk yang satu ini Gebyok Jepara meja makan dengan desain klasik minimalis semuanya ada di jepara, kami selaku salah satu perusahaan Mebel Jati Jepara di jepara selalu berupaya membuat desain baru agar bisa tetap bersaing, salah satu produk hasil desain kami adalah sebagai berikut Meja Makan Minimalis kota jepara juga terkenal dengan produsen tempat tidur yang cantik elok dan elegant yang tentunya produk itu sendiri diproses dengan sangat terkontrol, untuk katalog produknya anda bisa langsung tengok disini Tempat Tidur Jati untuk katalog produk dengan desain klasik ataupun minimalis seperti meja makan ataupun yang lainnya anda juga bisa memilihnya di kolom produk dengan menu kategory Meja Makan produk produk kami tentunya mempunyai nilai tersendiri yang tentunya berkualitas tinggi, karena kami proses dengan melalui kontol yang sangat teliti. Seperti produk produk kursi tamu misalnya, untuk membuat Kursi Tamu Jati kami memakai bahan dengan kualitas grade A jadi anda tidak perlu ragu lagi akan kualitas dari produk produk mebel yang kami tawarkan kepada anda. Ada lagi produk yang tak kalah larisnya yang ada di jepara yaitu Tempat Tidur Jati , produk ini merupakan produk paling penting yang harus ada dalam suatu hunian rumah. Apapun bentuk / model dari tempat tidur tersebut, yang terpenting adalah kita nyaman saat beristirahat tentunya. Selain menjual tempat tidur dalam satuan, kami juga menerima pemesanan produk untuk ruang kamar berupa set kamar tidur. Kamar Set Jati itu sendiri nantinya akan terdiri dari tempat tidur lemari pakaian dua nakas dan meja rias, anda juga bisa memesannya terpisah. Mebel Jepara selalu menjadi daya tarik tersendiri untuk turis asing yang ingin membuat usaha furniture, banyak sekali turis asling berbondong bondong ke jepara untuk memulai bisnisnya, tidak hanya itu banyak juga turis asing yang ingin mengisi rumahnya dengan membeli produk produk seperti tempat tidur kursi tamu meja makan yang asli dan khas Mebel Jepara kami juga menyediakan produk lain yang tak kalah pamornya di beberapa tahun terakhir, produk ini tentunya memiliki ciri khas tersendiri. Pada produk ini kayu jati kami olah sedemikian hingga menjadi produk Meja Makan Jati Minimalis yang mewah dengan keaslian aksen ukiran khas mebel jepara jual mebel jati harga murah asli mebel jepara, kami menawarkan harga standart furniture jepara dengan kualitas yang tentunya terbaik Penerapan ruang yang akan anda isi mebel harus anda perhatikan terlebih dahulu sebelum membelinya, dalam hal ini saya ada rekomendasi untuk anda untuk berkonsultasi terlebih dahulu dengan pakarnya, anda bisa langsung menuju untuk saat ini mebel jepara memang sudah sangat berkembang, jepara terkenal hingga ke mancanegara sebagai pusat industri mebel terbesar di dunia, produk produknya sudah banyak yang di export ke mancanegara, salah satunya italy Mebel Jepara Minimalis Kami menyediakan layanan online untuk pemesanan Mebel Jepara Murah dengan sistem online. Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya.
Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Mebel Jati
Toko Mebel Mebel Jepara jual mebel jati harga murah asli mebel jepara, kami menawarkan harga standart furniture jepara dengan kualitas yang tentunya terbaik Mebel Jati Jepara berkualitas asli produk mebel jepara yang dibuat oleh tangan tangan ahli pengrajin mebel jepara yang ada di perusahaan kami Furniture Jati mulai dari meja makan jati, tempat tidur minimalis, meja makan jati, kursi tamu murah, kamar set minimalis semuanya tersedia termasuk gapura pintu gebyok jati, juga Kursi Tamu Jati banyak sekali kami menawarkan produk mebel jati yang kami gunakan sebagai bahan baku, juga tersedia bahan kayu mahoni untuk mebel dengan pewarnaan cat duco Meja Makan Jati hasil karya Cv. Karya Priboemi Jepara yang sudah dikenal hingga mancanegara salah satunya adalah pintu gebyok. produk ini sangat tenar dan etnik jawanya masih melekat pada produk Mebel Minimalis Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya.
Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Mebel Minimalis Murah yang sangat cantik dengan keaslian ukiran khas mebel jepara yang terukir rapih dan halus di setip sudutnya. Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya.
Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Mebel Jati Jepara

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.

Best of AgileSoftwareDevelopment.com