1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Vai trò của kiểm thử tự động trong quy trình kiểm thử phần mềm

73 37 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HUỆ VAI TRÕ CỦA KIỂM THỬ TỰ ĐỘNG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ Hà Nội - 2012 ĐẠI HỌC QUỐC2 GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HUỆ VAI TRÕ CỦA KIỂM THỬ TỰ ĐỘNG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ Ngành Chuyên ngành Mã số CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ PHẦN MỀM 60 48 10 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Đặng Văn Hưng Hà Nội - 2012 BẢNG CÁC CHỮ VIẾT TẮT DANH SÁCH CÁC HÌNH VÀ BẢNG BIỂU – 1.1 Đ 1.2 N 1.3 C CHƢƠNG – QUY TRÌNH KIỂM THỬ PHẦN MỀM 2.1 QUY TRÌNH PHÁT TRIểN PHầN MềM: 2.2 QUY TRÌNH KIểM THử PHầN MềM 2.3 G 2.4 CÁC Kỹ THUậT KIểM THử PHầN MềM 2.4.1 Kiểm thử hộp trắng (White-box) CHƢƠNG –TỰ ĐỘNG HÓA KIỂM THỬ PHẦN MỀM 3.1 ĐịNH NGHĨA: 3.2 MƠ HÌNH CHUNG CủA Tự ĐộNG HĨA KIểM THử PHầN MềM 3.3 CÔNG Cụ KIểM THử Tự ĐộNG 3.3.1 3.3.2 3.3.3 3.4 CHUN MƠN HĨA CON NGƯờI 3.5 CHI PHÍ TRONG KIểM THử Tự ĐộNG PHầN MềM 3.6 MộT Số HạN CHế TRONG Tự ĐộNG HÓA KIểM THử Lý sử dụng công cụ kiểm thử Các bước thực kiểm thử tự động Công cụ hỗ trợ quy trình kiểm thử ph CHƢƠNG – TÌM HIểU CƠNG Cụ TESTCOMPLETE 4.1 L 4.2 H 4.3 C 4.4 N 4.5 S 4.6 CÁC BƯớC TạO MộT Dự ÁN KIểM THử VớI TESTCOMPLETE 4.7 V 4.8 ĐÁNH GIÁ CƠNG Cụ KIểM THử TESTCOMPLETE 4.8.1 So với mơ hình chung kiểm thử tự động 4.8.2 So với công cụ kiểm thử khác 4.9 NGHIÊN CứU Kỹ THUậT KIểM CHứNG THIếT Kế TESTCOMPLETE9 SCRIPT TESTCOMPLETE9 4.9.3 Ví dụ minh họa: CHƢƠNG – O BẢNG CÁC CHỮ VIẾT TẮT Từ viết tắt ECG PDA ADL SAECA UML DANH SÁCH CÁC HÌNH VÀ BẢNG BIỂU Số Tên hình/bả Hình 2.1 Quy trình k Hình 2.2 Mơ hình ch Hình 3.1 Mơ hình ch Hình 3.2 Cơng cụ hỗ Hình 4.1 Giao diện P Hình 4.2 Cửa sổ làm Hình 4.3 Hình 4.4 Đối tượng P Hình 4.5 Ứng dụng h Hình 4.6 Ứng dụng h Hình 4.7 Giao diện P Hình 4.8 Hộp thoại C Hình 4.9 Xác định ứn Hình 4.10 Thêm ứng d Hình 4.11 Thêm tùy ch Hình 4.12 Thiết lập ch Hình 4.13 Chọn ngơn Hình 4.14 Hộp thoại g Hình 4.15 Chức A Hình 4.16 Thực c Hình 4.17 Giao diện q Hình 4.18 Hộp thoại c Hình 4.19 Giao diện h Hình 4.20 Giao diện tạ Hình 4.21 Nội dung ca Hình 4.22 Giao diện T Hình 4.23 Hình 4.24 Giao diện V Giao diện h Hình 4.25 Hình 4.26 Thao tác đă Thao tác ch Hình 4.27 Hình 4.28 Hình 4.29 Tổ chức cấu Giao diện h Cửa sổ hiển Hình 4.30 Hình 4.31 Giao diện h Giao diện L Hình 4.32 Hình 4.33 Hình 4.34 Giao điện h TestComple Nền tảng ki Hình 4.35 Hình 4.36 Tổng quan v Lược đồ tuầ Hình 4.37 Hình 4.38 Phân tích Sơ đồ xử lý Hình 4.39 Hình 4.40 Hình 4.41 Mơ hình trạ Mơ hình trạ Ứng dụng m Hình 4.42 Hình 4.43 Giao diện c Mã nguồn ứ Hình 4.44 Hình 4.45 Hình 4.46 Mã nguồn c Giao diện c Kết mo Hình 4.47 Hình 4.48 Kết chạ Kết chạ – - - (thực kiểm tra cách nhanh chóng “rẻ nhất” có thể) Các chạy tay Trong lĩnh vực Kiểm thử tự động có nhiều công cụ kiểm thử thương mại tiếng, phổ biến TestComplete, QuickTest Professional, WinRunner, Rational Robot, SilkTest, JTest,…Trong số đó, Test Complete phiên Automated‟s QA SmartBear tốt mạnh, bao gồm nhiều chức điển hình cơng cụ kiểm thử tự động Nó thực thi kiểm thử nhiều mức: Kiểm thử đơn vị, tích hợp, hệ thống chấp nhận Đây loại công cụ phổ biến sử dụng Việc thực kiểm chứng thiết kế trình tạo sản phẩm phần mềm đặc biệt phần mềm phức tạp giúp làm tăng hiệu kinh tế nhờ việc phát lỗi sớm – từ bước thiết kế phần mềm rút ngắn thời gian chi phí hồn thành sản phẩm, đảm bảo tính tin cậy, an toàn hệ thống làm Tuy nhiên, thiết kế thường khơng dạng chương trình cài đăt chạy Một câu hỏi đặt liệu áp dụng cơng cụ kiểm thử vào kiểm chứng thiết kế không? Trả lời cho câu hỏi luận văn có trình bày cách tiếp cận dùng công cụ kiểm thử vào việc kiểm thử thiết kế mà cụ thể công cụ kiểm thử TestComplete Dùng kỹ thuật trừu tượng hóa, biến đổi thiết kế thành mơ hình tiến hành để kiểm thử công cụ kiểm thử nhằm phát lỗi giai đoạn sớm 1.2 Luận văn tập trung nghiên cứu tự động hóa kiểm thử phần mềm gồm khái niệm, lợi ích cách thức thực tự động hóa, số công cụ kiểm thử phần mềm tập trung vào việc tìm hiểu cơng cụ kiểm thử TestComplete – công cụ sử dụng phổ biến Ngồi ra, luận văn có trình bày phương pháp sử dụng công cụ kiểm thử TestComplete kiểm chứng thiết kế phần mềm 1.3 Phần cịn lại luận văn có cấu trúc sau: Chương 2: Quy trình kiểm thử phần mềm Chương trình bày mơ hình phát triển phần mềm quy trình kiểm thử mơ hình phát triển phần mềm Chương 3: Các kỹ thuật kiểm thử phần mềm Chương trình bày sơ qua hai kỹ thuật kiểm thử: Hộp đen (Black box), Hộp trắng (White box) việc lựa chọn kiểu kiểm thử cho hệ thống phần mềm Chương 4: Tự động hóa kiểm thử phần mềm Chương trình bày khái niệm, mơ hình chung tự động hóa kiểm thử, lợi ích cách thức thực tự động hóa kiểm thử phần mềm Giới thiệu số công cụ kiểm thử tự động sâu vào việc tìm hiểu cơng cụ kiểm thử TestComplete Trình bày phương pháp sử dụng công cụ kiểm thử kiểm chứng thiết kế Chƣơng – QUY TRÌNH KIỂM THỬ PHẦN MỀM quy trình phát triển phần mềm điều quan trọng Nếu viết nh ), bạn thấy phương thức bạn sử dụng khác nhiều so với cơng ty lớn sử dụng để phát triển phần mềm Để tạo sản phẩm phần mềm lớn bao gồm hàng chục, hàng trăm, thậ làm việc chặt chẽ.Chi tiết việc họ làm, cách thức họ tương tác, cách thức họ định thành phần quy trình phát triển phần mềm 2.1 Quy trình phát triển phần mềm: 2.2 Quy trình kiểm thử phần mềm Quy trình kiểm thử gồm hoạt động sau: − Kế hoạch kiểm thử (test planning) − Thiết kế kiểm thử (test design) − Triển khai kiểm thử (test implementation) − Thực thi kiểm thử (test execution) − Đánh giá kiểm thử (test evaluation) Quy trình kiểm thử mơ tả hình vẽ đây: 58 ng QAForums VBScript, Jscript, C# VBScript Script, C++ Script, Delphi Script (Web Testing) (Manual Testing) (Quality Center) (Web Load/Performance Testing) Web (Web Testing) Services DUnit, JUnit, NUnit, (Unit Testing MSTest Integration) (Quality Center) NET (.NET Testing) 59 PowerBuilder ++ 4.9 Nghiên cứu kỹ thuật kiểm chứng thiết kế 4.9.1 (Design checking) Hầu hết đặc tả mơ tả đối tượng vơ tận, khơng gian trạng thái chúng vơ hạn Thậm chí khơng gian trạng thái hữu hạn, thường q lớn để kiểm chứng mơ hình trực tiếp Vì vậy, thay xây dựng mơ hình trừu tượng số lượng nhỏ mơ hình trừu tượng đại diện cho tập lớn (có thể vơ hạn) mơ hình cụ thể Nếu trừu tượng có tính chất định, kết thu từ việc kiểm tra mơ hình trừu tượng hợp lý cho mơ hình cụ thể Với tập đầy đủ , ta xác định hàm với giá trị tập trừu tượng hóa ánh xạ giá trị tập đầy đủ : Ví dụ: miền Int trừu tượng hóa thành miền Int* thông qua hàm ánh xạ 60 Những hàm tạo ánh xạ đối tượng phức hợp định nghĩa hàm ánh xạ đơn tồn miền giá trị Ví dụ, tập số nguyên ánh xạ với tập 4.9.2 Ki Cơ sở việc sử dụng kỹ thuật Việc thực kiểm chứng thiết kế trình tạo sản phẩm phần mềm đặc biệt phần mềm phức tạp giúp làm tăng hiệu kinh tế nhờ việc phát lỗi sớm – từ bước thiết kế phần mềm rút ngắn thời gian chi phí hồn thành sản phẩm, đảm bảo tính tin cậy, an toàn hệ thống làm Tuy nhiên, thiết kế thường khơng dạng chương trình cài đăt chạy Chính vậy, để kiểm chứng thiết kế cơng cụ TestComplete ta thực việc chuyển thiết kế thành mơ hình /chương trình chạy được, sau sử dụng công cụ kiểm thử để kiểm thử vét cạn chương trình : - Bước 1: Chọn nhánh thiết kế cần kiểm chứng - Bước 2: Chuyển thiết kế sang mơ hình trừu tượng (chẳng hạn dạng máy hữu hạn trạng thái) - Bước 3: Tạo giả chương trình mơ hoạt động máy hữu hạn trạng thái bước gồm: o Tập hữu hạn trạng thái o Các hàm chuyển trạng thái - Bước 4: Vét cạn kịch kiểm thử giả chương trình ngơn ngữ script TestComplete - Bước 5: Sử dụng TestComplete để kiểm thử tìm lỗi thiết kế 61 4.9.3 Ví dụ minh họa: Mơ tả toán Một mục tiêu quan trọng quy trình chăm sóc sức khỏe người bệnh ln biết tình trạng sức khỏe tư vấn chuyên gia y tế họ cần nơi đâu Một thiết bị cầm tay tích hợp khởi đầu cho hệ thống Một điểm nhấn quan trọng liên quan đến mục tiêu thu nhận thông tin sức khỏe sớm để đưa biện pháp phòng ngừa Mong muốn phát triển hệ thống theo dõi điện tim đồ (ECG) thông qua thiết bị điện thoại thông minh để yêu cầu ghi lại thông tin liên quan nhịp tim biết nguyên nhân ta thấy có dấu hiệu loạn nhịp tim xảy Các thành phần hệ thống: - Một thiết bị không dây, mô đun để lưu trữ thu thập thông tin - Một thuật toán kiểm tra nhịp tim theo thời gian thực hiệu - Một hệ thống tương tác có qui tắc (Sự kiện – Điều kiện – Giải pháp) - Một hệ thống giao diện người dùng đơn giản giúp ta yêu cầu bổ sung thêm thơng tin từ người dùng Phân tích tốn Các thành phần hệ thống - Hệ thống sử dụng Bluetooth kênh không dây để nhận tín hiệu ECG chuyển thành tín hiệu nhịp tim đập ghi nhận đồng thời ghi lại thông tin liên quan để giúp cho việc phân tích sau tốt - Hệ thống theo dõi biến thiên nhịp tim từ tín hiệu ECG dựa vào để tìm thay đổi tần số nhịp tim liên quan đến hoạt động hàng ngày người dùng Những tần số khác phụ thuộc vào hoạt động khác ghi lại nhãn (label, subject)như: Làm việc, chơi thể thao, đọc báo, xem phim, … 62 Hình 4.34: Nền tảng kiến trúc hệ thống Hình 4.36 thành phần hệ thống thực tế Ta chia hệ thống thành phần là: Truyền liệu, thu nhận tín hiệu xử lý tín hiệu (dựa thơng tin ngữ cảnh sử dụng quy tắc E-C-A) Trong phạm vi nghiên cứu không sử dụng thiết bị đo ECG thực, thay vào thiết bị mơ để đọc liệu ECG từ tệp tin gửi đến thiết bị cầm tay (PDA) thông qua thiết bị thu phát Bluetooth máy tính cá nhân (PC) Tổng quan hệ thống hình 4.37 Hình 4.35: Tổng quan hệ thống 63 Khi tín hiệu ECG gửi đến PDA, chúng phân tích thuật toán kiểm tra nhịp ECG Sau nhịp kiểm tra, coi tín hiệu đầu vào cho mức (tương tác kiện nhịp sinh thuật toán kiểm tra nhịp), làm chuỗi phân tích kiện, qua đánh giá điều kiện yêu cầu thông tin ngữ cảnh tương ứng với hoạt động người dùng (ADL: Active Daily Living), sau có đầy đủ thông tin hệ thống lưu trữ ngữ cảnh thực thi hành động tương ứng với tình trạng nhịp tim bệnh nhân Thiết kế hệ thống Với mục đích ví dụ phục vụ cho việc kiểm thử tự động, xét đến giao thức lý thuyết hệ thống SAECA viết tắt Tín hiệu (Signal) – Thuật tốn (Algorithm) – ECA Khi tín hiệu thu nhận được, thuật tốn tương ứng xử lý liệu đến truyền kết tính tốn vào cho ECA để đưa định nhận hành động tương ứng với tình Hình 4.37 minh họa luồng làm việc hệ thống SAECA: Hình 4.36: Lược đồ UML giao thức thiết kế - SAECA − Pha 1: Gửi thông tin Trước liệu ECG truyền đi, chia chuyển thành dạng “số nguyên” Để tăng cường độ xác liệu, hệ thống kết 64 hợp ID bệnh nhân, tần suất lấy mẫu số mẫu với liệu ECG sau: Hình 4.37: Phân tích liệu ECG chèn thêm thơng tin mẫu − Pha 2: Nhận xử lý liệu: Khi nhận liệu ECG đến hệ thống tạo mẫu rỗng để lưu trữ thông tin đến Hệ thống biết trước thông tin người dùng (do người dùng nhập vào) bao gồm: ID bệnh nhân Nếu kết phân tích trùng với thơng tin bệnh nhân, hệ thống phân tích để lấy mã số mẫu liệu ECG Dữ liệu ECG lưu trữ tệp tin phân tích thuật tốn Hình 4.38: Sơ đồ xử lý liệu ECG 65 Chú ý: Sai lầm mơ hình nằm chỗ: khơng tính đến tần suất lấy mẫu mà sử dụng ID bệnh nhân, xảy trường hợp tràn nhớ hệ thống! Bởi có thể, trường hợp lỗi, phận thu nhận gửi lặp gửi liên tục mẫu! Đây lỗi mơ hình cần tìm thơng qua vét cạn thực stress test TestComplete 9! Hình 4.39: Mơ hình trạng thái hệ thống 66 Hình 4.40: Mơ hình trạng thái module lưu trữ liệu Xây dựng giả chương trình Giả chương trình mơ ứng dụng web viết ASP NET MVC 4.0 ngôn ngữ C# chạy máy chủ ứng dụng web IIS 8.0 Hình 4.41: Ứng dụng mơ máy chủ IIS 67 Hình 4.42: Giao diện chạy thử ứng dụng Hình 4.43: Mã nguồn ứng dụng mơ Chúng ta tạo thêm chương trình client để mơ việc thu nhận gửi liệu đến server 68 Hình 4.44: Mã nguồn chương trình khách Hình 4.45: Giao diện chương trình khách 69 Kiểm thử vét cạn TestComplete Dựa thông tin đầu vào (PatientID, SampleRate, ECGData) vả trạng thái ta xây dựng vét cạn tập ca kiểm thử sau (được chia thành nhóm chính): − Trường hợp 1: Mã bệnh nhân đúng, tần suất chuẩn, liệu thay đổi (từ thấp (40) đến cao (200)) gồm ca kiểm thử − Trường hợp 2: Mã bệnh nhân khơng xác, tần suất chuẩn, liệu thay đổi (từ thấp (40) đến cao (200)) gồm ca kiểm thử − Trường hợp 3: Mã bệnh nhân đúng, tần suất cực tiểu (0), liệu thay đổi (từ thấp (40) đến cao (200)) gồm ca kiểm thử Với ca kiểm thử, ta sử dụng TestComplete để nhập trước kết mong đợi (expected result) sau tiến hành chạy tự động Phân tích kết Có 01 ca kiểm thử trường hợp thất bại có tập trạng thái sau: - Mã bệnh nhân - Tần suất cực tiểu - Tập liệu gồm mẫu trạng thái (thấp nhất, trung bình, cao nhất) Hình 4.46: Kết mong đợi xây dựng trước 70 Hình 4.47: Kết chạy thực tế TestComplete Hình 4.48: Kết chạy kiểm thử TestComplete Có tập trạng thái, tiến hành lần ngược (debug) giả chương trình phát lỗi hệ thống thời điểm kiểm tra lưu trữ liệu 71 – Kiểm thử phần mềm, nội dung nghiên cứu triển khai từ sớm mẻ giới, vấn đề cấp thiết cho việc nâng cao chất lượng phần mềm Trong luận văn này, tác giả trình bày tổng quan quy trình kiểm thử phần mềm, sâu vào nghiên cứu tự động hóa kiểm thử phần mềm nghiên cứu công cụ kiểm thử TestComplete – công cụ kiểm thử phổ biến Luận văn trình bày cách tiếp cận áp dụng công cụ kiểm thử vào việc iểm thử thiết kế mà cụ thể công cụ kiểm thử TestComplete Dùng kỹ thuật trừu tượng hóa, biến đổi thiết kế thành mơ hình tiến hành để kiểm thử công cụ kiểm thử nhằm phát lỗi giai đoạn sớm Hướng phát triển luận văn nghiên cứu ngôn ngữ mơ hình phù hợp, từ kết hợp với nghiên cứu cơng cụ sinh giả chương trình tự động thực kiểm thử vét cạn công cụ TestComplete cho giả chương trình 72 Tiếng Việt Nguyễn Xuân Huy (1994), Công nghệ phần mềm, Đại học Tổng hợp Tp Hồ Chí Minh Tiếng Anh Kanglin Li and Menqi Wu (2004), Effective Software Test Automation: Developing an Automated Software Testing Tool, Sybex, San Francisco Mark Fewster and Dorothy Graham (1994), Software Test Automation Effective use of test execution tools, Copyright @ by ACM Press, Great Britain Myers and Glenford (1979), The Art of Software Testing, Willey, New York Pettichord and Bret (1996), Success with test automation, in Proceedings of the Ninth International Quality Week, Sofware Research, San Francisco, California, Available at http://www.io.com/~waznio/succpap.htm Ron Patton (2005), Software Testing, Sams Publishing, the United States of America http://smartbear.com/support ... CHƢƠNG – QUY TRÌNH KIỂM THỬ PHẦN MỀM 2.1 QUY TRÌNH PHÁT TRIểN PHầN MềM: 2.2 QUY TRÌNH KIểM THử PHầN MềM 2.3 G 2.4 CÁC Kỹ THUậT KIểM THử PHầN MềM 2.4.1 Kiểm thử hộp trắng (White-box) CHƢƠNG –TỰ ĐỘNG... chung tự động hóa kiểm thử phần mềm Tự động hóa kiểm thử phần mềm bao gồm chuỗi trình, hoạt động, thao tác quy tụ với để thực phần mềm cần kiểm thử ghi lại kết kiểm thử Phần lớn kiến trúc kiểm thử. .. thành phần quy trình phát triển phần mềm 2.1 Quy trình phát triển phần mềm: 2.2 Quy trình kiểm thử phần mềm Quy trình kiểm thử gồm hoạt động sau: − Kế hoạch kiểm thử (test planning) − Thiết kế kiểm

Ngày đăng: 11/11/2020, 22:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w