Unit Testing is absolutely something new to me; I have never done before. But it has such a great power that I keep wondering how come I never used it before. It's true that I'm still relatively new to the software industry so I have my excuse. Honestly, I heard about it before several times, but I never cared to explore more about it since Testing is usually something regarded as something boring and unattractive.
Now that I had to try it for myself, I really realize its power now. I keep imagining myself writing some pieces of code and then writing their unit tests routines and make sure they all pass for all possible combinations of input and output. And then a while later, coming back to that same code to refactor it and probably add new features or implementing a new algorithm and so on. After I'm done, all I have to do is just run those tests that I already wrote long time ago, and make sure they still pass, if not, then I must have introduced some bugs or broke the code some how. This is really great to validate that new features doesn't introduce new bugs with them. Of course, some tests might need to be modified to accommodate some changes in the code. But generally, this is a great way to guarantee correctness of work.
There's this whole other idea of Test Driven Development (TDD), which I believe, well, is good, but it seems that it has the potential to waste time. I'm not sure of that though, since I've never had experience with it. But it's certainly a good way of validating code while being on the process of writing it.
With project 1 almost completed, I have to say it went smoothly without any problem. Everyone committed to the deadline they chose for themselves, although one team member had lagged behind a bit, but the good thing is, he confirmed that he's working on his tests, and is willing to finish them tonight.
What concerns me is that our team members are mostly busy, we don't get to stay in touch a lot. We didn't have to for this project because apparently it was mostly easy for everyone, but how is it going to be in a bigger project. I tend to think that we should take advantage of this opportunity to simulate as much as possible the real thing .. a distributed development environment. Yet again, everyone has different priorities, including me. I just want to be ready for the real thing after graduation. There's room to make mistakes now, but there won't be later. That's the opportunity I want to take.
No comments:
Post a Comment