Chính vì vậy, để có thể kiểm chứng thiết kế bằng công cụ TestComplete 9 ta sẽ thực hiện 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[r]
(1)Vai trò kiểm thử tự động quy trình kiểm thử phần mềm
Nguyễn Thị Huệ Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10 Người hướng dẫn: TS Đặng Văn Hưng
Năm bảo vệ: 2012
Abstract: 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 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
Keywords: Công nghệ thông tin; Công nghệ phần mềm; Thiết kế phần mềm; Kiểm thử phần mềm
Content
Chương – GIỚI THIỆU 1.1 Đặt vấn đề
1.2 Nội dung nghiên cứu
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 Ngoà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 Cấu trú c luâ ̣n văn
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
(2)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 2.1 Quy trình phát triển phần mềm:
Quy trình phát triển phần mềm hay cò n go ̣i là vòng đời phát triển phần mềm là mô ̣t cấu trúc dùng để phát triển sản phẩm phần mềm Các thuật ngữ tương tự gồm vịng đời phần mềm quy trình phần mềm Nó coi tập vịng đờ i phát triển ̣ thớng Có nhiều mơ hình quy trình phát triển phần mềm Mỗi mô hình mô tả cách tiếp câ ̣n với mô ̣t loa ̣t các nhiê ̣m vu ̣ hay hoa ̣t đô ̣ng diễn suốt quy trình 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)
(3)Hình 2.1: Quy trình kiểm thử phần mềm
2.3 Giai đoạn kiểm thử phần mềm vòng đời phát triển phần mềm 2.4 Các kỹ thuật kiểm thử phần mềm
2.4.1 Kiểm thử hộp trắng 2.4.2 Kiểm thử hô ̣p đen
2.4.3 Lựa cho ̣n kiểu kiểm thử cho ̣ thống phần mềm Chương –TỰ ĐỘNG HÓA KIỂM THỬ PHẦN MỀM 3.1 Định nghĩa:
Tự động hóa kiểm thử phần mềm thực kiểm thử phần mềm chương trình đặc biệt với khơng có tương tác người.Việc thực tự động phải đảm bảo khơng có hoạt động kiểm thử bị bỏ qua Nó giúp kỹ sư kiểm thử (tester) lặp lặp lại bước nhàm chán
3.2 Mơ hình 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ử
(4)Trong đó, cơng cụ dùng để tự động hóa quy trình kiểm thử mơ hình kiểm thử thực chức năng:
Test Manager: quản lý việc thực kiểm thử chương trình, theo dõi dữ liệu
kiểm thử, kết mong đợi chức năng, tiện ích chương trình kiểm thử
Test data generator: sinh dữ liệu kiểm thử cho chương trình
Oracle: tạo phán đốn kết mong đợi Nó phiên chương
trình trước hệ thống prototype Chú ý, sở dư liệu Oracle
File comparator: Đối chiếu kết kiểm thử chương trình với kết kiểm thử trước
đó ghi lại khác vào tài liệu
Report generator: cung cấp mẫu báo cáo tiện ích cho kết kiểm thử
Dynamic analyzer: thêm mã cho chương trình để tính lượng thời gian lệnh
thực
Simulator: mô môi trường kiểm thử cho sản phẩm phần mềm
3.3 Công cụ kiểm thử tự động
Công cu ̣ kiểm thử phần mềm (Test Tool) lĩnh vực phát triển phần mềm là công cu ̣ giúp thực viê ̣c phát triển phần mềm mô ̣t cách tự đô ̣ng Tuy nhiên không phải mo ̣i viê ̣c kiểm thử đều có thể tự đô ̣ng hóa , câu hỏi đă ̣t là điều kiê ̣n hay tình huống nào dùng cơng cụ kiểm thử thích hợp ?
3.3.1 Lý sử dụng công cụ kiểm thử
Viê ̣c dùng công cụ kiểm thử được xem xét mô ̣t số tình huống sau: Không đủ tài nguyên:
Kiểm tra hồi quy:
Kiểm tra khả vâ ̣n hành phần mềm môi trường đă ̣c biê ̣t 3.3.2 Các bước thực kiểm thử tự động
Giống phá t triển phần mềm , để thành công kiểm thử tự động nên thực hiê ̣n các bước bản sau :
−Thu thập đặc tả yêu cầu test case; lựa chọn những phần cần thực kiểm thử tự động
− Phân tích thiết kế mơ hình phát triển kiểm thử tự động − Phát triển lệnh đặc tả cho kiểm thử tự động
(5)3.3.3 Cơng cụ hỗ trợ quy trình kiểm thử phần mềm
Công cụ kiểm thử tự động phần mềm đa dạng sử dụng nhiều giai đoạn kiểm thử khác Hình vẽ 3.2 loại công cụ khác việc sử dụng chúng vòng đời phát triển phần mềm
Hình 3.2: Cơng cụ hỗ trợ quy trình kiểm thử phần mềm
3.4 Chun mơn hóa người
3.5 Chi phí kiểm thử tự động phần mềm
So với kiểm thử thủ cơng chi phí kiểm thử tự động cao hơn, đặc biệt thời điểm bắt đầu quy trình tự động hóa Từ cơng cụ kiểm thử trang thiết bị cần thiết đắt đỏ Tuy nhiên, vốn đầu tư hoàn lại sau khoảng thời gian dùng kiểm thử tự động
Khơng có so sánh rõ ràng giữa chi phí thực kiểm thử tự động kiểm thử thủ cơng, ngụ ý chi phí cho lần ca kiểm thử thực
Tổng chi phí kiểm thử xác định tổng chi phí kiểm thử thủ cơng tự động:
(6)3.6 Một số hạn chế tự động hóa kiểm thử Khơng thể thay kiểm thử thủ công
Kiểm thử thủ công có khả phát lỗi tốt kiểm thử tự động Tự động hóa kiểm thử khơng cải thiện nhiều tính hiệu
(7)Chương – TÌM HIỂU CƠNG CỤ TESTCOMPLETE
4.1 Loại phần mềm hỗ trợ 4.2 Hỗ trợ các loa ̣i kiểm thử
4.3 Các thành phần quan trọng TestComplete 4.4 Ngôn ngữ sử du ̣ng viết Script
4.5 Sử du ̣ng TestComplete Chọn loại kiểm thử
Dự án thành phần dự án kiểm thử Giao diện người dùng (TestComplete User Interface)
Mơ hình đối tượng kiểm thử (TestComplete Test Object Model) Đặt điểm kiểm tra và lưu giữ liệu kiểm tra (Checkpoints and Stores) 4.6 Các bước tạo dự án kiểm thử với TestComplete
Bao gồm bước sau: Tạo dự án kiểm thử
2 Xác định ứng dụng cần kiểm thử Hoàn thành việc tạo dự án kiểm thử Tạo ca kiểm thử
5 Phân tích ca kiểm thử ghi Chạy ca kiểm thử ghi
7 Phân tích kết kiểm thử 4.7 Ví dụ
(8)Hình 4.7: Giao diện Patients Management
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
TestComplete cung cấp tính đặc biệt để tự động hóa thao tác kiểm thử, tạo ca kiểm thử, xác định dữ liệu kiểm thử, thực kiểm thử ghi lại kết Nó thuộc công cụ thực thi đối chiếu kiểm thử (Test execution and comparison) cho phép kiểm thử thực thi tự động kết kiểm thử đối chiếu với kết mong đợi Công cụ sử dụng mức: kiểm thử đơn vị, tích hợp, hệ thống chấp nhận thường dùng kiểm thử hồi quy
(9)Hình 4.33: TestComplete mơ hình chung tự động hóa kiểm thử 4.8.2 So với công cụ kiểm thử khác
4.9.1 Một số khái niê ̣m
Kiểm chứng thiết kế (Design checking) Mô hình trừu tượng
4.9.2 Kiểm chứ ng thiết kế với TestComplete 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 những 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 tồ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
Các bước thực hiện:
- Bước 1: Chọn nhánh thiết kế cần kiểm chứng
(10)- 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ế 4.9.3 Ví dụ minh họa:
Mơ tả tốn
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 những 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 tố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
(11)Hình 4.34: Nền tảng kiến trúc hệ thống
Hình 4.36 những 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)
(12)cho mức (tương tác kiện nhịp sinh thuật tố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 những 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 toán (Algorithm) – ECA
Khi tín hiệu thu nhận được, thuật tốn tương ứng xử lý dữ liệu đến truyền kết tính tốn vào cho ECA để đưa định nhận những hành động tương ứng với tình
− Pha 1: Gửi thông tin
Trước dữ liệu ECG truyền đi, chia chuyển thành dạng “số nguyên” Để tăng cường độ xác dữ liệu, hệ thống kết hợp ID bệnh nhân, tần suất lấy mẫu số mẫu với dữ liệu ECG sau:
Hình 4.37: Phân tích dữ liệu ECG chèn thêm thông tin mẫu − Pha 2: Nhận xử lý dữ liệu:
(13)bệnh nhân, hệ thống phân tích để lấy mã số mẫu dữ 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ý dữ liệu ECG
Chú ý: Sai lầm mơ hình nằm chỗ: khơng tính đến tần suất lấy mẫu mà chỉ sử dụng ID bệnh nhân, xảy trường hợp tràn nhớ hệ thống! Bởi rất 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!
(14)Hình 4.40: Mơ hình trạng thái module lưu trữ dữ 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
(15)Hình 4.45: Giao diện chương trình khách 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, dữ 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 ch̉n, dữ 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), dữ 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
(16)- 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
(17)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ữ dữ liệu
Chương – KẾT LUẬN
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
(18)1 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
2 Kanglin Li and Menqi Wu (2004), Effective Software Test Automation: Developing an Automated Software Testing Tool, Sybex, San Francisco
3 Mark Fewster and Dorothy Graham (1994), Software Test Automation Effective use of test execution tools, Copyright @ by ACM Press, Great Britain
4 Myers and Glenford (1979), The Art of Software Testing, Willey, New York
5 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
http://www.io.com/~waznio/succpap.htm.