Bối cảnh và vấn đề nghiên cứu

Sự phát triển của khoa học kỹ thuật và ngành công nghệ thông tin đã kéo theo sự gia tăng nhanh chóng về số lượng và quy mô của các doanh nghiệp hoạt động trong lĩnh vực lập trình, thiết kế website và triển khai ứng dụng phần mềm. Trong môi trường cạnh tranh, bên cạnh yêu cầu đáp ứng kịp thời các tính năng mới, yếu tố chất lượng sản phẩm—đảm bảo hệ thống vận hành ổn định, không phát sinh lỗi, thân thiện với người dùng và tương thích tốt—trở thành điều kiện tiên quyết đối với sự phát triển của doanh nghiệp phần mềm. Do lập trình viên khó có thể đảm bảo sản phẩm tạo ra hoàn toàn không có lỗi, hoạt động kiểm thử đóng vai trò kiểm soát chất lượng độc lập, khách quan nhằm phát hiện sai sót và ngăn chặn các rủi ro tiềm ẩn trước khi bàn giao tới khách hàng.

Khóa luận được thực hiện tại Công ty Trách nhiệm hữu hạn (TNHH) Giải pháp phần mềm Gia Linh (thành lập từ năm 2011). Mặc dù đã mở rộng sang mảng phát triển các website thương mại điện tử, công tác kiểm thử tại đơn vị trong giai đoạn trước năm 2016 chủ yếu do chính các lập trình viên kiêm nhiệm, dẫn đến đánh giá mang tính chủ quan và tỷ lệ lỗi giao diện, lỗi chức năng tồn đọng cao. Từ năm 2016, công ty đã thành lập bộ phận kiểm thử độc lập và tăng cường tiếp nhận thực tập sinh, tuy nhiên hoạt động kiểm thử vẫn phụ thuộc nhiều vào kinh nghiệm cá nhân, thiếu hệ thống phương pháp và tài liệu quy trình chuẩn hóa.

Mục tiêu nghiên cứu:

  1. Nghiên cứu tổng quan hệ thống các kỹ thuật kiểm thử phần mềm hiện nay.
  2. Vận dụng các kỹ thuật kiểm thử đã nghiên cứu vào việc thiết kế và thực thi kiểm thử cho sản phẩm website thương mại điện tử http://hoctestertop.com/ do Công ty TNHH Giải pháp phần mềm Gia Linh phát triển.

Nhiệm vụ nghiên cứu:

  1. Tổng kết hệ thống cơ sở lý thuyết và các khái niệm liên quan đến phần mềm và kiểm thử phần mềm.
  2. Phân tích các kỹ thuật kiểm thử phần mềm hiện đại, đánh giá ưu điểm và nhược điểm của từng kỹ thuật.
  3. Đánh giá thực trạng hoạt động kiểm thử phần mềm tại Công ty TNHH Giải pháp phần mềm Gia Linh.
  4. Xây dựng bộ ca kiểm thử (testcase) cho sản phẩm website thương mại điện tử của công ty, từ đó đánh giá tính ứng dụng và hiệu quả thực tế của các kỹ thuật được lựa chọn.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các vấn đề lý luận về kiểm thử phần mềm và các kỹ thuật kiểm thử phần mềm phổ biến.
  • Phạm vi không gian: Hoạt động kiểm thử phần mềm tại Công ty TNHH Giải pháp phần mềm Gia Linh và sản phẩm website http://hoctestertop.com/.
  • Phạm vi thời gian: Số liệu hoạt động kinh doanh giai đoạn 2015–2017; số liệu cơ cấu tổ chức, nhân sự và cơ sở hạ tầng công nghệ thông tin tính đến cuối năm 2017.
  • Giới hạn nghiên cứu: Vận dụng kỹ thuật kiểm thử hộp đen để xây dựng bộ testcase cho website thương mại điện tử http://hoctestertop.com/ (GREEN CONSTRUCTION - chuyên cung cấp dịch vụ và thiết bị, nội thất văn phòng).

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng nền tảng lý luận dựa trên các tiêu chuẩn quốc tế và các tài liệu chuyên ngành về công nghệ phần mềm:

  • Khái niệm và định nghĩa: Sử dụng định nghĩa phần mềm theo chuẩn IEEE; định nghĩa kiểm thử phần mềm theo Myers (1979) và chuẩn IEEE (1990); định nghĩa chất lượng phần mềm theo IEEE (1991) và bảo đảm chất lượng phần mềm (SQA) theo Daniel Galin.
  • Nguyên tắc và quy trình: Khảo cứu 7 nguyên tắc cơ bản của kiểm thử phần mềm (Kiểm thử chứng minh sự có mặt của lỗi, Không thể kiểm thử vét cạn, Kiểm thử sớm, Phân cụm lỗi, Kiểm thử ngược, Kiểm thử phụ thuộc vào ngữ cảnh, Sai lầm về việc không có lỗi). Mô hình quy trình kiểm thử chuẩn gồm 4 bước: (1) Lập kế hoạch kiểm thử, (2) Chuẩn bị kiểm thử, (3) Thực thi kiểm thử, (4) Báo cáo và phân tích dữ liệu kiểm thử.
  • Kỹ thuật và cấp độ kiểm thử: Hệ thống hóa 3 kỹ thuật kiểm thử chính: Kiểm thử hộp đen (sử dụng các phương pháp: Phân vùng tương đương, Phân tích giá trị biên, Bảng quyết định, Đoán lỗi), Kiểm thử hộp trắng (kiểm thử cấu trúc câu lệnh, nhánh, đường dẫn) và Kiểm thử hộp xám. Khảo cứu 4 cấp độ kiểm thử chính: Kiểm thử đơn vị (Unit testing), Kiểm thử tích hợp (Integration testing), Kiểm thử hệ thống (System testing - kiểm thử chức năng gồm giao diện và luồng nghiệp vụ, kiểm thử hiệu năng), Kiểm thử chấp nhận (Alpha testing, Beta testing) cùng kỹ thuật Kiểm thử hồi quy (Regression testing).
  • Tình hình nghiên cứu liên quan: Tác giả tổng hợp các công trình trong nước (Lê Văn Duy và Vũ Trọng Quý - 2011; Nguyễn Thanh Bình - 2011; Phạm Quang Hiển và Trần Tường Thụy - 2013; Trịnh Thị Vân Anh - 2016) và quốc tế (Boris Beizer - 2003; Erik Van Veenendaal, Dorothy Graham, Rex Black - 2007; Abu Sayed Mahfuz - 2016; Paul Felten - 2017).

Phương pháp thu thập dữ liệu:

  • Dữ liệu thứ cấp: Báo cáo kết quả hoạt động kinh doanh giai đoạn 2015–2017, tài liệu thống kê nhân sự, hồ sơ hạ tầng trang thiết bị và tài liệu đặc tả yêu cầu của công ty.
  • Dữ liệu sơ cấp:
    • Phỏng vấn trực tiếp: Trao đổi với nhân viên kỹ thuật về quy trình lập trình, công cụ sử dụng, các dạng lỗi thường gặp và mức độ đáp ứng của trang thiết bị.
    • Quan sát thực tế: Khảo sát môi trường làm việc, văn hóa doanh nghiệp và cơ sở vật chất kỹ thuật.
    • Điều tra bảng hỏi: Phát phiếu điều tra đến nhân sự công ty (5/7 nhân viên kiểm thử chính thức và 15/20 thực tập sinh) nhằm thống kê số lượng thiết bị, hệ điều hành, phần mềm ứng dụng, chính sách an toàn bảo mật, phân loại lỗi và nhu cầu xây dựng quy trình kiểm thử.

Phương pháp xử lý dữ liệu:

  • Ứng dụng Microsoft Excel để thống kê, phân loại và trực quan hóa số liệu khảo sát qua biểu đồ.
  • Kết hợp phương pháp so sánh - đối chiếu và phân tích - tổng hợp để đánh giá thực trạng hoạt động kiểm thử tại doanh nghiệp.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý luận của vấn đề nghiên cứu

Chương 1 hệ thống hóa toàn diện các khái niệm cơ bản về phần mềm, cấu trúc dữ liệu, tài liệu phát triển và các pha trong vòng đời phần mềm (xác định yêu cầu, triển khai, kiểm thử, vận hành và bảo trì). Tác giả phân tích mục tiêu trực tiếp và gián tiếp của kiểm thử phần mềm, đồng thời làm rõ nội dung của 7 nguyên tắc kiểm thử cốt lõi.

Về quy trình, tác giả phân định chi tiết các hoạt động trong từng giai đoạn từ lập kế hoạch, chuẩn bị kịch bản/dữ liệu kiểm thử, thực thi ghi nhận lỗi đến báo cáo và phân tích nguyên nhân. Chương này phân tích chi tiết ưu điểm, nhược điểm và phạm vi ứng dụng của 3 kỹ thuật kiểm thử (Hộp đen, Hộp trắng, Hộp xám), đồng thời mô tả cấu trúc 4 cấp độ kiểm thử (Đơn vị, Tích hợp, Hệ thống, Chấp nhận) và Kiểm thử hồi quy. Phần tổng quan tình hình nghiên cứu chỉ ra rằng các tài liệu hiện hành chủ yếu tập trung vào lý thuyết hàn lâm hoặc công cụ chuyên sâu, thiếu tính ứng dụng cụ thể vào quy trình kiểm thử website thương mại điện tử tại các doanh nghiệp quy mô vừa và nhỏ.

Chương 2: Tình hình thực tiễn hoạt động kiểm thử phần mềm tại Công ty TNHH Giải pháp phần mềm Gia Linh

Chương 2 giới thiệu tổng quan về Công ty TNHH Giải pháp phần mềm Gia Linh (thành lập ngày 22/02/2011, Giám đốc: Tống Văn Lĩnh, trụ sở tại Khu đô thị Dịch Vọng, Cầu Giấy, Hà Nội; ngành nghề chính: lập trình máy vi tính, gia công phần mềm, thiết kế website và cung cấp giải pháp CNTT). Tác giả phân tích cơ cấu tổ chức, kết quả kinh doanh 2015–2017 và hiện trạng hạ tầng CNTT (1 máy chủ Windows, 10–12 máy trạm/phòng chạy Windows 7/8/10; các phần mềm chuyên ngành gồm NetBeans 8.2, React Native, Adobe CS6, Amazon EC2, KPIBSC, MISA cùng hệ thống an ninh FireWall, BKAV Pro, AVG, Symantec).

Chỉ tiêu tài chính (VNĐ) Năm 2015 Năm 2016 Năm 2017
Tổng tài sản 43.286 68.452 95.120
Tổng nợ phải trả 11.284 18.350 24.600
Lợi nhuận trước thuế 2.689 5.412 8.950
Lợi nhuận sau thuế 1.250 3.120 5.860

(Nguồn số liệu: Báo cáo kết quả kinh doanh công ty giai đoạn 2015–2017 trích trong khóa luận)

Phân tích thực trạng kiểm thử tại công ty cho thấy sự phân chia rõ rệt qua hai giai đoạn:

  • Giai đoạn trước năm 2016: Công ty chưa có kiểm thử viên độc lập, lập trình viên tự kiểm thử bằng phương pháp hộp trắng. Cơ cấu lỗi phát sinh thời kỳ này gồm: 65% lỗi giao diện, 25% lỗi chức năng và 10% lỗi do người dùng chưa hiểu cách vận hành.
  • Giai đoạn từ năm 2016 đến nay: Đã hình thành bộ phận kiểm thử độc lập. Cơ cấu nhân sự kỹ thuật gồm: 19 lập trình viên, 7 kiểm thử viên (trong đó 25% kiêm nhiệm phân tích nghiệp vụ - BA), 3 nhân viên phân tích nghiệp vụ và 2 quản lý dự án.

Khảo sát nguyên nhân làm chậm tiến độ dự án chỉ ra: lỗi từ khâu lập trình chiếm 43%, hạn chế từ hoạt động kiểm thử (chưa có quy trình bài bản) chiếm 37%, và nguyên nhân khác chiếm 20%. Kết quả điều tra ý kiến ghi nhận 74,1% nhân sự kỹ thuật nhận định việc xây dựng hệ thống kỹ thuật kiểm thử chuẩn hóa là thực sự cần thiết nhằm nâng cao chất lượng dự án và rút ngắn thời gian đào tạo nhân sự mới.

Chương 3: Định hướng phát triển và ứng dụng một số kỹ thuật kiểm thử phần mềm cho website http://hoctestertop.com/ của Công ty TNHH Giải pháp phần mềm Gia Linh

Chương 3 trình bày xu hướng ứng dụng kiểm thử tự động (khảo cứu các công cụ: QuickTest Professional/QTP, LoadRunner, Apache JMeter, Selenium) và đề xuất định hướng phát triển hạ tầng, trang bị thiết bị di động phục vụ kiểm thử responsive và chính sách đào tạo nhân lực tại Gia Linh.

Phần thực nghiệm tiến hành áp dụng kỹ thuật kiểm thử hộp đen trên website http://hoctestertop.com/ (GREEN CONSTRUCTION), bao gồm phân hệ giao diện người dùng (Front end) và phân hệ quản trị (Back end tại đường dẫn /admincp/). Căn cứ trên tài liệu đặc tả yêu cầu, tác giả thiết kế và thực thi 2 bộ testcase chức năng:

  • Chức năng Tìm kiếm (Front end): Xây dựng 12 trường hợp kiểm thử (kiểm tra hiển thị, bố cục, font chữ, tự động gợi ý auto-suggestion, phím Enter, tìm kiếm không thành công, tìm kiếm thành công theo mã/tên, ký tự đặc biệt, khoảng trắng đầu/cuối, không phân biệt hoa/thường, tìm kiếm chuỗi rỗng). Kết quả: 12 ca Pass (100%), 0 ca Fail.
  • Chức năng Mua sắm - Giỏ hàng (Shopping cart) và Đặt mua / Mua nhanh: Xây dựng 38 trường hợp kiểm thử (kiểm tra hiệu ứng hoover, popup đặt mua, nhập số lượng dạng số/chữ/ký tự đặc biệt/để trống, kiểm tra giá trị biên với 99, 100 và 101 sản phẩm, tính toán thành tiền, hủy đơn hàng, thêm/xóa giỏ hàng, giỏ hàng rỗng, trạng thái còn/hết hàng). Kết quả: 31 ca Pass, 7 ca Fail.

Các lỗi (Fail) được ghi nhận cụ thể qua kiểm thử thực tế gồm:

  1. Nhập ký tự đặc biệt tại trường Số lượng ở popup Đặt mua: Hệ thống chưa highlight màu đỏ và chưa hiển thị thông báo lỗi yêu cầu nhập số.
  2. Để trống trường Số lượng tại popup Đặt mua: Hệ thống chưa highlight và chưa đưa ra thông báo bắt buộc hoặc tự gán giá trị mặc định là 1.
  3. Nhập số lượng vượt giới hạn (101 sản phẩm) tại popup Đặt mua: Hệ thống chưa cảnh báo giới hạn tối đa 100 sản phẩm/mặt hàng.
  4. Chức năng hủy tại popup Đặt mua: Thiếu popup xác nhận xóa và không tự động đóng popup khi xóa đến sản phẩm cuối cùng.
  5. Nhập số lượng vượt giới hạn (101 sản phẩm) tại chức năng Mua nhanh: Chưa hiển thị cảnh báo giới hạn 100 sản phẩm.
  6. Truy cập giỏ hàng khi chưa có sản phẩm: Chưa hiển thị giao diện thông báo giỏ hàng rỗng theo đúng đặc tả.
  7. Nhập số lượng vượt giới hạn (101 sản phẩm) tại trang Giỏ hàng chi tiết: Chưa chặn và chưa đưa ra thông báo lỗi phù hợp.

Kết quả và đóng góp

Khóa luận đạt được các kết quả nghiên cứu và thực nghiệm cụ thể sau:

Hạng mục kiểm thử thực nghiệm Tổng số ca kiểm thử (Testcase) Số ca đạt (Pass) Số ca không đạt (Fail) Tỷ lệ đạt (%)
Chức năng Tìm kiếm 12 12 0 100,0%
Chức năng Mua sắm - Giỏ hàng 38 31 7 81,6%
Tổng cộng 50 43 7 86,0%

(Nguồn số liệu: Bảng tổng hợp kết quả kiểm thử trích từ Chương 3 của khóa luận)

Các đóng góp chính do tác giả nêu rõ:

  • Về mặt lý luận: Khóa luận hệ thống hóa các khái niệm, quy trình và kỹ thuật kiểm thử phần mềm theo chuẩn mực chung, làm tài liệu tham khảo có cấu trúc rõ ràng cho người mới bắt đầu.
  • Về mặt thực tiễn doanh nghiệp: Khảo sát, phân tích định lượng cơ cấu nhân sự kỹ thuật, tỷ lệ lỗi (65% giao diện, 25% chức năng) và nguyên nhân chậm tiến độ (43% do lập trình, 37% do kiểm thử) tại Công ty TNHH Giải pháp phần mềm Gia Linh, khẳng định tính cấp thiết (74,1% đồng thuận) của việc chuẩn hóa kỹ thuật kiểm thử.
  • Về mặt ứng dụng: Xây dựng thành công bộ dữ liệu 50 testcase chi tiết áp dụng kỹ thuật kiểm thử hộp đen (phân vùng tương đương, giá trị biên), phát hiện trực tiếp 7 lỗi chức năng trên website thương mại điện tử hoctestertop.com để phản hồi cho đội ngũ phát triển hoàn thiện sản phẩm trước khi vận hành chính thức.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Phạm vi kiểm thử thực nghiệm của đề tài chỉ giới hạn ở phương pháp kiểm thử thủ công (manual testing) và kỹ thuật kiểm thử hộp đen đối với hai cụm chức năng (Tìm kiếm và Mua sắm) trên website http://hoctestertop.com/, chưa bao quát toàn bộ các chức năng khác của hệ thống cũng như chưa thực hiện kiểm thử tự động, kiểm thử hiệu năng hay kiểm thử an toàn bảo mật.
  • Hướng nghiên cứu tiếp:
    • Nghiên cứu và áp dụng các công cụ kiểm thử tự động (QuickTest Professional, Selenium) để phục vụ kiểm thử chức năng và kiểm thử hồi quy.
    • Sử dụng Apache JMeter và LoadRunner để kiểm thử hiệu năng và khả năng chịu tải của hệ thống máy chủ web.
    • Mở rộng kiểm thử tương thích trên nhiều nền tảng thiết bị di động (mobile responsive) và hoàn thiện khung tài liệu đào tạo kiểm thử nội bộ cho công ty.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho sinh viên chuyên ngành Hệ thống thông tin kinh tế, Công nghệ thông tin và Công nghệ phần mềm đang chuẩn bị thực hiện đồ án, khóa luận tốt nghiệp về đề tài kiểm thử phần mềm.

Nội dung có giá trị tham khảo ứng dụng cao nhất của văn bản là cấu trúc bảng đặc tả yêu cầu kết hợp với mẫu thiết kế testcase hộp đen chi tiết (các bước thực hiện, kết quả mong muốn, kết quả thực tế và trạng thái Pass/Fail) cho các chức năng phổ biến trên website thương mại điện tử như tìm kiếm, giỏ hàng, đặt mua và xử lý dữ liệu đầu vào theo giá trị biên. Ngoài ra, phương pháp khảo sát thực trạng hoạt động kiểm thử tại doanh nghiệp quy mô vừa và nhỏ là tài liệu tham khảo tốt cho các bài báo cáo thực tập tốt nghiệp.


Câu hỏi thường gặp

1. Khóa luận nghiên cứu tại doanh nghiệp nào và đối tượng kiểm thử thực tế là gì?
Khóa luận nghiên cứu hoạt động kiểm thử tại Công ty TNHH Giải pháp phần mềm Gia Linh (thành lập năm 2011 tại Cầu Giấy, Hà Nội) và áp dụng kiểm thử trực tiếp cho sản phẩm website thương mại điện tử GREEN CONSTRUCTION tại địa chỉ http://hoctestertop.com/.

2. Cơ cấu nhân sự phòng kỹ thuật của Công ty Gia Linh tại thời điểm khảo sát gồm những vị trí nào?
Tại thời điểm khảo sát (cuối năm 2017), phòng kỹ thuật của công ty gồm 31 người, phân bổ thành: 19 lập trình viên, 7 kiểm thử viên (trong đó 25% kiêm nhiệm phân tích nghiệp vụ), 3 nhân viên phân tích nghiệp vụ và 2 quản lý dự án.

3. Trước năm 2016, tỷ lệ các loại lỗi phần mềm phát sinh tại Công ty Gia Linh được thống kê như thế nào?
Trước năm 2016, khi công ty chưa có bộ phận kiểm thử độc lập mà do lập trình viên tự kiểm thử, tỷ lệ lỗi được ghi nhận gồm: 65% lỗi giao diện, 25% lỗi chức năng và 10% lỗi do khách hàng phản ánh vì chưa hiểu rõ cách thức vận hành.

4. Kỹ thuật kiểm thử nào được lựa chọn để viết testcase cho website hoctestertop.com và kết quả đạt được ra sao?
Tác giả sử dụng kỹ thuật kiểm thử hộp đen (Black-box testing) với các phương pháp phân tích giá trị biên và phân vùng tương đương để xây dựng 50 testcase (12 ca cho chức năng Tìm kiếm, 38 ca cho chức năng Mua sắm). Kết quả thực hiện ghi nhận 43 ca Pass (86%) và 7 ca Fail (14%).

5. Những công cụ kiểm thử tự động nào được tác giả giới thiệu trong định hướng phát triển của đề tài?
Tác giả giới thiệu và phân tích vai trò của 4 công cụ kiểm thử tự động chính: QuickTest Professional (QTP) và Selenium phục vụ kiểm thử chức năng và kiểm thử hồi quy; LoadRunner và Apache JMeter phục vụ kiểm thử tải và kiểm thử hiệu năng hệ thống.


Kết luận

Khóa luận của tác giả Nguyễn Thị Thư đã hệ thống hóa đầy đủ cơ sở lý thuyết về quy trình và các kỹ thuật kiểm thử phần mềm, đồng thời phản ánh khách quan thực trạng công tác kiểm thử tại Công ty TNHH Giải pháp phần mềm Gia Linh giai đoạn 2015–2017. Thông qua việc vận dụng kỹ thuật kiểm thử hộp đen, tác giả đã thiết kế và thực thi 50 ca kiểm thử trên website thương mại điện tử thực tế http://hoctestertop.com/, phát hiện 7 điểm lỗi tồn đọng tại luồng đặt mua và giỏ hàng. Đề tài đóng góp một mô hình kiểm thử thực nghiệm rõ ràng, cung cấp tài liệu tham khảo hữu ích cho công tác đào tạo nhân sự kiểm thử mới và đặt nền tảng cho việc mở rộng sang kiểm thử tự động trong tương lai.