Với sự phát triển như vũ bão của Công nghệ thông tin (CNTT) nói chung và Công nghệ phần mềm nói riêng, việc phát triển phần mềm ngày càng được hỗ trợ bởi nhiều công cụ phát triển tiên tiến, làm cho việc xây dựng phần mềm đỡ mệt nhọc, nhanh hơn và hiệu quả hơn. Tuy nhiên, vì độ phức tạp của phần mềm và những giới hạn về thời gian, các nguồn lực, nên các hoạt động đảm bảo chất lượng phần mềm và kiểm thử phần mềm ngày càng chặt chẽ, song vẫn không đảm bảo.