12/15/2023 0 Comments Entropy unitThe disorganization increases and it becomes more and more difficult to understand how everything fits together. But as the project evolves, more features are added, and the code becomes more and more complex and difficult to maintain. When a software project is started, everything is organized and planned carefully. It is now clearer to understand in the context of software what entropy can cause. To make matters worse, customers start to see the backlog and give up buying books. Reorganizing the books becomes an extremely complex and time-consuming task, and there is always the risk that books will get lost or misplaced. The employees are forced to spend a lot of time looking for specific books and sometimes even asking the customers for help. Consequently, the environment became cluttered, making it difficult to find the books that customers wanted. In this bookstore, there was no separation of books by category. The addition of new books did not follow clear criteria, some shelves became overcrowded while others remained almost empty. Imagine a bookstore that over time grew fast. We can use a simple analogy to better visualize entropy in a system: In essence, the more a software system changes, the greater its disorganization becomes, that is, the entropy always increases. The notion of software entropy, which was first presented in the book Object-Oriented Software Engineering, was influenced by the scientific definition. In physics, entropy is associated with the second law of thermodynamics, which states that in a closed and isolated system, disorganization cannot decrease, but can remain constant or increase. In the book Unit Testing Principles, Practices, and Patterns, the author comments on exactly this subject, and we will understand more in the next topic. Unit tests allow us to detect errors as early as possible in the development process, which makes it easier and cheaper to fix them.īut how can automated testing help us control and fight against increasing clutter within the software? First, we need to understand what this entropy means. But this is not the case with automated tests, especially since their execution time is expected to be very fast. You may be wondering, can't we do manual testing? Manual testing, as the complexity of the software grows, is inefficient and prevents the agile release of new functionality to users or customers. The unit tests allow you to detect these errors early and fix them effectively, thus ensuring the long-term quality and stability of the project. In other words, the more code you write, the greater the chance of introducing a bug. As the project grows, the number of codes increases, thus increasing the surface of possible errors in the code. The main purpose of unit testing is to ensure the healthy growth of your software project. So let's start by better understanding the purpose of unit testing. What I will try to show in this post is how testing can prevent entropy in software. Often, the focus is directed to other areas, such as user interface design or speed of delivery, which can end up creating a corporate culture that doesn't recognize the importance of unit testing. Unit testing does not always receive adequate appreciation in the software development process. Perhaps this resistance even comes from the company's board of directors. Is this less recurrent? I believe not, especially in smaller companies. I remember two years ago I heard from a software project manager his opinion against testing he didn't understand why testing took so long, and that it was a delay in final deliveries. After all, we all know that unit tests are essential, right? Apparently not.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |