A Brief Overview of The Test Driven Development Methodology

feature-top

On the article chosen this week, the authors examined, the conclusion of several articles, in order to understand the effects of the test driven development (TDD) methodology, on internal and external software quality and productivity. Automated unit tests are incrementally written, in order to test functionalities, which would be used for the development of a software; this happens before the source code, is even developed in a TDD environment.  

Greater emphasis is put on variables used in research validation, such as the language used in development, the settings, the type of research method applied, and the profile of participants.

The authors compare TDD and test last development (TLD), in order to successfully understand the impacts of TDD in software development. As a fundamental part of eXtreme Programming (XP), TDD has gained popularity, due to its ability to help improve the code written and its ability to increase the quality and productivity of systems, which have been developed and implemented.

The researchers of the article chosen this week, found that more than 50% of the studies analyzed, had results which were validated through experiments. While validation was done through a case study, with more than 30% of the studies, analyzed by the authors. External software quality had a meaningful increase for 88% of the studies analyzed, and more than 70% of the studies analyzed, saw a significant increase in internal software quality. Lower productivity was indicated by 44% of the studies analyzed, when TDD was compared with TLD.

The researchers found that TDD was more beneficial than TLD, for internal and external software quality; however, developer productivity was lower when TDD, was used. TDD helped developers to ensure that each unit of a software that is being developed, is indeed working properly independently of the rest of the system. As a set of techniques, TDD facilitates the development of a test suit and simple projects.

TDD is a software development process, which relies on the repetition of very short development cycle. An initial failing automated test cast is written, which would define a desired improvement or new function. A minimum amount of code, that would pass the test, would then be written, then the code would be refactored, in order to bring up the code to standards. A test is added first, then all the tests are ran to see if there are new fails, then some code is written, then the test is ran again, the code is refactored and finally the whole process is repeated.

The programmer must always, write a failing unit test, before any new code is written; then the programmer can proceed to create enough code to satisfy the requirements of the test. The programmer may refactor their code, once the requirements of the test are satisfied, while making improvements to the application, without having to change the behavior of the code.

The TDD methodology is able to produce applications, which have high quality services, for their clients and stake holder. Developers and testers have to accurately anticipate, how the application and its features will be used in the real world, in order to properly implement the TDD methodology.

 

Article

Bissi, W., Serra Seca Neto, A. G., & Emer, M. P. (2016). The effects of test driven development on internal quality, external quality and productivity: A systematic review. Information And Software Technology, 7445-54. doi:10.1016/j.infsof.2016.02.004

 

Thank you for reading this article!!!

feature-top
feature-top

Add a Comment

Hernando Cadet

Hi every one, I obtained a bachelor's degree in Bioinformatics back in 2006, from Claflin University, after I received my bachelor's degree, I gained full time employment as a software engineer at a Video Relay Service company, maintaining databases and developing software for a new developed device called the VPAD.

I worked at that company for two years, then I became a web developer, and worked for a magazine for three years. After that job, I worked as a Drupal web developer, as a subcontractor for the NIH, for a year and then left the job to go back to school.

Hernando Cadet

Collaboratively administrate empowered markets via plug-and-play networks. Dynamically procrastinate B2C users after installed base benefits. Dramatically visualize customer directed convergence without

Collaboratively administrate empowered markets via plug-and-play networks. Dynamically procrastinate B2C users after installed base benefits. Dramatically visualize customer directed convergence without revolutionary ROI.