Có 3 phương pháp kiểm thử phần mềm: Kiểm thử hộp trắng (White box testing), kiểm thử hộp đen (Black box testing), kiểm thử hộp xám (Gray box testing)
1. Kiểm thử hộp trắng (White box testing)
1.1 Khái niệm
- Trong kiểm thử hộp trắng, cấu trúc mã hoặc thuật toán của chương trình được đưa vào xem xét. Các trường hợp kiểm thử được thiết kế dựa vào cấu trúc mã hoắc cách thức làm việc của chương trình.
- Người kiểm thử truy cập vào mã nguồn chương trình và có thể kiểm tra nó, lấy nó làm cơ sở để hỗ trợ việc kiểm thử.
- Kiểm thử hộp trắng bao gồm phân tích dòng dữ liệu, điều khiển dòng, dòng thông tin, mã thực hành, ngoại lệ và những lỗi trình bày trong hệ thống để kiểm tra những hành động của phần mềm không được định hướng trước.
1.2 Ưu điểm và nhược điểm
- Ưu điểm
- Test có thể bắt đầu ở giai đoạn sớm hơn, không cần phải chờ đợi cho GUI để có thể test
- Test kỹ càng hơn, có thể bao phủ hầu hết các đường dẫn
- Thích hợp trong việc tìm kiếm lỗi và các vấn đề trong mã lệnh
- Cho phép tìm kiếm các lỗi ẩn bên trong
- Các lập trình viên có thể tự kiểm tra
- Giúp tối ưu việc mã hoá
- Do yêu cầu kiến thức cấu trúc bên trong của phần mềm, nên việc kiểm soát lỗi tối đa nhất.
- Nhược điểm
- Vì các bài kiểm tra rất phức tạp, đòi hỏi phải có các nguồn lực có tay nghề cao, với kiến thức sâu rộng về lập trình và thực hiện.
- Maintenance test script có thể là một gánh nặng nếu thể hiện thay đổi quá thường xuyên.
- Vì phương pháp thử nghiệm này liên quan chặt chẽ với ứng dụng đang được test, nên các công cụ để phục vụ cho mọi loại triển khai / nền tảng có thể không sẵn có.
2. Kiểm thử hộp đen (Black box testing)
2.1 Khái niệm
- Trong khi đó kiểm thử hộp đen không yêu cầu kỹ sư kiểm thử cần phải có bất kỳ kiến thức về mã hoặc thuật toán của chương trình.
- Người kiểm tra các chức năng của hệ thống tức là những gì hệ thống được cho là cần phải làm dựa trên các đặc tả yêu cầu. Các trường hợp kiểm thử thường được xây dựng xung quanh đó.
- Là phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao.
2.2 Ưu điểm và nhược điểm
- Ưu điểm
- Các tester được thực hiện từ quan điểm của người dùng và sẽ giúp đỡ trong việc sáng tỏ sự chênh lệch về thông số kỹ thuật.
- Các tester theo phương pháp black box không có “mối ràng buộc” nào với code, và nhận thức của một tester rất đơn giản: một source code có nhiều lỗi. Sử dụng nguyên tắc, “Hỏi và bạn sẽ nhận” các tester black box tìm được nhiều bug ở nơi mà các DEV không tìm thấy.
- Tester có thể không phải IT chuyên nghiệp, không cần phải biết ngôn ngữ lập trình hoặc làm thế nào các phần mềm đã được thực hiện.
- Các tester có thể được thực hiện bởi một cơ quan độc lập từ các developer, cho phép một cái nhìn khách quan và tránh sự phát triển thiên vị.
- Hệ thống thật sự với toàn bộ yêu cầu của nó được kiểm thử chính xác.
- Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu cầu chức năng được xác định.
- Nhược điểm
- Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá lớn
- Nhiều dự án không có thông số rõ ràng thì việc thiết kế test case rất khó và do đó khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tố đầu vào, và thiếu cả thời gian cho việc tập hợp này.
- Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao.
- Chỉ có một số nhỏ các đầu vào có thể được kiểm tra và nhiều đường dẫn chương trình sẽ được để lại chưa được kiểm tra.
3. Kiểm thử hộp xám (Gray-box testing)
3.1 Khái niệm
- Kiểm thử hộp xám là 1 phương pháp kiểm thử phần mềm được kết hợp giữa phương pháp kiểm thử hộp đen và kiểm thử hộp xám
- Trong kiểm thử hộp xám, cấu trúc bên trong sản phần chỉ được biết một phần, tester có thể truy cập vào cấu trúc dữ liệu bên trong và thuật toán của chương trình với mục đích là để thiết kế test case, nhưng khi test thì test như là người dùng cuối hoặc là ở mức hộp đen
- Trong quá trình tiến hành kiểm thử hộp xám, người kiểm thử sẽ tạo input vào từ phía front-end, sau đó xác minh dữ liệu từ phía back-end.
3.2 Ưu điểm và nhược điểm
- Ưu điểm
- Quan điểm kiểm thử của kiểm thử hộp xám là từ quan điểm của người dùng.
- Cung cấp các lợi ích của cả thử nghiệm hộp đen và hộp trắng cùng nhau.
- Sẽ dựa trên các đặc tả chức năng, mô tả của người dùng và sơ đồ kiến trúc hệ thống, từ đó xác nhận các yêu cầu ngay từ ban đầu.
- Việc kiểm tra sẽ tường minh vì sẽ có nhiều sự quan tâm giữa người kiểm thử phần mềm và người thiết kế hoặc kỹ sư.
- Nhược điểm
- Kiểm tra hộp xám cũng có thể mất nhiều thời gian để kiểm tra từng đường dẫn và đôi khi điều này là không thực tế.
- Rất khó để liên kết lỗi khi thực hiện kiểm tra hộp xám cho một ứng dụng có hệ thống phân tán.
- Thông thường sẽ dẫn đến phạm vi kiểm tra thấp hơn so với thực hiện kiểm tra hộp trắng và đen riêng biệt.
- Có thể không phù hợp để thử nghiệm một số loại chức năng.