Many cases, QAs are working based on test plan which is generated based on

- Spec of feature

- User scenarios

- Feedback from Dev/PM

- Previous experiences

- Etc...

However we oftenly miss the apect of understanding the feature at the code level. well some people may not agree with me and say that it is not necessary to do white box testing all the time and we'd better be at the user level perspective because we have too complex system and don't have enough time to understand whole detail.

Yes, I agree that it is not easy to spare resource to understand whole detail with limited resource. and Yes, it is important to see the product in customer's perspective which is not based on how the code is implemented at code level.

But, in many cases, if we as QA engineer don't understand the internal structure and data flow with a certain degree of understanding code, we may be ended up with missing test coverage here and there. and the overall quality of product will be just mediocre.

Understanding product at code level will give us benefits like

- better test case generation

- efficient approach in test to the feature

- Can make faster and accurate decision on the impact and scope of changes

- Prove self-esteem and confidence

 

Well, However we need to have balance to be realistic. we only have limited resource(time and men). so it may not be necessary to understand every single line. drawing the line appropriately will be key to success....