Recently I got question on myself about how I do balance between System level testing and component level testing.
First of all, I may need to notify that I’m QAing on heavily UI involved components which are working with many other components from other teams.
System level testing means that you are testing your product like customer at the top level and looking for the harmony with all different components. and component level testing(or Unit testing) means that as you are focusing on the functionality of the component without considering much on how it works with others.
Well, in my opinion, both side has their own importance. and it is not easy to say which one is better. but in practical way, System level testing is more important for most of S/W development cycle which doesn’t have enough resource to test component thoroughly, because we can ship something which is working in a good enough degree for general cases with some glitches in specific cases but if each component is working great alone but not working together, Well we did something wrong and we can’t ship the product.
However, I don’t think that this approach is always correct and proper. there are areas which we should take care of every detail at the component level first like airplane control software, Library codes, and etc. also even though I emphasized the system level testing, I think that certain degree(definitely enough amount; how much is enough is different question) of component level testing is necessary and should be done.
QA should find out balance about how to distribute the limited resource for each side in given situation. and it should be decided as early as possible at least in guide line level.