Software testing: White-box testing