CHƯƠNG I: TỔNG QUAN VỀ KIỂM THỬ TRONG PHÁT TRIỂN PHẦN MỀM 1.1 Tầm quan trọng trong phát triển phần mềm 1.1 Một số định nghĩa liên quan đến kiểm thử Định nghĩa Kiểm thử Kiểm thử là quy trình thực thi hoặc đánh giá một hệ thống hoặc một thành phần tự động hoặc bằng tay với mục đích xác nhận rằng hệ thống đó thoản mãn các yêu cầu nhất định [IEEE 83a] Một định nghĩa khác: Kiểm thử là một quy trình chạy sản phẩm theo xu hướng tìm ra các lỗi Định nghĩa quy trình - Quy trình là tập các hành động cần thực hiện để đạt được một mục đích nào đó - Quy trình phần mềm (Software Process) là tập các hành động, phương pháp, thủ tục và biến đổi mà người ta sử dụng để phát triển hoặc duy trì phần mềm và các sản phẩm liên quan. Định nghĩa về chất lượng - Từ góc nhìn khách hàng thì chất lượng của sản phẩm nghĩa là “dùng được” hoặc là đáp ứng yêu cầu của họ - Đảm bảo rằng sản phẩm thỏa mãn yêu cầu và mong muốn của người dùng.2 Mục tiêu của kiểm thử Mục tiêu đầu tiên: Chạy chương chình với xu hướng tìm ra lỗi để - Xác định xem hệ thống có đáp ứng được các đặc điểm kỹ thuật hay không - Xác định xem hệ thống có đáp ứng được mong muốn hay không Mục tiêu thứ cấp - Tạo sự tin tưởng: Một sản phẩn đã được kiểm thử tốt luôn luôn tạo cho khách hàng sự tin tưởng vào chất lượng - Liên tục cải tiến quy trình kiểm thử 1.3 Một số cách hiểu không đúng về kiểm thử Kiểm thử nghĩa là gỡ lỗi. Kiểm thử chỉ có nghĩa vụ tìm ra lỗi chứ không có ý định gỡ lỗi cho chương trình. Trong phương pháp kiểm thử hộp trắng, nhân viên Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 12/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng kiểm thử lần theo cấu trúc của modul để đưa ra các trường hợp kiểm thử, nhưng họ không có ý định sửa lỗi cho chương trình nên thấy lỗi tại một điểm nào đó.
Nếu họ làm như vậy sẽ đánh mất tính khách quan của kiểm thử hơn nữa đánh mất sự tập trung cần thiết của hoạt động kiểm thử. Họ sẽ bị “sa đà” vào các chi tiết của chương trình. Kiểm thử không phải là công việc của người lập trình. Trong thực tế tại công ty FPT, lập trình viên bắt buộc phải thực hiện test cho chương trình mà họ viết ra ở mức thấp nhất, đó là kiểm thử mức khối.
Họ là người hiểu rõ nhất chương trình mà mình viết ra đến “từng dòng lệnh”. Nếu lập trình viên mà cẩn thận hơn nữa thì việc kiểm thử là không cần thiết Kiểm thử thì không bao giờ kết thúc Kiểm thử chỉ bắt đầu sau khi lập trình xong. Trong mô hình lặp, kiểm thử được thực hiện song song với lập trình. Ngay cả với mô hình chữ V đơn giản thì cũng không ai dại gì mà lại đợi đến khi lập trình xong mới tiến hành kiểm thử.
Nếu để như vậy thì phí tổ nguồn lực trong dự án là rất lớn vì thông thường kiểm thử viên và lập trình viên là hai người khác nhau. Ngoài ra giá phải trả cho các lỗi càng về sau càng cao, ảnh hưởng của lỗi phát hiện muộn sẽ nặng nề hơn so với phát hiện từ đầu. Kiểm thử không phải là một công việc sáng tạo. Điều này có thể đúng….
Nếu nói sáng tạo tức là tạo ra sản phẩn thì kiểm thử có tạo ra sản phẩm đó là báo cáo kiểm thử, ngoài ra họ cũng sáng tạo ra lỗi. Dù sao đi nữa thì kiểm thử vẫn chưa thật sự được chú trọng nhất là phát triển phần mềm ở Viêt Nam.4 Lý luận và thực tiễn Lý luận − Phải có đủ thời gian − Ước lượng lỗi theo điều kiện biên − Kế hoạch hóa, theo dõi kiểm soát và thì hành − Xác định điểm cơ sở và cố định yêu cầu − Ước lượng và lựa chiến lược kiểm thử − Kiểm thử tự động − Phải đào tạo cho nhân viên kiểm thử khác như là một kế hoạch dự phòng Thực tiễn − Áp lực về mặt thời gian: Ngày bàn giao sản phẩm − Không kiểm thử mã nguồn: nguồn lực có hạn − Liên tục thay đổi và cập nhật yêu cầu − Không biết khi nào thì dừng lại: Cập nhật và cập nhật liên tục yêu cầu vì vậy nhân viên kiểm thử phải cập nhật lại ca kiểm thử và thực hiện kiểm thử lại Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 13/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng − Kiểm thử bằng tay − Thiếu môi trường để kiểm thử: phải chia sẻ môi trường với phát triển − Không đủ kinh nghiệm và không được đào tạo 1.2 Các hoạt động của nhân viên kiểm thử 1.1 Mô tả công việc của kiểm thử viên tại công ty FPT Bảng 1.1 mô tả các hoạt động mà một nhân viên kiểm thử phải thực hiện khi đứng trong một tổ chức phát triển phần mềm cũng như khi tham gia vào một dự án phát triển phần mềm. Thứ tự Phận sự và trách nhiệm I Các hoạt động hàng ngày (Công việc chính) 1 Nghiên cứu yêu cầu khách hàng, điều kiện chấp nhận, đặc tả yêu cầu phần mềm, thiết kế. 2 Phát triển kế hoạch kiểm thử theo yêu cầu người dùng, rủi do, tần suất sử dụng của chức năng.
3 Xác định phương pháp kiểm thử, điều kiện thoát, đo đạc kết quả test, nguồn lực và điều kiện của hiệu năng test. 4 Tạo ca kiểm thử ( điều kiện kiểm thử, kịch bản kiểm thử, kết quả test) 5 Xem xét kế hoạch kiểm thử và ca kiểm thử 6 Thực hiện kiểm thử dựa vào ca kiểm thử, kịch bản kiểm thử, lưu lại lỗi và tạo báo cáo kiểm thử. 7 Phân tích các yêu cầu thay đổi và cập nhật tài liệu kiểm thử. 8 Tạo ca kiểm thử mức khối.
9 Thực hiện kiểm thử mức khối và đánh giá kết quả. 10 Tạo bản liệt kê các mục cần kiểm tra lần cuối 11 Xem xét bản liệt kê các mục cần kiểm tra lần cuối 13 Quản lý đội dự án có hạng B, C, D 14 Quản lý đội dự án có hạng A 15 Giới thiệu quy trình kiểm thử của F 16 Nghiên cứu công cụ kiểm thử, tạo kịch bản kiểm thử tự động. Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 14/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng 17 Xem xét kịch bản, duyệt công cụ kiểm thử để đảm bảo việc kiểm thử được thuận tiện. 18 Nghiên cứu các kỹ thuật kiểm thử và công cụ mới được áp dụng trong F.
19 Tính toán và phân tích ma trận kiểm thử. II Cải tiến chất lượng 20 Khởi tạo luồng công việc, quy trình, hướng dẫn. 21 Xem xét các đề xuất cải tiến liên quan đến việc kiểm thử phần mềm. 22 Điều hành quy trình cải tiến và hiệu quả chi phí được đưa về các nhóm.
23 Phát triển tài liệu quản lý chất lượng. 24 Quản lý các hoạt động cải tiến kỹ năng của nhân viên kiểm thử và chất lượng kiểm thử. 25 Xác định quy trình kiểm thử, mẫu kiểm thử 26 Quản lý công cụ kiểm thử. III Phát triển nguồn lực 27 Đào tạo nhân viên kiểm thử mới 28 Xác định chương trình đào tạo chuẩn cho nhân viên kiểm thử 29 Quản lý nguồn nhân lực kiểm thử ở các nhóm 30 Quản lý nguồn nhân lực kiểm thử ở FPT.
31 Quản lý việc đào tạo nhân viên kiểm thử ở các nhóm 32 Quản lý việc đào tạo nhân viên kiểm thử ở công ty FPT IV Bảo mật thông tin 33 Tuân thủ quy định bảo mật thông tin của công ty Bảng 1.1: Các công việc của nhân viên kiểm thử tại công ty FPT Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 15/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng 1.2 Luồng công việc mà nhân viên kiểm thử phải thực hiện trong dự án Bắt đầu Tạo kế hoạch kiểm Kế Kếhoạc hoạcKT KT thử Kiểm thử viên Có đạt kiểm tra không Bản Bảnliệt liệtkê kêkết kết quả quảkiểm kiểmtra tra Không QTDA, Trưởng Có nhóm KT Tạo ca kiểm thử Ca Cakiểm kiểmthử thử Kiểm Có thử viên Bản Bảnliệt liệtkê kêkết kết Có đạt kiểm tra không quả quảkiểm kiểmtra tra Không Trưởng DA, Trưởng Có KT, QA, đội dự án Thiết lập môi trường Kiểm thử Kiểm thử viên Thực hiện kiểm thử Kiểm thử viên Có đạt ca KT không? Không Có Không Lưu lỗi vào DMS, Lỗi Lỗi cập nhật ca KT Kiểm thử viên Đánh giá kết quả kiểm thử Đội dự án Tạo báo cáo kiểm Báo Báocáo cáokiểm kiểmthử thử thử Kiểm thử viên Thực hiện xem xét Bản cuối cùng Bảnghi ghiXX XX Có đạt xem xét lần cuối không Người xem xét cuối Có Bàn giao gói sản phẩm cho khách hàng Kết thúc Quy trình kiểm thử Hình 1.1: Luồng công việc mà kiểm thử viên phải thực hiện tại công ty FPT Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 16/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng 1.3 Quy trình làm việc của nhân viên kiểm thử phần mềm Chuẩn bị kiểm thử Lập kế hoạch kiểm thử Nghiên cứu yêu ầ Thực hiện kiểm thử Đội kiểm thử Kiểm tra chuẩn bị kế hiệu năng hoạch Tạo thiết kế Xem xét Kiểm thử và phê Phân tích dữ liệu duyệt Báo cáo lỗi Họp và Phân tích, báo cáo sửa và đánh Tạo dữ liệu, thủ tiến độ giá nguồn tục và kịch bản gốc của lỗi kiểm thử Khắc phục lỗi Giám sát vấn đề Hình 1.2: Quy trình làm việc của nhân viên kiểm thử tại công ty FPT 1.3 Các đặc trưng của kiểm thử phần mềm Các đặc trưng của kiểm thử được biểu diễn như sau Phạm vi kiểm thử Phương thức Kiểu kiểm thử (các pha kiểm thử trong vòng đời phát triển) kiểm thử (kỹ thuật kiểm thử) (cách thức tiến Kiểm thử mức khối hành kiểm thử) Ví dụ: Tích hợp các khối của phần mềm KT dữ liệu, Kiểm thử Kiểm thử mức phê chuẩn Hộp đen KT phủ, Hộp trắng Phi hồi quy, Tĩnh Chức năng, Mục tiêu kiểm thử (mục tiêu của kiểm thử) Giới hạn, … Quan tâm đến các đặc trưng về chất lượng của phần mềm Hình 1.3: Các đặc trưng của kiểm thử phần mềm Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng Học viên: Nguyễn Văn Trọng Trang 17/78 Đồ án tốt nghiệp cao học: Kiểm thử phần mềm nhúng 1.