Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
50,39 KB
Nội dung
Kiểmthửphầnmềm (kiểm tra, thử nghiệm) kiểm tra tiến hành để cung cấp cho bên liên quan thông tin chất lượng sản phẩm dịch vụ kiểm thử.[1] Kiểmthử cung cấp cho doanh nghiệp quan điểm, cách nhìn độc lập phầnmềm để từ cho phép đánh giá thấu hiểu rủi ro trình triển khai phầnmềm Trong kỹ thuật kiểmthử không giới hạn việc thực chương trình ứng dụng với mục đích tìm lỗi phầnmềm (bao gồm lỗi thiếu sót) mà q trình phê chuẩn xác minh chương trình máy tính / ứng dụng / sản phẩm nhằm: Đáp ứng yêu cầu hướng dẫn thiết kế phát triển phầnmềm Thực công việc kỳ vọng Có thể triển khai với đặc tính tương tự Và đáp ứng nhu cầu bên liên quan Tùy thuộc vào phương pháp, việc kiểmthử thực lúc trình phát triển phầnmềm Theo truyền thống nỗ lực kiểmthử tiến hành sau yêu cầu xác định việc lập trình hồn tất Agile (là tập hợp phương pháp phát triển phầnmềm linh hoạt dựa việc lặp lặp lại gia tăng giá trị) việc kiểmthử tiến hành liên tục suốt trình xây dựng phầnmềm Như vậy, phương pháp kiểmthử bị chi phối theo quy trình phát triển phầnmềm định Mục lục Tổng quan Lịch sử Phương pháp kiểmthử Các mức kiểmthử Các loại hình kiểmthử QUY TRÌNH KIỂMTHỬ Kiểmthử tự động hóa Kiểmthử thành phần lạ Những chứng nhận 10 Sự tranh luận 11 Quy trình liên quan 12 Xem thêm 13 Tham khảo 14 Liên kết ngồi Tổng quan Kiểmthử khơng thể xác định hoàn toàn tất lỗi bên phầnmềm [2] Thay vào đó, so sánh trạng thái hành vi sản phẩm với oracle - nguyên tắc hay chế để phát vấn đề Các oracle bao gồm (nhưng không giới hạn ở) đặc tả phần mềm, hợp đồng,[3] sản phẩm tương đương, phiên trước sản phẩm, phù hợp với mục đích dự kiến nhằm đáp ứng kỳ vọng người dùng, khách hàng, quy định pháp luật hành tiêu chuẩn liên quan khác Mục đích kiểmthử phát lỗi phầnmềm để từ khắc phục sửa chữa Việc kiểmthử khẳng định chức sản phẩm điều kiện, mà khẳng định khơng hoạt động điều kiện cụ thể.[4] Phạm vi kiểmthửphầnmềm thường bao gồm việc kiểm tra mã, thực mã môi trường điều kiện khác nhau, việc kiểmthử khía cạnh mã: có làm nhiệm vụ hay khơng, có làm cần phải làm hay không Trong môi trường phát triển phầnmềm nay, đội kiểmthử tách biệt với đội phát triển Các thành viên đội kiểmthử giữ vai trò khác Các thơng tin thu từ kiểmthử sử dụng để điều chỉnh trình phát triển phần mềm.[5] Mỗi sản phẩm phầnmềm có đối tượng phục vụ riêng Ví dụ đối tượng phầnmềm trò chơi điện tử hồn tồn khác với đối tượng phầnmềm ngân hàng Vì vậy, tổ chức phát triển đầu tư vào sản phẩm phần mềm, họ đánh giá liệu sản phẩm phầnmềm có chấp nhận người dùng cuối, đối tượng phục vụ, người mua, hay người giữ vai trò quan trọng khác hay khơng Và việc kiểmthửphầnmềm trình nỗ lực để đưa đánh giá Khiếm khuyết thất bại Không phải tất khiếm khuyết phầnmềm bị gây lỗi lập trình mà cội nguồn chung khiếm khuyết nằm thiếu sót u cầu; ví dụ, u cầu không xác nhận mà gây lỗi sơ suất nhà thiết kế chương trình.[6] Những thiếu sót u cầu thường thấy yêu cầu phi chức khả kiểm thử, khả mở rộng, bảo trì, tính khả dụng, hiệu suất, khả bảo mật Lỗi phầnmềm xảy thơng suốt q trình sau: Một lập trình viên làm cho lỗi (sai lầm), mà kết cho khiếm khuyết (thất bại, sai sót) mã nguồn phầnmềm Nếu lỗi thực hiện, tình định hệ thống tạo kết sai, gây thất bại [7] Không phải tất khiếm khuyết thiết dẫn đến thất bại Ví dụ, lỗi mã chết không dẫn đến thất bại Lỗi biến thành thất bại mơi trường thay đổi Ví dụ thay đổi môi trường bao gồm phầnmềm chạy tảng phần cứng máy tính mới, thay đổi nguồn liệu, tương tác với phầnmềm khác Một khiếm khuyết dẫn đến loạt dấu hiệu thất bại Kết nối đầu vào điều kiện tiền đề Một vấn đề với kiểmthửphầnmềm việc kiểmthử tất kết nối đầu vào điều kiện tiền đề (trạng thái ban đầu) không khả thi, với sản phẩm đơn giản.[4][8] Điều có nghĩa số lượng khiếm khuyết sản phẩm phầnmềm lớn xảy thường xuyên nên khó để tìm thấy q trình kiểmthử Quan trọng hơn, yêu cầu phi chức chất lượng (làm làm gì?) như: tính khả dụng, khả mở rộng, hiệu suất, khả tương thích, độ tin cậy xét mặt chủ quan chưa tạo nên giá trị đủ để người chấp nhận Các nhà phát triển phầnmềm khơng thể kiểmthử tất thứ, họ sử dụng tổ hợp thiết kế kiểmthử để xác định số lượng tối thiểu kiểmthử cần thiết để bao quát điều họ muốn Dù kiểmthử tốc độ hay độ sâu họ sử dụng phương pháp để xây dựng cấu khác trường hợp kiểmthử (test case) cụ thể.[9] Kinh tế Một nghiên cứu tiến hành NIST năm 2002 cho biết lỗi phầnmềm gây tổn thất cho kinh tế Mỹ 59,5 tỷ đô năm, phần ba chi phí tránh việc kiểmthửphầnmềm thực tốt [10] Người ta thường tin rằng, kiếm khuyết tìm sớm chi phí để sửa chữa rẻ Bảng cho thấy chi phí sửa chữa khiếm khuyết tùy thuộc vào giai đoạn tìm [11] Ví dụ, vấn đề tìm thấy sau phầnmềm thức có chi phí gấp 10-100 lần giải vấn đề từ lúc tiếp nhận yêu cầu Với đời cách thức triển khai thực tiễn liên tục dịch vụ dựa đám mây, chi phí tái triển khai bảo trì làm giảm bớt theo thời gian Thời gian phát Chi phí sửa chữa Các yêu cầu Kiến trúc Sau Xây dựng Kiểmthử khiếm khuyết phầnphần phát phầnmềm hệ thống mềmmềm hành Các yêu cầu phần 1× 3× 5–10× 10× 10–100× mềm Thời gian Kiến trúc sử dụng – 1× 10× 15× 25–100× phầnmềm Xây dựng – – 1× 10× 10–25× phầnmềm Vai trò Kiểmthửphầnmềm thực nhiều Tester Cho đến năm 1980, thuật ngữ "nhân viên kiểmthửphần mềm" sử dụng thường, sau coi nghề riêng biệt Liên quan đến giai đoạn mục tiêu khác kiểmthửphần mềm[12] vai trò khác thiết lập cho nhà quản lý, trưởng nhóm kiểm thử, nhà phân tích kiểm thử, nhà thiết kế kiểm thử, Tester, nhà phát triển tự động hóa quản trị viên kiểmthử Lịch sử Sự tách biệt việc gỡ lỗi (sửa lỗi, debugging) với kiểmthử (testing) lần Glenford J Myers đưa vào năm 1979 [13] Mặc dù quan tâm ông kiểmthử gián đoạn ("một kiểmthử thành cơng tìm lỗi" [13][14]) minh họa mong muốn cộng đồng công nghệ phầnmềm để tách biệt hoạt động phát triển bản, giống việc tách phần gỡ lỗi riêng khỏi trình kiểmthử Vào năm 1988, Dave Gelperin William C Hetzel phân loại giai đoạn mục tiêu kiểmthửphầnmềm theo trình tự sau:[15] Trước 1956: Hướng việc kiểm soát lỗi.[16] 1957-1978: Hướng chứng minh lỗi.[17] 1979-1982: Hướng tính phá hủy lỗi.[18] 1983–1987: Hướng đánh giá lỗi.[19] 1988–2000: Hướng việc phòng ngừa lỗi.[20] Phương pháp kiểmthửKiểmthử tĩnh động Có nhiều phương pháp để kiểmthửphầnmềm Đánh giá, định hướng kiểm tra gọi kiểmthử tĩnh, việc chạy mã lập trình thực tế tình gọi kiểmthử động Kiểmthử tĩnh thơng thường bỏ qua thực hành kiểmthử động diễn thân chương trình sử dụng Kiểmthử động bắt đầu trước chương trình hồn tất 100% để kiểmthửphần cụ thể mã áp dụng cho chức riêng biệt Module Kỹ thuật điển hình cho điều sử dụng mạch nhánh/trình điều khiển thực môi trường gỡ lỗi định Kiểmthử tĩnh liên quan đến việc kiểm chứng kiểmthử động liên quan đến việc xác nhận Nó giúp cải thiện chất lượng phầnmềm Phương pháp tiếp cận Theo truyền thống phương pháp kiểmthửphầnmềm bắt nguồn từ kiểmthử hộp trắng hộp đen Có hai cách tiếp cận sử dụng để mô tả quan điểm kỹ sư kiểmthử thiết kế Test Case Kiểmthử hộp trắng Bài chi tiết: Kiểmthử hộp trắng Kiểmthử hộp trắng (được biết đến kiểmthử tính rõ ràng hộp, kiểmthử hộp kính, kiểmthử hộp suốt kiểmthử cấu trúc) giúp kiểmthử cấu trúc nội hoạt động chương trình, tương phản với chức bộc lộ người dùng cuối Một góc nhìn nội hệ thống kiểmthử hộp trắng giống kỹ lập trình sử dụng để thiết kế tình kiểmthử Các Tester lựa chọn yếu tố đầu vào để thực đường dẫn thông qua mã xác định kết đầu thích hợp Điều tương tự nút kiểmthử mạch, ví dụ kiểmthử thơng mạch (ICT) Trong kiểmthử hộp trắng áp dụng đơn vị, tích hợp hệ thống cấp độ q trình kiểmthửphần mềm, thường thực cấp đơn vị Nó kiểmthử đường dẫn đơn vị, liên kết đơn vị q trình tích hợp, hệ thống kiểmthử hệ thống cấp Mặc dù phương pháp thiết kế kiểmthử phát nhiều lỗi vấn đề, khơng phát phần chưa thực đặc điểm kỹ thuật yêu cầu thiếu sót Các kỹ thuật sử dụng kiểmthử hộp trắng bao gồm: Kiểmthử API (giao diện lập trình ứng dụng) - kiểmthử ứng dụng có sử dụng API cơng cộng cá nhân Kiểmthử độ bao phủ mã - tạo kiểmthử để đáp ứng số tiêu chí bảo hiểm mã (ví dụ, nhà thiết kế kiểmthử tạo kiểmthử để làm tất câu lệnh chương trình thực lần) Phương pháp chèn lỗi - cố tình đưa lỗi lầm để đánh giá hiệu chiến lược kiểmthử Phương pháp kiểmthử đột biến Phương pháp thử tĩnh Các công cụ bao phủ mã đánh giá đầy đủ kiểmthử tạo phương pháp đó, bao gồm kiểmthử hộp đen Điều cho phép nhóm nghiên cứu phầnmềmkiểmthửphận hệ thống mà kiểmthử đảm bảo điểm chức quan trọng kiểm thử.[21] Bao phủ mã giống phầnmềm metric báo cáo tỷ lệ phần trăm cho: Bao phủ chức năng: dựa vào báo cáo chức thực Bao phủ câu lệnh: dựa vào báo cáo số lượng dòng thực để hoàn thành kiểmthử 100% bao phủ câu lệnh đảm bảo tất đường dẫn mã, nhánh (trong điều kiện luồng điều khiển) thực lần Điều hữu ích việc đảm bảo chức khơng đủ kể từ mã tương tự thực tiến trình xử lý liệu đầu vào khác dù không Kiểmthử hộp đen Bài chi tiết: Kiểmthử hộp đen Sơ đồ hộp đen Kiểmthử hộp đen coi phầnmềm "hộp đen", kiểmthử chức mà không cần kiến thức cấu trúc hành vi bên phầnmềm Các Tester biết phầnmềm phải làm mà khơng biết làm [22] Phương pháp kiểmthử hộp đen bao gồm: Phân vùng tương đương, phân tích giá trị biên, tất cặp kiểm thử, bảng chuyển đổi trạng thái, kiểmthử bảng định, kiểmthử chéo, kiểmthử dựa mơ hình, sử dụng Test Case, thăm dò kiểmthửkiểmthử dựa đặc điểm kỹ thuật Kiểmthử dựa đặc điểm kỹ thuật nhằm mục đích để kiểm tra chức phầnmềm theo yêu cầu ứng dụng.[23] Mức độ kiểmthử thường đòi hỏi Test Case kỹ lưỡng để cung cấp Tester, người mà sau xác minh cách đơn giản giá trị đầu vào đầu (hoặc cách xử lý) giống không so với giá trị kỳ vọng định vị Test Case định Các Test Case xây dựng quanh thông số kỹ thuật yêu cầu đề xuất, tức tất ứng dụng phải làm Nó sử dụng để mô tả mở rộng phầnmềm bao gồm thông số kỹ thuật, yêu cầu thiết kế bắt nguồn Test Case Các kiểmthử chức phi chức Kiểmthử dựa đặc điểm kỹ thuật cần thiết để đảm bảo chức xác, khơng đủ để bảo vệ chống lại tình phức tạp có độ rủi ro cao.[24] Một lợi kỹ thuật kiểmthử hộp đen khơng u cầu thiết phải có kiến thức lập trình Các Tester tiến hành kiểmthử khu vực chức khác phầnmềm mà khơng liên quan đến lập trình viên Mặt khác, kiểmthử hộp đen cho "đi mê cung tối tăm mà đèn pin" [25] Bởi họ khơng kiểmthử mã nguồn có nhiều tình Tester kiểmthử tính vài trường hợp khơng kiểmthử tồn hoạt động chương trình Phương pháp kiểmthử áp dụng cho tất cấp kiểmthửphần mềm: đơn vị, tích hợp, hệ thống chấp nhận Nó khơng thể thực tất kiểmthử cấp độ cao tạo ưu tốt kiểmthử đơn vị Kiểmthử trực quan Mục đích kiểmthử trực quan cung cấp nhà phát triển khả kiểm sốt xảy thời điểm phầnmềm thất bại theo cách mà họ nhìn thấy thơng tin u cầu rõ ràng dễ hiểu nhất.[26][27] Cốt lõi kiểmthử trực quan ý tưởng giúp nhận vấn đề (hoặc kiểmthử thất bại) thay mơ tả từ giúp cho rõ ràng hiểu biết tăng lên đáng kể Kiểmthử trực quan ln u cầu phải ghi lại tồn tiến trình kiểmthử – chụp lại tất thứ xảy hệ thống định dạng video Các video đầu bổ sung thời gian kiểmthử thực tế đầu vào thông qua hình ảnh từ webcam âm từ micro Kiểmthử trực quan cung cấp số lợi như: Chất lượng giao tiếp tăng lên đáng kể Tester giúp cho nhà phát triển nhìn rõ vấn đề xảy (và kiện dẫn đến nó) khơng phải mơ tả chung chung cần phải sửa chữa lỗi để khơng tồn nhiều trường hợp khác Các nhà phát triển có tất chứng yêu cầu kiểmthử lỗi tập trung vào nguyên nhân gây lỗi làm để cố định Kiểmthử trực quan đặc biệt phù hợp cho môi trường mà triển khai theo phương pháp AGILE phát triển phầnmềm đòi hỏi việc giao tiếp tốt Tester nhà phát triển cộng tác nhóm nhỏ với [cần dẫn nguồn] Kiểmthử Ad hoc kiểmthử thăm dò phương pháp quan trọng để kiểmthử tình trạng nguyên vẹn phầnmềm chúng đòi hỏi chuẩn bị thời gian để thực thi lỗi quan trọng phải tìm thấy cách nhanh chóng Trong kiểmthử Ad hoc địa điểm kiểmthử vị trí khơng định trước với khả công cụ kiểmthử trực quan giúp ghi lại tất xảy hệ thống trở nên quan trọng.[cần giải thích][cần dẫn nguồn] Kiểmthử trực quan tập trung nhận diện kiểmthử chấp nhận khách hàng tính khả dụng phầnmềmkiểmthử nhiều cá nhân liên quan sử dụng trình phát triển [cần dẫn nguồn] Đối với khách hàng, trở nên dễ dàng để cung cấp báo cáo lỗi chi tiết thông tin phản hồi người sử dụng chương trình kiểmthử trực quan ghi lại hành động người dùng tiếng nói hình ảnh họ để cung cấp tranh hoàn chỉnh thời điểm phầnmềm thất bại cho nhà phát triển Kiểmthử hộp xám Kiểmthử hộp xám liên quan đến hiểu biết cấu trúc liệu bên thuật toán cho mục đích kiểmthử thiết kế Khi thực kiểmthử với User mức độ hộp đen, Tester không thiết phải truy cập vào mã nguồn phần mềm.[28] Ta thao tác với liệu đầu vào định dạng đầu khơng xác định hộp xám đầu vào đầu rõ ràng bên "hộp đen" mà chúng hệ thống gọi trình kiểmthử Sự phân biệt đặc biệt quan trọng tiến hành kiểmthử tích hợp hai Module viết mã hai nhà phát triển khác nhau, mà có giao diện bộc lộ để kiểmthử Tuy nhiên, kiểmthử mà yêu cầu thay kho lưu trữ liệu back-end sở liệu tập tin đăng nhập không xác định hộp xám, người dùng thay đổi kho lưu trữ liệu sản phẩm hoạt động bình thường Kiểmthử hộp xám bao gồm kỹ thuật đảo ngược để xác định đối tượng, giá trị biên thông báo lỗi Khi biết khái niệm cách thức phầnmềm hoạt động nào, Tester thực kiểmthửphầnmềm từ bên tốt so với bên thường, Tester hộp xám phép thiết lập môi trường kiểmthử bị cô lập với hoạt động gieo sở liệu Các kiểmthử quan sát trạng thái sản phẩm kiểmthử sau thực hành động định giống việc thực câu lệnh SQL sở liệu sau thực truy vấn để đảm bảo thay đổi dự kiến phản ánh Kiểmthử hộp xám thực kịch kiểmthử thông minh, dựa thông tin hạn chế Điều đặc biệt áp dụng cho kiểu xử lý liệu, kể xử lý ngoại lệ, [29] Các mức kiểmthửKiểmthử thường xuyên nhóm lại theo địa điểm chúng thêm vào trình phát triển phần mềm, mức độ đặc hiệu kiểmthử Các cấp q trình phát triển theo quy định hướng dẫn SWEBOK đơn vị, kiểmthử hội nhập, kiểmthử hệ thống phân biệt mục tiêu kiểmthử mà không ám mơ hình quy trình cụ thể Các mức độ kiểmthử khác phân loại theo mục tiêu kiểmthửKiểmthử đơn vị Bài chi tiết: Kiểmthử đơn vị Kiểmthử đơn vị hay gọi kiểmthử thành phần, đề cập đến việc kiểmthử chức phần mã, thường mức độ chức Trong môi trường hướng đối tượng điều thường cấp độ lớp, kiểmthử đơn vị tối thiểu bao gồm hàm dựng hàm hủy Nhiều loại kiểmthử viết nhà phát triển họ làm việc mã (kiểu hộp trắng) để đảm bảo hàm riêng biệt hoạt động kỳ vọng Một hàm có nhiều kiểmthử từ giúp nắm bắt trường hợp góc nhánh Code Kiểmthử đơn vị khơng thể đảm bảo hết chức phậnphần phềm sử dụng để đảm bảo khối kiến trúc phầnmềm hoạt động độc lập với Kiểmthử đơn vị q trình phát triển phầnmềm có liên quan đến ứng dụng đồng loạt chiến lược phòng ngừa phát lỗi để giảm thiểu rủi ro, thời gian chi phí Nó thực kỹ sư hay nhà phát triển suốt giai đoạn xây dựng vòng đời phát triển phầnmềm Không tập trung vào việc đảm bảo chất lượng truyền thống mà phải gia tăng lên kiểmthử đơn vị có mục đích loại bỏ lỗi cấu trúc trước mã hóa thúc đẩy việc quản lý chất lượng Chiến lược nhằm nâng cao chất lượng hiệu phầnmềm tiến trình quản lý phát triển chung Kiểm tra khối lượng cách để kiểm tra chức phầnmềm số thành phần (ví dụ tập tin sở liệu) tăng triệt để kích thước Kiểmthử độ căng cách để kiểm tra độ bền đột xuất gặp theo khối lượng cơng việc Kiểmthử tính ổn định (thường tham chiến lượng tảikiểmthử độ bền) giúp kiểm tra xem phầnmềm hoạt động tốt liên tục chu kỳ chấp nhận Có quy ước mục tiêu cụ thể kiểmthử hiệu suất là: Các thuật ngữ lượng tải, kiểmthử hiệu suất, kiểmthử tính mở rộng kiểmthử khối lượng, thường sử dụng thay cho Hệ thống phầnmềm thời gian thực có ràng buộc xác thời gian Để kiểmthử ràng buộc thời gian đáp ứng người ta dùng phương pháp kiểmthử thời gian thực Kiểmthử tính khả dụng Kiểm tra tính khả dụng cần thiết để kiểm tra xem giao diện có tiện dụng dễ hiểu với người dùng khơng, liên quan trực chủ yếu đến lực sử dụng ứng dụng Kiểmthử khả tiếp cận Kiểmthử khả tiếp cận bao gồm việc tuân thủ tiêu chuẩn sau: Người Mỹ với Đạo luật bất khả thi năm 1990 Mục 508 sửa đổi đạo luật Phục hồi năm 1973 Sáng kiến tiếp cận Web (WAI) World Wide Web Consortium (W3C) Kiểmthử bảo mật Kiểmthử bảo mật phầnmềm cần thiết việc xử lý liệu mật ngăn chặn hacker xâm nhập hệ thống Tính tồn cầu địa hóa Khả tổng quát phầnmềm tồn cầu địa hóa tự động kiểm tra mà không dịch thực tế, cách sử dụng phương thức giả địa Nó xác minh ứng dụng hoạt động, sau dịch sang ngơn ngữ thích nghi với văn hóa (chẳng hạn tiền tệ múi khác nhau) Việc thực dịch nhiều ngôn ngữ phải kiểm tra Sự cố địa hóa bao gồm: Phầnmềm thường địa hóa cách dịch danh sách chuỗi khỏi bối cảnh, người dịch chọn dịch sai chuỗi mã nguồn không rõ ràng Thuật ngữ kỹ thuật trở nên khơng phù hợp dự án phiên dịch số người phối hợp không tốt người dịch thiếu thận trọng Những dịch từ ngữ theo nghĩa đen không phù hợp, giả tạo kỹ thuật mục tiêu ngôn từ Thông điệp chưa dịch ngơn ngữ gốc khó mã hố mã nguồn Một số thơng điệp tạo tự động thời gian chạy chuỗi kết sai ngữ pháp chức khơng xác, dễ gây hiểu lầm khó hiểu Phầnmềm sử dụng phím tắt mà khơng có chức layout phím ngôn ngữ nguồn lại sử dụng để gõ ký tự layout ngôn ngữ mục tiêu Phầnmềm thiếu hỗ trợ cho ký tự mã hóa ngơn ngữ mục tiêu Phơng chữ kích thức chữ phù hợp ngơn ngữ nguồn khơng phù hợp ngơn ngữ mục tiêu Ví dụ, ký tự CJK không đọc font chữ nhỏ Một chuỗi ngơn ngữ mục tiêu kéo dài so với xử lý phầnmềm Điều làm cho phần chuỗi bị ẩn với người dùng gây số va chạm cố với phầnmềm Phầnmềm thiếu hỗ trợ thích hợp cho việc đọc viết văn hai chiều Phầnmềm hiển thị hình ảnh với văn mà khơng địa hóa Những hệ điều hành địa khác cách đặt tên file cấu hình hệ thống, biến mơi trường định dạng khác cho ngày tháng tiền tệ Kiểmthử phát triển Kiểmthử phát triển tiến trình phát triển phầnmềm có liên quan đến ứng dụng đồng loạt chiến lược phòng ngừa phát lỗi để giảm thiểu rủi ro thời gian chi phí Nó thực kỹ sư nhà phát triển giai đoạn xây dựng vòng đời phát triển phầnmềm Không thay trọng tâm QA truyền thống mà phải bổ sung Kiểmthử phát triển nhằm mục đích loại bỏ lỗi xây dựng trước mã đẩy mạnh QA, chiến lược nhằm nâng cao chất lượng phầnmềm hiệu phát triển chung trình QA Tùy thuộc vào kỳ vọng tổ chức phát triển phần mềm, kiểm tra phát triển bao gồm phân tích mã tĩnh, phân tích luồng liệu, phân tích số liệu, đánh giá mã cân bằng, kiểmthử đơn vị, phân tích mã bao phủ, truy xuất nguồn gốc, thực hành xác minh phầnmềm khác Kiểmthử A/B Kiểmthử A/B phương pháp sử dụng quảng cáo thí nghiệm ngẫu nhiên với hai biến thể A B, có kiểm sốt điều trị kiểmthử có kiểm sốt Những thí nghiệm thường sử dụng phát triển web tiếp thị, nhiều hình thức quảng cáo truyền thống QUY TRÌNH KIỂMTHỬ Mơ hình truyền thống CMMI mơ hình phát triển thác nước Một thực tế phổ biến kiểmthửphầnmềmkiểmthử thực nhóm Tester độc lập sau chức phát triển trước chuyển tới khách hàng Thực hành thường kết giai đoạn kiểmthử sử dụng đệm tham chiếu để bù đắp cho độ trễ tham chiếu ảnh hưởng đến thời gian dành cho việc kiểmthử Một thực tế khác khởi động kiểmthửphầnmềm thời điểm bắt đầu dự án trình liên tục dự án kết thúc Mơ hình phát triển Agile or Extreme Ngược lại, số quy tắc phầnmềm lên lập trình cực đoan chuyển động phát triển phầnmềm AGILE, tn thủ mơ hình "Test – Driven Development " (TDD) Trong quy trình này, kiểmthử đơn vị viết kỹ sư phầnmềm (thường lập trình song song phương pháp lập trình Extreme) Tất nhiên kiểmthử bước đầu thất bại dự kiến, sau Code viết xong phần lớn Test Suite bước tăng lên Nó cập nhật lỗi điều kiện trường hợp tiềm ẩn vừa phát ra, chúng tích hợp với kiểmthử hồi quy phát triển Kiểmthử đơn vị trì với phần lại mã nguồn phầnmềm tích hợp chung vào q trình xây dựng (với kiểmthử tương tác vốn bị loại bỏ q trình xây dựng mức chấp nhận thơng thường) Mục tiêu cuối trình kiểmthử để đạt việc triển khai liên tục mà cập nhật phầnmềm cơng bố cho công chúng thường xuyên Phương pháp làm tăng nỗ lực kiểmthử trước động đến nhóm kiểmthử thức Trong số mơ hình phát triển khác, hầu hết việc thực hành kiểmthử xảy sau yêu cầu xác định q trình mã hóa hồn thành Mơ hình từ xuống mơ hình từ lên Kiểmthử từ lên cách tiếp cận để kiểmthử tích hợp nơi thành phần tồn cấp độ thấp (Các Module, biện pháp chức năng) kiểmthử đầu tiên, sau tích hợp sử dụng để tạo thuận lợi cho việc kiểmthử thành phần cấp cao Sau kiểmthử tích hợp Module cấp độ thấp tiến hành kiểmthử cấp độ Quá trình lặp lặp lại thành phần trật tự hệ thống kiểm tra Cách tiếp cận hữu ích tất hầu hết Module có cấp độ phát triển tương đương sẵn sàng kiểmthử Phương pháp giúp xác định cấp độ phát triển phầnmềm làm cho dễ dàng để báo cáo tiến độ kiểmthử theo tỷ lệ phần trăm Kiểmthử từ xuốnglà cách tiếp cận để kiểmthử tích hợp Module đầu với Module nhánh kiểm tra bước kết thúc Module liên quan rong hai phương pháp trình điều khiển sử dụng để cố định thành phần bị thiếu sót hồn thiện cấp độ thay Một chu kỳ kiểmthử mẫu Dẫu cho biến thể tồn tổ chức lập trình có quy trình điển hình để kiểmthử Mẫu phổ biến tổ chức sử dụng mơ hình phát triển Waterfall (thác nước) Các hoạt động tương tự thường tìm thấy mơ hình phát triển khác, có khơng rõ ràng Phân tích u cầu: Kiểmthử thường bắt đầu lấy yêu cầu giai đoạn vòng đời phát triển phầnmềm Trong giai đoạn thiết kế, Tester làm việc với nhà phát triển để xác định khía cạnh thiết kế kiểm chứng thông số kiểm tra Lập kế hoạch kiểm thử: Chiến lược kiểm thử, kế hoạch kiểm thử, kiểmthử sáng tạo… Và có kế hoạch cần thiết nhiều hoạt động thực thời gian kiểmthử Kiểmthử phát triển: Các quy trình kiểm thử, kịch bản, Test Case, liệu sử dụng kiểmthửphầnmềm Kiểmthử thực hiện: Dựa kế hoạch, văn kiểmthử báo cáo lỗi tìm thấy cho nhóm phát triển Kiểmthử báo cáo: Sau hoàn tất kiểm thử, Tester tạo số liệu báo cáo cuối nỗ lực kiểmthử họ có sẵn sàng phát hành phầnmềm hay khơng Phân tích kết kiểmthửphân tích thiếu sót thực đội ngũ phát triển kết hợp với khách hàng để đưa định xem thiếu sót cần phải chuyển giao, cố định từ bỏ (tức tìm phầnmềm hoạt động xác) giải sau Test lại khiếm khuyết: Khi khiếm khuyết xử lý đội ngũ phát triển, phải kiểm tra lại nhóm kiểmthử Kiểmthử hồi quy: Người ta thường xây dựng chương trình kiểmthử nhỏ tập hợp kiểm tra cho tích hợp mới, sửa chữa cố định phần mềm, để đảm bảo cung cấp không phá hủy điều tồn phầnmềm hoạt động cách xác Kiểmthử đóng gói: Mỗi phép thử thỏa mãn tiêu truy xuất thu kết quan như: học kinh nghiệm, kết quả, ghi, tàiliệu liên quan lưu trữ sử dụng tàiliệu tham khảo cho dự án tương lai Kiểmthử tự động hóa Nhiều nhóm lập trình ngày dựa vào kiểmthử tự động, đặc biệt nhóm sử dụng mơ hình TDD (Test – Drive – Development) Có nhiều framework viết bên mã phiên chạy kiểmthử tự động lúc tích hợp liên tục phầnmềm Khi kiểmthử tự động chép tất thứ người làm (và tất cách họ nghĩ để làm việc đó) hữu ích cho việc kiểmthử hồi quy Tuy nhiên, đòi hỏi phải có kịch phát triển tốt để tiến hành kiểmthử Các công cụ kiểmthử Chương trình kiểmthử phát lỗi hỗ trợ đáng kể công cụ kiểmthử gỡ lỗi Các công cụ kiểm thử/gỡ lỗi bao gồm tính như: Những hình chương trình cho phép giám sát tồn phần mã chương trình gồm: o Lệnh thiết lập simulator cho phép giám sát hoàn chỉnh cấp hướng dẫn thiết bị vi lượng o Hình ảnh chương trình cho phép thực bước ngắt đoạn có điều kiện cấp nguồn mã máy o Các báo cáo độ bao phủ mã Các công cụ gỡ lỗi biểu tượng kết xuất định dạng cho phép kiểm tra biến chỗ lỗi điểm lựa chọn Các công cụ kiểmthử GUI chức tự động sử dụng để lặp lại mức độ kiểm tra hệ thống thông qua GUI (giao diện đồ họa) Điểm định chuẩn cho phép so sánh hiệu suất chạy thực hoạt động Phân tích hiệu suất (hoặc cơng cụ định hình) giúp làm bật điểm tới hạn sử dụng tài ngun Một số tính kết hợp vào mơi trường phát triển tích hợp (IDE) Đo lường kiểmthửphầnmềm Thông thường, chất lượng bị hạn chế đến chủ đề tính xác, tính hồn chỉnh tính bảo mật bao gồm yêu cầu kỹ thuật mô tả tiêu chuẩn ISO (ISO / IEC 9126), chẳng hạn khả năng, độ tin cậy, hiệu quả, tính di động, độ bảo trì, khả tương thích khả sử dụng Có số số liệu thường sử dụng độ đo phần mềm, biện pháp sử dụng để hỗ trợ việc xác định tình trạng phầnmềm tính đầy đủ kiểmthửKiểmthử thành phần lạ Quá trình kiểmthửphầnmềm tạo số thành phần lạ Kế hoạch kiểmthử Một kiểmthử đặc điểm kỹ thuật gọi kế hoạch kiểmthử Các nhà phát triển nhận thức rõ kế hoạch kiểmthử thực thông tin cung cấp cho nhà quản lý nhà phát triển Ý tưởng để làm cho họ thận trọng phát triển mã họ làm thay đổi bổ sung Một số cơng ty có tàiliệu cao cấp gọi chiến lược kiểmthử Ma trận truy xuất nguồn gốc Một ma trận truy xuất nguồn gốc bảng tương quan yêu cầu tàiliệu thiết kế tàiliệukiểmthử Nó sử dụng để thay đổi kiểm tra nguồn tàiliệu liên quan thay đổi, chọn Test Case để thực lập kế hoạch để kiểmthử hồi quy cách xem yêu cầu độ bao phủ Tình kiểmthử (Test Case) Một Test Case thông thường bao gồm ký hiệu nhận dạng nhất, tàiliệu tham khảo yêu cầu từ thông số thiết kế, điều kiện tiền đề, kiện, loạt bước (còn gọi hành động) để làm theo, đầu vào, đầu ra, kết dự kiến, kết thực tế Lâm sàng xác định Test Case đầu vào kết kỳ vọng Hiểu cách đơn giản Test Case có liệu đầu vào có kết đầu Điều có thực tế "cho điều kiện X kết bắt nguồn lại bạn Y", Test Case khác mô tả chi tiết kịch đầu vào kỳ vọng kết Nó đơi loạt bước (nhưng thường chứa thủ tục kiểm tra riêng biệt mà thực nhiều Test Case) tương ứng với loạt kết kỳ vọng Kịch kiểmthử Kịch kiểmthửthử tục mà lập trình viên chép thao tác người dùng Ban đầu, thuật ngữ bắt nguồn từ sản phẩm công việc tạo công cụ kiểmthử hồi quy tự động Test Case sở để tạo kịch kiểmthử sử dụng công cụ chương trình Bộ kiểmthử Các thuật ngữ phổ biến sưu tập Test Case kiểmthử Các kiểmthử thường hướng dẫn chi tiết có mục tiêu cho sưu tập Test Case Nó chắn có phần mà thử nghiệm xác định cấu hình hệ thống sử dụng q trình test Một nhóm Test Case chứa trạng thái bước điều kiện tiên quyết, mô tả kiểmthử sau Kiểmthử thiết bị cố định liệu Trong hầu hết trường hợp, nhiều giá trị liệu sử dụng để kiểm tra chức tương tự tính đặc biệt Tất giá trị kiểmthử thành phần môi trường thay đổi thu thập tập tin riêng biệt lưu trữ liệukiểmthử Nó hữu ích để cung cấp liệu cho khách hàng cho sản phẩm dự án Kiểmthử an tồn Phần mềm, cơng cụ, mẫu liệu đầu vào đầu ra, cấu hình gọi chung kiểmthử an toàn Những chứng nhận Một số chương trình chứng nhận hành hỗ trợ Tester chuyên gia bảo đảm chất lượng phầnmềm trì khát vọng nghề nghiệp Những đòi hỏi nghề nghiệp khả kiến thức khiến số người không thực sẵn sàng Và không đủ lực kiến thức mà làm chắn ảnh hưởng đến chất lượng tính chuyên nghiệp phầnmềm Các loại giấy chứng nhận kiểmthửphầnmềm Dựa vào thi cử: Bạn cần phải vượt qua kỳ thi thức tự học (ví dụ cho ISTQB – Hội đồng đánh giá trình độ chun mơn kiểmthửphầnmềm quốc tế hay QAI – Viện bảo đảm chất lượng) Dựa vào giáo dục: Thông qua giảng hướng dẫn khóa học giúp bạn chứng nhận (ví dụ: Viện nghiên cứu quốc tế kiểmthửphần mềm) Các giấy chứng nhận kiểmthử Hiệp hội chứng nhận kiểmthửphầnmềm (CAST) cung cấp Viện bảo đảm chất lượng CATe cung cấp Viện quốc tế kiểmthửphầnmềm Chứng nhận quản lý kiểmthửphầnmềm (CMST) cung cấp Viện bảo đảm chất lượng Chứng nhận quản lý kiểmthử (CTM) cung cấp Viện quốc tế kiểmthửphầnmềm Chứng nhận phầnmềm Tester (CSTE) cung cấp Viện Đảm bảo chất lượng Chứng nhận thử nghiệm phầnmềm chuyên nghiệp (CSTP) cung cấp Viện quốc tế kiểmthửphầnmềm CSTP (TM) (phiên Australia) cung cấp KJ Ross & Associates ISEB cung cấp Hội đồng hệ thống thông tin thi cử ISTQB Certified Tester, Quỹ Cấp (CTFL) cung cấp phầnmềmkiểm tra Hội đồng Văn quốc tế ISTQB Certified Tester, Cao cấp (CTAL) cung cấp phầnmềmkiểm tra Hội đồng Văn quốc tế Quỹ TMPF TMap Next theo cung cấp Viện Kiểm tra Khoa học Thông tin TMPA TMap Next Advanced cung cấp Viện Kiểm tra Khoa học Thông tin Chứng nhận đảm bảo chất lượng CMSQ cung cấp Viện Bảo đảm Chất lượng (QAI) CSQA cung cấp Viện Bảo đảm Chất lượng (QAI) CSQE cung cấp Hiệp hội chất lượng Hoa Kỳ (ASQ) CQIA cung cấp Hiệp hội chất lượng Hoa Kỳ (ASQ) Sự tranh luận Một số tranh luận kiểmthửphầnmềm chủ yếu bao gồm: Kiểmthửphầnmềm chịu trách nhiệm tạo nên gì? Thành viên trường kiểmthử "bối cảnh theo định hướng" tin khơng có "các thực hành tốt nhất" mà tập hợp kỹ cho phép thử nghiệm để chọn phát minh thực hành kiểmthử phù hợp với hoàn cảnh đặc biệt AGILE so với Truyền thống Các Tester nên học cách làm việc điều kiện không chắn thay đổi liên tục họ nên nhắm vào trình "trưởng thành"? Phong trào kiểmthử AGILE phổ biến ngày tăng kể từ năm 2006 chủ yếu giới thương mại, việc cung cấp phầnmềm sử dụng phương pháp cho phủ quân mà mơ hình thử nghiệm, lựa chọn cuối kiểmthử theo truyền thống (ví dụ mơ hình thác nước) Thăm dò kiểmthử so với kịch Các test phải thiết kế đồng thời chúng thực họ cần thiết kế trước? Hướng dẫn kiểmthử so với tự động Một số tác giả tin kiểmthử tự động hóa đắt so với giá trị mà nên sử dụng cách tiết kiệm Thêm nữa, quốc gia phát triển kiểmthử điều khiển nhà phát triển phải viết đơn vị kiểmthử xUnit, trước mã hóa chức Các kiểmthử sau coi cách để nắm bắt thực yêu cầu Thiết kế phầnmềm so với thực phầnmềmKiểmthử nên thực cuối suốt trình? Ai quan sát? Ý tưởng hình thức quan sát kiểmthử tương tác hành động nhìn thấy ảnh hưởng kiểmthử Quy trình liên quan Kiểmthửphầnmềm sử dụng kết hợp với xác minh xác nhận Xác minh: Chúng ta xây dựng quyền phần mềm? (nghĩa là, thực yêu cầu) Xác nhận: Chúng xây dựng phần mềm? (nghĩa là, không đáp ứng yêu cầu khách hàng) Các điều khoản xác minh xác nhận thường sử dụng thay cho ngành cơng nghiệp, mà phổ biến để xem hai thuật ngữ không quy định Theo chuẩn IEEE Thuật ngữ Công nghệ Phần Mềm: Xác minh trình đánh giá hệ thống hay thành phần để xác định xem sản phẩm giai đoạn phát triển định đáp ứng điều kiện áp đặt lúc bắt đầu giai đoạn Xác nhận trình đánh giá hệ thống hay cấu phần hay cuối trình phát triển để xác định xem đáp ứng yêu cầu quy định Theo tiêu chuẩn ISO 9000: Xác minh khẳng định cách kiểm tra thông qua cung cấp chứng khách quan yêu cầu cụ thể thực Xác nhận khẳng định cách kiểm tra thông qua cung cấp chứng khách quan yêu cầu cho mục đích sử dụng cụ thể ứng dụng hoàn thành Đảm bảo chất lượng phầnmềm (SQA) Kiểmthửphầnmềmphần tiến trình bảo đảm chất lượng phầnmềm (SQA) Trong SQA, phầnmềm chuyên xử lý kiểm toán viên quan tâm đến trình phát triển phầnmềm vật tài liệu, mã số hệ thống Họ kiểm tra thay đổi phầnmềm quy trình kỹ thuật riêng để giảm số lượng lỗi mà kết thúc phầnmềm gửi: gọi "tỷ lệ khiếm khuyết" Tạo nên mà "tỷ lệ lỗi chấp nhận được" phụ thuộc vào chất phần mềm, chuyến bay mô trò chơi video có khả chịu lỗi cao nhiều so với phầnmềm cho máy bay thực tế Mặc dù có liên kết chặt chẽ với SQA, phòng kiểmthử thường tồn cách độc lập, khơng có chức SQA số công ty Kiểmthửphầnmềm nhiệm vụ có ý định để phát lỗi phầnmềm cách đối chiếu kết kỳ vọng từ chương trình máy tính với kết thực tế cho tập hợp yếu tố đầu vào Ngược lại, bảo đảm chất việc thực sách thủ tục nhằm ngăn ngừa khiếm khuyết xảy nơi Xem thêm Hiệp Hội Kiểm Định Kiểm Tra PhầnMềm Quốc tế Tham khảo ^ Exploratory Testing, Cem Kaner, Florida Institute of Technology, Quality Assurance Institute Worldwide Annual Software Testing Conference, Orlando, FL, November 2006 ^ Software Testing by Jiantao Pan, Carnegie Mellon University ^ Leitner, A., Ciupa, I., Oriol, M., Meyer, B., Fiva, A., "Contract Driven Development = Test Driven Development – Writing Test Cases", Proceedings of ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007, (Dubrovnik, Croatia), September 2007 ^ a ă Kaner, Cem; Falk, Jack and Nguyen, Hung Quoc (1999) Testing Computer Software, 2nd Ed New York, et al: John Wiley and Sons, Inc tr 480 pages ISBN 0-471-35846-0 Lỗi thích: Thẻ không hợp lệ: tên “Kaner1” định rõ nhiều lần, lần có nội dung khác ^ Kolawa, Adam; Huizinga, Dorota (2007) Automated Defect Prevention: Best Practices in Software Management Wiley-IEEE Computer Society Press tr 41–43 ISBN 0-470-04212-5 ^ Kolawa, Adam; Huizinga, Dorota (2007) Automated Defect Prevention: Best Practices in Software Management Wiley-IEEE Computer Society Press tr 426 ISBN 0-470-04212-5 ^ Section 1.1.2, Certified Tester Foundation Level Syllabus, International Software Testing Qualifications Board ^ Principle 2, Section 1.3, Certified Tester Foundation Level Syllabus, International Software Testing Qualifications Board ^ “Proceedings from the 5th International Conference on Software Testing and Validation (ICST) Software Competence Center Hagenberg "Test Design: Lessons Learned and Practical Implications.” ^ Software errors cost U.S economy $59.5 billion annually, NIST 10 report 11 12 13 ^ McConnell, Steve (2004) Code Complete (ấn 2) Microsoft Press tr 29 ISBN 0-7356-1967-0 ^ see D Gelperin and W.C Hetzel ^ a ă Myers, Glenford J (1979) The Art of Software Testing John Wiley and Sons ISBN 0-471-04328-1 14 ^ Company, People's Computer (1987) “Dr Dobb's journal of software tools for the professional programmer” Dr Dobb's journal of software tools for the professional programmer (M&T Pub) 12 (1–6): 116 15 ^ Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6): 687 ISSN 0001-0782 doi:10.1145/62959.62965 16 ^ until 1956 it was the debugging oriented period, when testing was often associated to debugging: there was no clear difference between testing and debugging Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6) ISSN 0001-0782 17 ^ From 1957–1978 there was the demonstration oriented period where debugging and testing was distinguished now – in this period it was shown, that software satisfies the requirements Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6) ISSN 0001-0782 18 ^ The time between 1979–1982 is announced as the destruction oriented period, where the goal was to find errors Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6) ISSN 0001-0782 19 ^ 1983–1987 is classified as the evaluation oriented period: intention here is that during the software lifecycle a product evaluation is provided and measuring quality Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6) ISSN 0001-0782 20 ^ From 1988 on it was seen as prevention oriented period where tests were to demonstrate that software satisfies its specification, to detect faults and to prevent faults Gelperin, D.; B Hetzel (1988) “The Growth of Software Testing” CACM 31 (6) ISSN 0001-0782 21 ^ Introduction, Code Coverage Analysis, Steve Cornett 22 ^ Ron, Patton Software Testing 23 ^ Laycock, G T (1993) “The Theory and Practice of Specification Based Software Testing” (PostScript) Dept of Computer Science, Sheffield University, UK Truy cập ngày 13 tháng năm 2008 24 ^ Bach, James (tháng năm 1999) “Risk and Requirements-Based Testing” (PDF) Computer 32 (6): 113–114 Truy cập ngày 19 tháng năm 2008 25 ^ Savenkov, Roman (2008) How to Become a Software Tester Roman Savenkov Consulting tr 159 ISBN 978-0-615-23372-7 26 ^ “Visual testing of software – Helsinki University of Technology” (PDF) Truy cập ngày 13 tháng năm 2012 27 ^ “Article on visual testing in Test Magazine” Testmagazine.co.uk Truy cập ngày 13 tháng năm 2012 28 29 ^ Patton, Ron Software Testing ^ “SOA Testing Tools for Black, White and Gray Box SOA Testing Techniques” Crosschecknet.com Truy cập ngày 10 tháng 12 năm 2012 ... phần mềm, biện pháp sử dụng để hỗ trợ việc xác định tình trạng phần mềm tính đầy đủ kiểm thử Kiểm thử thành phần lạ Q trình kiểm thử phần mềm tạo số thành phần lạ Kế hoạch kiểm thử Một kiểm thử. .. xuất phần mềm Kiểm thử Alpha thường sử dụng cho phần mềm đại trà (đóng gói sẵn để bán) hình thức kiểm thử mức chấp nhận nội trước phần mềm thức vào giai đoạn kiểm thử Beta Kiểm thử Beta Kiểm thử. .. Các mức độ kiểm thử khác phân loại theo mục tiêu kiểm thử Kiểm thử đơn vị Bài chi tiết: Kiểm thử đơn vị Kiểm thử đơn vị hay gọi kiểm thử thành phần, đề cập đến việc kiểm thử chức phần mã, thường