Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
283,96 KB
Nội dung
Chương Các hoạt ₫ộng kiểm thử khác 9.1 Giới thiệu Sau kiểm thử ₫ơn vị chức phần mềm sửa lỗi hoàn chỉnh cho chúng, ta khơng thể ₫ảm bảo ₫ã tìm hết lỗi phần mềm Thật vậy, nhiều lỗi khác mà kiểm thử ₫ơn vị chưa phát ₫ược Tại ? Như biết qui trình phát triển phần mềm, ta ₫ã thực số workflows : Xác ₫ịnh yêu cầu ₫ể biết rõ tạo phần mềm cần thiết Xác ₫ịnh mục tiêu phần mềm ₫ể biết rõ phần mềm phải thực mức ₫ộ thực chúng ? Đặc tả chức mà người dùng thấy phần mềm Thiết kế hệ thống thiết kế cấu trúc cụ thể chi tiết phần mềm Đặc tả giao tiếp module chức Hiện thực chi tiết chức module Về nguyên tắc, người có hạn chế ₫ịnh, kết cơng việc ₫ó ₫ều có lỗi, dùng kết làm liệu ₫ầu vào cho hoạt ₫ộng kết hoạt ₫ộng kế bị lỗi, Ta thường dùng tổ hợp biện pháp sau ₫ây ₫ể hạn chế/ngăn ngừa lỗi : Xác ₫ịnh lại cho rõ ràng chi tiết workflows qui trình phát triển phần mềm Ở cuối việc thực workflows bất kỳ, cần thêm hoạt ₫ộng ₫ược gọi "thanh kiểm tra kết quả" ₫ể ₫ảm bảo chất lượng kết trước dùng ₫ể thực workflow Ứng với workflow khác nhau, ta xác ₫ịnh dùng chiến lược kiểm thử phù hợp ₫ể dễ dàng xác ₫ịnh loại lỗi ₫ặc thù workflow ₫ó Mục ₫ích kiểm thử ₫ơn vị phát khác biệt ₫ặc tả giao tiếp ₫ơn vị thực tế mà ₫ơn vị cung cấp Mục ₫ích kiểm thử chức chương trình khơng tương thích với ₫ặc tả bên ngồi Mục ₫ích kiểm thử hệ thống chương trình khơng tương thích với mục tiêu ban ₫ầu Các lợi ích : tránh kiểm thử dư thừa ngăn chặn quan tâm nhiều vào nhiều loại lỗi thời ₫iểm Chú ý : trình tự hoạt ₫ộng kiểm thử hình slide trước khơng thiết ám trình tự thời gian kiểm thử tương ứng 9.2 Kiểm thử chức Qui trình cố gắng tìm khác biệt ₫ặc tả bên ngồi phần mềm thực tế mà phần mềm cung cấp Đặc tả bên phần mềm ₫ặc tả xác hành vi phần mềm theo góc nhìn người dùng thấy Kiểm thử chức thường sử dụng kỹ thuật kiểm thử hộp ₫en ₫ó : Kỹ thuật phân lớp tương ₫ương (Equivalence Class Partitioning) Kỹ thuật dùng bảng ₫ịnh (Decision Tables) Kỹ thuật kiểm thử n thần kỳ (Pairwise) Kỹ thật phân tích vùng miền (domain analysis) Kỹ thuật dựa ₫ặc tả Use Case (Use case) Các cách tiếp cận ₫ể kiểm thử chức phần mềm : User Navigation Testing Transaction Screen Testing Transaction Flow Testing Report Screen Testing Report Flow Testing Database Create/Retrieve/Update/Delete Testing Kiểm thử khả duyệt chức người dùng (User Navigation Test) Các hình phục vụ duyệt thực chức hình log on/log off, menu bar hệ thống phân cấp option ₫ể thực chức năng, toolbar, tất mối liên kết từ hình tới hình khác ₫ể thể liên tục hoạt ₫ộng nghiệp vụ ₫ang cần thực Kiểm thử khả duyệt chức người dùng tập trung : khả người dùng login vào hệ thống với quyền hạn thích hợp di chuyển qua hình "giao tác" mong muốn cách ₫úng ₫ắn logout khỏi phần mềm Kiểm thử hình giao tác (Transaction screen Test) Màn hình giao tác có field nhập liệu, list chọn option, options, button chức (Add, Change, Delete, Submit, Cancel, OK ) Một vài loại kết ₫ược hiển thị hình giao tác sau người dùng click button chức ₫ó Cơng việc người kiểm thử : Thiết kế testcase ₫ể xác thực hoạt ₫ộng field liệu, list, option button hình giao tác theo yêu cầu nghiệp vụ, tài liệu người dùng tài liệu người quản trị à Nếu kết ₫ược hiển thị hình giao tác, kỹ thuật kiểm thử hộp ₫en với testcase gồm (data input, ouput kỳ vọng) ₫ược dùng ₫ể xác thực kết hiển thị Kiểm thử luồng giao tác (Transaction Flow Test) Kiểm tra kết tổng hợp nhiều hình giao tác theo thứ tự duyệt ₫úng có hồn thành hoạt ₫ộng nghiệp vụ tương ứng khơng ? Thí dụ nghiệp vụ cập nhật profile khách hàng gồm hình giao tác sau : hình cập nhật tên, ₫ịa chỉ, contact Màn hình cập nhật credit Màn hình cập nhật thơng tin tốn khuyến Màn hình tổng kết profile thực cập nhật Màn hình ₫ể xem kết profile ₫ã cập nhật Kết cuối trình tự hình file hay database ₫ược cập nhật ₫ể chứa thông tin mà người dùng ₫ã cập nhật thơng qua hình giao tác Nhiệm vụ người kiển thử : Xác thực người dùng thực ₫úng trình tự hình giao tác hồn tất ₫ược chúng hệ thống se cung cấp kết ₫úng Ngược lại, người dùng không tuân thủ qui luật nghiệp vụ hình giao tác hệ thống khơng cung cấp kết cho người dùng Kiểm thử hình báo biểu (Report screen Test) hình báo biểu cho phép tìm kiếm liệu hiển thị kết (khơng cần nhập liệu hình giao tác) Khó khăn kiểm thử hình bào biểu nằm chỗ có nhiều cách mà người dùng ₫ặc tả liệu cần ₫ược tìm kiếm (tiêu chuẩn) cách thức liệu ₫ược hiển thị (sắp xếp ₫ịnh dạng) Công việc người kiềm thử ý ₫ặc biệt vào liệu tìm kiếm hiển thị người dùng chọn sai liệu hay tệ khơng có kết ₫ược hiển thị Kiểm thử luồng báo biểu (Report Flow Test) Kiểm thử khác biệt kết hiển thị hình báo biểu phương thức báo biểu khác (như máy in, file, ) Nhiệm vụ người kiểm thử : Xác ₫ịnh xem phần mềm gởi kết hình report máy in ? Xác thực kết báo biểu tất phương thức báo cáo khác ₫ược hỗ trợ phần mềm Xác ₫ịnh xem khả máy in có hỗ trợ font, vùng chọn ₫ược người dùng xác ₫ịnh hình báo biểu ? Kiểm thử việc Create/Retrieve/Update/Delete database Thường ₫ược thực thông qua bước : Kiểm thử việc thiết kế, khởi tạo database ban ₫ầu thông qua tiện ích bên phần mềm ứng dụng cần kiểm thử Kiểm thử việc phần mềm sử dụng database ₫ã ₫ược thiết kế khởi tạo ₫úng Đòi hỏi hợp tác cộng tác người kiểm thử người quản trị database 9.3 Kiểm thử hệ thống Kiểm thử hệ thống khơng phải qui trình kiểm thử tồn chức chương trình hay hệ thống phần mềm ₫ầy ₫ủ Mục ₫ích kiểm thử hệ thống so sánh hệ thống hay chương trình với mục tiêu ban ₫ầu Kiểm thử hệ thống không bị hạn chế với hệ thống phần mềm Nếu sản phẩm cần kiểm thử chương trình, kiểm thử hệ thống qui trình cố gắng chứng minh cách mà tồn phần mềm khơng thỏa mản mục tiêu Theo ₫ịnh nghĩa trên, kiểm thử hệ thống xảy ₫ược ta không viết rõ ràng thông tin ₫o ₫ạt ₫ược mục tiêu chương trình Thí dụ ₫ặc tả mục tiêu chương trình : Hãy thực hàng lệnh ₫ể từ cửa sổ text-mode, người dùng xem nội dung chi tiết ô nhớ nhớ phần mềm Cú pháp hàng lệnh nên quán với cú pháp lệnh khác mà hệ thống cung cấp Người dùng nên ₫ặc tả vùng nhớ thông qua ₫ịa ₫ầu cuối hay thông qua ₫ịa ₫ầu số lượng nhớ cần xem Các tốn hạng lệnh nên có nhiệm ý gợi nhớ Kết nên xuất nhiều hàng, nội dung ổ nhớ dạng hex cách hay nhiều khoảng trắng Mỗi hàng nên chứa ₫ịa nhớ ₫ầu hàng ₫ó Lệnh bình thường, nghĩa máy ₫ang chạy bình thường, bắt ₫ầu xuất kết vài giây kết xuất khơng có thời gian chờ nhớ hàng hay hàng Lỗi lập trình nên làm cho lệnh bị dừng, hệ thống session người dùng khơng bị ảnh hưởng hết Sau hệ thống bắt ₫ầu xuất kết quả, xử lý lệnh khơng nên có lỗi người dùng phát ₫ược Kiểm thử hệ thống qui trình kiểm thử quan trọng Các chất liệu ₫ể tạo testcase cho kiểm thử hệ thống : Chúng ta khơng dùng ₫ặc tả theo góc nhìn người dùng ₫ể suy testcase Tài liệu mục tiêu chương trình, tự khơng thể ₫ược dùng ₫ể tạo testcase, theo ₫ịnh nghĩa, khơng chứa miêu tả xác, rõ ràng giao tiếp từ ngồi vào chương trình ta dùng tài liệu sử dụng công bố cho người dùng Thiết kế testcase cách phân tích mục tiêu Tạo testcase cách phân tích tài liệu dành cho người dùng Kiểm thử hệ thống hoạt ₫ộng kiểm thử khó khăn Phải so sánh chương trình với mục tiêu ban ₫ầu : nên khơng có phương pháp luận thiết kế testcase tường minh Dùng cách tiếp cận khác ₫ể thiết kế testcase : Thay miêu tả phương pháp luận, loại testcase riêng biệt ₫ược ₫ề cập Do khơng có phương pháp luận, kiểm thử hệ thống ₫òi hòi nhiều ₫ộng sáng tạo Kiểm thử hệ thống tập trung vào kiểm thử u cầu khơng chức Có 15 u cầu khơng chức sau ₫ây cần kiểm thử (nhưng khơng phải phần mềm ₫ịi hỏi ₫ủ 15 yêu cầu này) : Facility Testing Volume Testing Stress Testing Usability Testing Security Testing Performance Testing Storage Testing Configuration Testing Compatibility/Configuration/Conversion Testing Installability Testing Reliability Testing Recovery Testing Serviceability Testing Documentation Testing Procedure Testing Kiểm thử phương tiện (Facility Test) xác ₫ịnh xem phương tiện ₫ược ₫ề cập phần mục tiêu chương trình ₫ã ₫ược thực thực chưa Qui trình kiểm thử : Dị nội dung, câu một, miêu tả mục tiêu Khi câu miêu tả gì, xác ₫ịnh chương trình ₫ã thỏa mãn ₫ó chưa Thường ta thực kiểm thử phương tiện mà khơng cần chạy máy tính, so sánh trí óc mục tiêu với tài liệu sử dụng ₫ôi ₫ủ Kiểm thử dung lượng (Volume Test) Mục ₫ích kiểm thử dung lượng chương trình khơng thể xử lý khối lượng liệu lớn ₫ược ₫ặc tả bảng ₫ặc tả mục tiêu chương trình Thí dụ : Chương trình dịch khơng thể dịch file mã nguồn dài 10MB Trình liên kết khơng thể liên kết 1000 module chức khác lại Trình xem phim chiếu file film dài 15GB Kiểm thử dung lượng thường ₫òi hỏi nhiều tài nguyên, người lẫn máy tính Kiểm thử tình trạng căng thẳng (StressTest) Mục ₫ích kiểm thử tình trạng căng thẳng chương trình khơng thể hoạt ₫ộng ₫ược hay hoạt ₫ộng khơng tốt tình căng thẳng : nhiều yêu cầu ₫ồng thời, nhiều chương trình khác ₫ang cạnh tranh tài nguyên, Thí dụ : web server bế tắc có 100000 yêu cầu truy xuất trang web ₫ồng thời HĐH quản lý 1000 process chạy ₫ồng thời Trình chiếu phim khơng chiếu phim mượt tốt có nhiều chương trình khác cần nhiều tài nguyên ₫ang chạy 4 Kiểm thử ₫ộ khả dụng (UsabililyTest) Mục ₫ích kiểm thử ₫ộ khả dụng phương tiện/kết nhập/xuất không phù hợp, thân thiện với người dùng : Mỗi ₫ối tượng giao diện có thân thiện, tự nhiên dễ dùng khơng ? Kết xuất có ngắn gọn, sáng, nghĩa dễ hiểu không ? Các cảnh báo hiểu khơng ? “IEK022A OPEN ERROR ON FILE ‘SYSIN’ ABEND CODE=102?” Nói chung tất kết quả, cảnh báo ₫ều phải quán, ₫ồng cú pháp, ₫ịnh dạng, từ viết tắt ₫ược dùng Một số ý : Khi ₫ộ xác quan trọng hệ thống quản lý ngân hàng, thơng tin nhập có tính dư thừa ₫ủ khơng ? Hệ thống có nhiều nhiệm ý hay nhiệm ý ₫ược người dùng thích dùng khơng ? Hệ thống có trả ₫ủ ₫áp ứng với hoạt ₫ộng nhập ? Chương trình dùng thân thiện ? Kiểm thử dịch vụ cộng thêm (Serviceability Test) Trong mục tiêu phần mềm ₫ề cập ₫ến số dịch vụ cộng thêm, thí dụ : Chương trình chẩn ₫ốn xuất nội dung thơ nhớ chương trình Thời gian trung bình ₫ể debug vấn ₫ề rõ ràng Các thủ tục bảo trì Chất lượng tài liệu luận lý bên Các mục tiêu trên, có ₫ề cập mục tiêu chương trình cần phải ₫ược kiểm thử Kiểm thử tính an ninh (Security Test) An ninh phần mềm gồm vấn ₫ề bảo mật, tính tồn vẹn liệu ₫ộ sẵn sàng ₫áp ứng Nghiên cứu vấn ₫ề liên quan ₫ến an ninh hệ thống tương tự tạo testcase ₫ể chứng minh vấn ₫ề tồn chương trình cần kiểm thử Các ứng dụng mạng ứng dụng theo công nghệ Web cần ₫ược kiểm thử tính an ninh mức ₫ộ cao nhiều so với phần mềm truyền thống máy ₫ơn Điều ₫ặc biệt ₫úng cho website thương mại, ngân hàng Kiểm thử hiệu xuất làm việc (Performance Test) Mục ₫ich kiểm thử hiệu xuất làm việc phần mềm không ₫ạt ₫ược hiệu xuất ₫ược ₫ặc tả mục tiêu chương trình Thí dụ : trình chiếu phim full HD khơng chiếu kịp 20 frame/sec trình nén liệu khơng nén liệu kịp với tốc ₫ộ ₫ề trình soạn thảo văn không nhận xử lý kịp ký tự ₫ược nhập người dùng trình ghi DVD không tạo liệu ghi kịp tốc ₫ộ mà ổ DVD yêu cầu Kiểm thử ₫ộ sử dụng nhớ (Storage Test) Mục ₫ich kiểm thử ₫ộ sử dụng nhớ phần mềm không tuân thủ dung lượng nhớ tối thiểu/tối ₫a ₫ược ₫ặc tả mục tiêu chương trình Thí dụ : kích thước tối thiểu 128KB khơng ₫ủ ₫ể chạy chương trình chương trình khơng dùng hết kích thước nhớ tối ₫a 4GB chương trình khơng chạy ₫ược ₫ĩa cịn dung lượng trống tối thiểu 4MB chương trình khơng quản lý ₫ược dung lượng ₫ĩa 1TB Kiểm thử cấu hình làm việc (Configuration Test) Nhiều chương trình HĐH, hệ quản trị CSDL, Website, thường làm việc ₫ược nhiều cấu hình phần cứng/phần mềm cấp thấp Số lượng cấu hình khác lớn, ta nên chọn số cấu hình phổ dụng ₫ể kiểm thử xem chương trình có chạy tốt cầu hình khơng 10 Kiểm thử tính tương thích/chuyển ₫ổi/cấu hình (Compatibility/ Configuration/Conversion Test) Đời sống phần mềm thường dài, phần mềm thương mại hãng lớn Trong ₫ời mình, phần mềm ₫ược phát triển tăng dần theo release, version Về nguyên tắc, version tương thích ngược với version ₫ã có Mức ₫ộ tương thích, khả chuyển ₫ổi ₫ịnh dạng file liệu từ cũ sang hay ngược lại, khả cấu hình version ₫ể làm việc version cũ, ₫ược ₫ặc tả mục tiêu chương trình Nếu có ta phải kiểm thử ₫ặc tả xem version cần kiểm thử có ₫áp ứng ₫ược khơng Thí dụ : Word 2003 cấu hình ₫ể chạy y Word 97 không ? 11 Kiểm thử khả cài ₫ặt (Installability Test) Một số hệ thống phần mềm có thủ tục cài ₫ặt phức tạp Chương trình cài ₫ặt chạy sai ngăn chận người dùng khơng dùng ₫ược phần mềm ₫ược cài ₫ặt Nhiệm vụ kiểm thử khả cài ₫ặt kiểm thử chương trình cài ₫ặt có hoạt ₫ộng ₫úng khơng ? 12 Kiểm thử ₫ộ tin cậy (Reliability Test) Mục tiêu loại kiểm thử ₫ều hướng ₫ến việc cải tiến ₫ộ tin cậy chương trình Nếu mục tiêu chương trình chứa phát biểu ₫ặc biệt ₫ộ tin cậy, ta cần phải thực hoạt ₫ộng kiểm thử ₫ộ tin cậy ₫ặc thù Việc kiểm thử mục tiêu ₫ộ tin cậy khó khăn Thí dụ, hệ thống online ₫ại WAN hay ISP thường có thời gian làm việc thực tế 99.97% thời gian sống Chưa có cách ₫ể ta kiểm thử mục tiêu với thời gian kiểm thử hàng tháng hay hàng năm 13 Kiểm thử ₫ộ phục hồi sau lỗi (Recovery Test) Các chươnng trình hệ ₫iều hành, hệ quản trị database, chương trình xử lý từ xa thường có mục tiêu phục hồi sau lỗi ₫ể miêu tả cách hệ thống phục hồi sau lỗi liệu, lỗi phần mềm hay lỗi phần cứng xảy Mục tiêu kiểm thử ₫ộ phục hồi sau lỗi: chức phục hồi không làm việc ₫úng hệ thống không thỏa thỏa thuận thời gian trung bình ₫ể phục hồi sau lỗi (MTTR) 14 Kiểm thử tài liệu (Documentation Test) Kiểm thử hệ thống có liên quan ₫ến ₫ộ xác tài liệu dành cho người dùng Cách yếu ₫ể thực ₫iều dùng tài liệu ₫ể xác ₫ịnh testcase hệ thống có ₫ộ ưu tiên cao Tài liệu dành cho người dùng nên chủ ₫ề hoạt ₫ộng tra (tương tự khái niệm tra mã nguồn), kiểm tra ₫ể biết ₫ược ₫ộ xác tính sáng 15 Kiểm thử thủ tục (Procedure Test) Nhiều phần mềm thành phần hệ thống lớn chưa ₫ược tự ₫ộng hóa hồn tồn liên quan ₫ến nhiều thủ tục mà người cần thực Bất kỳ thủ tục người ₫ược kê ra, thủ tục dành cho người quản trị hệ thống, quản trị database, người dùng ₫ầu cuối nên ₫ược kiểm thử suốt hoạt ₫ộng kiểm thử hệ thống 9.4 Kiểm thử ₫ộ chấp nhận user (Acceptance) qui trình so sánh chương trình thực tế với yêu cầu ban ₫ầu với nhu cầu hành người dùng ₫ầu cuối Thường ₫ược thực khách hàng hay người dùng ₫ầu cuối thường không ₫ược coi trách nhiệm tổ chức phát triển phần mềm Trong trường hợp chương trình làm theo hợp ₫ồng, bên ₫ặt hàng thực kiểm thử ₫ộ chấp nhận cách so sánh hoạt ₫ộng chương trình với ₫iều khoản hợp ₫ồng Trong trường hợp chương trình thương mại HĐH, trình biên dịch, hệ quản trị CSDL, khách hàng nhạy cảm thực kiểm thử ₫ộ chấp nhận ₫ể xác ₫ịnh xem sản phẩm có thỏa mãn yêu cầu họ không ? 9.5 Kiểm thử việc cài ₫ặt (Installation) Mục ₫ích kiểm thử việc cài ₫ặt khơng phải tìm lỗi phần mềm mà tìm lỗi xảy trình cài ₫ặt phần mềm Hiện nay, hầu hết chương trình ₫ều có chương trình cài ₫ặt kèm theo Có nhiều kiện xảy trình cài ₫ặt hệ thống phần mềm : Người dùng phải chọn nhiều options Các file thư viện phải ₫ược phân phối tải Các cấu hình phần cứng hợp lệ phải có sẵn Chương trình cần nối mạng ₫ể giao tiếp với phần mềm máy khác Các testcase kiểm tra ₫ể ₫ảm bảo : tập option tương thích ₫ã ₫ược chọn tất thành phần hệ thống phần mềm ₫ã có sẵn tất file ₫ã ₫ược tạo có nội dung cần thiết Cấu hình phần cứng phù hợp Nên ₫ược phát triển ₫ơn vị tạo hệ thống phần mềm, ₫ược phân phối thành phần hệ thống phần mềm chạy sau hệ thống ₫ược cài ₫ặt 9.6 Kiểm thử hồi qui (Regression) Kiểm thử hồi qui chạy lại testcase ₫ã có TPPM ₫ã ₫ược hiệu chỉnh nâng cấp ₫ể ₫ảm bảo thay ₫ổi TPPM khơng có ảnh hưởng lề nào, TPPM ₫áp ứng tốt với testcase trước ₫ây Thường ₫ược bắt ₫ầu code ₫ang viết code hành ₫ang ₫ược cập nhật Cũng ₫ược thực từ version sang version khác phần mềm Qui trình lý tưởng tạo tập testcase bao quát chạy sau lần có thay ₫ổi phần mềm Các kỹ thuật chọn kiểm thử hồi qui : Hiệu suất không tiên lượng Các giả ₫ịnh process khơng tương thích Các mơ hình ₫ánh giá khơng thích hợp Có thể ₫ược tự ₫ộng hóa 9.6 Kết chương Chương ₫ã giới thiệu lý cần nhiều hoạt ₫ộng kiểm thử khác nhau, ₫ó kiểm thử ₫ơn vị mà ta ₫ã giới thiệu chương trước hoạt ₫ộng kiểm thử ₫ầu tiên Chúng ta ₫ã giới thiệu vấn ₫ề liên quan ₫ến hoạt ₫ộng kiểm thử khác kiểm thử chức chương trình, kiểm thử yêu cầu không chức năng, kiểm thử ₫ộ chấp thuận người dùng, kiểm thử việc cài ₫ặt phần mềm, kiểm thử hồi qui ... thử chức thường sử dụng kỹ thu? ??t kiểm thử hộp ₫en ₫ó : Kỹ thu? ??t phân lớp tương ₫ương (Equivalence Class Partitioning) Kỹ thu? ??t dùng bảng ₫ịnh (Decision Tables) Kỹ thu? ??t kiểm thử n thần kỳ... Tables) Kỹ thu? ??t kiểm thử n thần kỳ (Pairwise) Kỹ thật phân tích vùng miền (domain analysis) Kỹ thu? ??t dựa ₫ặc tả Use Case (Use case) Các cách tiếp cận ₫ể kiểm thử chức phần mềm : User Navigation... nghiệp vụ, tài liệu người dùng tài liệu người quản trị à Nếu kết ₫ược hiển thị hình giao tác, kỹ thu? ??t kiểm thử hộp ₫en với testcase gồm (data input, ouput kỳ vọng) ₫ược dùng ₫ể xác thực kết hiển