Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
3,18 MB
Nội dung
Kiểmthửtíchhợp Integration testing
Bài tập lớn môn
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Đề tài số 22:
KIỂM THỬTÍCHHỢP
( Integration testing )
Giáo viên bộ môn :Vũ Thị Dương
Lớp : KHMT 1 K2
Nhóm số 3 : Đào Đức Anh
Nguyễn Thị Lệ Chi
Trần Trung Hiếu
Lê Thái Hoàng
1 Nhóm3
Kiểm thửtíchhợp Integration testing
I. Lời mở đầu
Trong ngành kỹ nghệ phần mềm, năm 1979, có một quy tắc nổi tiếng là: “Trong
một dự án lập trình điển hình, thì xấp xỉ 50% thời gian và hơn 50% tổng chi phí được sử
dụng trong kiểmthử các chương trình hay hệ thống đã được phát triển”. Và cho đến nay,
sau gần một phần 3 thế kỷ, quy tắc đó vẫn còn đúng. Đã có rất nhiều ngôn ngữ, hệ thống
phát triển mới với các công cụ tíchhợp cho các lập trình viên sử dụng phát triển ngày
càng linh động. Nhưng kiểmthử vẫn đóng vai trò hết sức quan trọng trong bất kỳ dự án
phát triển phần mềm nào.
Rất nhiều các giáo sư, giảng viên đã từng than phiền rằng: “ Sinh viên của chúng
ta tốt nghiệp và đi làm mà không có được những kiến thực thực tế cần thiết về cách để
kiểm thử một chương trình. Hơn nữa, chúng ta hiếm khi có được những lời khuyên bổ ích
để cung cấp trong các khóa học mở đầu về cách một sinh viên nên làm về kiểmthử và gỡ
lỗi các bài tập của họ”.
Các tác giả của cuốn sách nổi tiếng “The Art of Software Testing” – Nghệ thuật
kiểm thử phần mềm, Glenford J. Myers, Tom Badgett, Todd M. Thomas, Corey Sandler
đã khẳng định trong cuốn sách của mình rằng: “ Hầu hết các thành phần quan trọng trong
các thủ thuật của một nhà kiểmthử chương trình là kiến thức về cách để viết các ca kiểm
thử có hiệu quả”. Việc kiểmthử phần mềm thật sự quan trọng trong “dây chuyền” sản
xuất phần mềm. Đây cũng chính là lý do để nhóm em nghiên cứu về đề tài này, và chính
xác hơn là về kiểmthửtíchhợp mà chúng em sẽ trình bày dưới đây. Do còn nhiều khó
khăn trong việc thu thập và dịch tài liệu nên chúng em sẽ còn nhiều thiếu sót trong khi
trình bày, vậy kính mong cô giáo xem xét và giúp đỡ thêm cho chúng em.
Chúng em xin chân thành cảm ơn !
2 Nhóm3
Kiểm thửtíchhợp Integration testing
Mục lục
Bài tập lớn môn 1
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM 1
Đề tài số 22: 1
KIỂM THỬTÍCHHỢP 1
( Integration testing ) 1
II. Giới thiệu chung về kiểmthửtích hợp
Một nhân viên mới chập chững bước vào giới phần mềm có thể sẽ đặt ra một câu
hỏi sau khi tất cả các Mô đun đã được kiểmthử “Nếu tất cả các Mô đun đều để riêng lẻ,
tại sao bạn lại nghi ngờ rằng chúng sẽ phát huy tác dụng khi được đặt cùng nhau?”. Tất
nhiên, vấn đề là ở chỗ đưa chúng vào một giao diện “cùng nhau”. Bạn có thể bị mất dữ
liệu trong giao diện; mô đun này vô ý có những ảnh hưởng tiêu cực tới mô đun khác; các
chức năng con khi kết hợp cùng với nhau có thể không tạo ra được chức năng mong
muốn; sự sai lệch ở mức có thể chấp nhận được bị phóng lên thành mức không thể chấp
nhận được; cấu trúc dữ liệu toàn cầu có thể gặp phải nhiều vấn đề. Thật không may là
danh sách này còn rất là dài.
3 Nhóm3
Kiểm thửtíchhợp Integration testing
Có một phương pháp kiểmthử có hệ thống để xây dựng cấu trúc chương trình
trong khi đó tiến hành các bài kiểmthử để phát hiện ra lỗi liên quan đến lập giao diện.
Mục tiêu là để kiểmthử các bộ phận và xây dựng một cấu trúc chương trình đã được
kiểm thử chính tả khi thiết kế.
Thường có xu hướng cố gắng thực hiện tíchhợp không theo trình tự từng bước; có
nghĩa là để xây dựng một chương trình sử dụng phương pháp tiếp cận “tức thời/đột ngột”.
Tất cả các bộ phận được kết hợp trước với nhau. Toàn bộ chương trình được kiểm thử
dưới dạng tổng thể. Kết quả là thường xảy ra sự lộn xộn! Bạn gặp phải hàng loạt lỗi. Việc
sửa lỗi là rất khó vì việc cô lập các nguyên nhân rất phức tạp do chương trình quá rộng.
Một khi đã sửa được các lỗi này, các lỗi khác sẽ lại xuất hiện và quá trình cứ tiếp diễn
liên tục như thế.
Tích hợp theo trình tự từng bước mâu thuẫn với phương pháp tiếp cận “tức thời”.
Chương trình được thiết lập và kiểmthử trong các gia lượng nhỏ, nơi dễ tách và sửa lỗi
hơn; giao diện có khả năng được kiểmthử toàn bộ hơn; và có thể áp dụng một phương
pháp kiểmthử có hệ thống.
Phương pháp kiểmthử được nói đến ở đây là phương pháp kiểmthửtích hợp.
1. Đặc điểm của kiểmthửtích hợp:
• Là một kiểu kiểmthử cao cấp hơn kiểmthử đơn vị (Unit testing) nhưng lại
được xếp thấp hơn kiểmthử hệ thống (System testing) và kiểmthử người
dùng (User Acceptance Testing)
4 Nhóm3
Kiểm thửtíchhợp Integration testing
• Được thực hiện sau kiểmthử đơn vị nhưng trước kiểmthử hệ thống
• Thường xuyên phát hiện được lỗ hổng cũng như các lỗi của hệ thống
• Có thể áp dụng cho việc phát triển tự do
Hình 1. Sơ đồ các cấp độ kiểm thử
2. Khi nào thì sử dụng kiểmthửtích hợp?
• Khi hệ thống là rất lớn (“500K + LOC”)
• Khi hệ thống là cả phần mềm và phần cứng
• Khi có quá nhiều lỗi trong giai đoạn kiểmthử hệ thống và kiểmthử người
dùng
• Khi bạn có quá nhiều các tương tác giữa các phần mềm
• Khi hệ thống thiết kế là một hệ thống thời gian thực
• Khi ban có yêu cầu cao hơn về hệ thống của mình
5 Nhóm3
Kiểm thửtíchhợp Integration testing
…
6 Nhóm3
Kiểm thửtíchhợp Integration testing
3. Mục tiêu của kiểmthửtích hợp:
• Phát hiện lỗi xảy ra giữa các Unit
• Tíchhợp các Unit thành các hệ thống nhỏ (subsyetem) và cuối cùng là
nguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểmthử ở múc hệ
thống (system testing)
Trong kiểmthử đơn vị các lập trình viên cố gắng phát hiện lỗi liên quan đến chức
năng và cấu trúc nội tại của Unit. Có một số phép kiểmthử đơn giản trên giao tiếp với
các thành phần liên quan khác, tuy nhiên mọi giao tiếp liên quan đến Unit chỉ thật sự
kiểm tra đầy dủ khi các Unit kết hợp với nhau trong khi thực hiện kiểmthửtích hợp.
Trừ một số ít ngoại lệ, kiểmthửtíchhợp chỉ nên thự hiện trên các Unit đã được
kiểm tra cẩn thận trước đó bằng kiểmthử đơn vị, và tất cả các lỗi mức Unit đã được sửa
chữa Một số người hiểu sai rằng Unit một khi đã qua giai đoạn Unit Test với các giao
tiếp giả lập thì không cần phải thực hiện Integration Test nữa. Thực tế việc tíchhợp giữa
các Unit dẫn đến những tình huống hoàn toàn khác.Một chiến lược cần quan tâm trong
Integration Test là nên tíchhợp dần từng Unit. Một Unit tại một thời điểm được tích hợp
vào một nhóm các Unit khác đã tíchhợp trước đó và đã hoàn tất các đợt Integration Test
trước đó. Lúc này, ta chỉ cần kiểmthử giao tiếp của Unit mới thêm vào với hệ thống các
Unit đã tíchhợp trước đó, điều này sẽ làm cho số lượng can kiểmthử giảm đi rất nhiều,
và sai sót sẽ giảm đáng kể.
Có 4 loại kiểmthử trong Integration Test:
• Kiểmthử cấu trúc (Structure Test): Tương tự White Box Test, kiểm thử
cấu trúc nhằm bảo đảm các thành phần bên trong của một chương trình
chạy đúng và chú trọng đến hoạt động của các thành phần cấu trúc nội tại
của chương trình chẳng hạn các câu lệnh và nhánh bên trong.
• Kiểmthử chức năng (Functional Test): Tương tự Black Box Test, kiểm
thử chức năng chỉ chú trọng đến chức năng của chương trình, mà không
quan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trình
theo yêu cầu kỹ thuật.
• Kiểmthử hiệu năng (Performance Test): Kiểmthử việc vận hành của hệ
thống.
7 Nhóm3
Kiểm thửtíchhợp Integration testing
• Kiểmthử khả năng chịu tải (Stress Test): Kiểmthử các giới hạn của hệ
thống.
4. Các bước kiểmthửtíchhợp
Kiểm tra tíchhợp gồm các bước sau:
• Bước 1: Thiết lập kế hoạch kiểmthử
• Bước 2: Thiết lập các bài và dữ liệu kiểmthử
• Bước 3: Tạo các tập lệnh để thực hiện các bài kiểmthử nếu có thể.
• Bước 4: Một khi tất cả các bộ phận đã được tích hợp, thực hiện các bài
kiểm thử
• Bước 5: Vá lỗi nếu có và kiểmthử mã
• Bước 6: Lặp lại quy trình kiểmthử cho đến khi tất cả các bộ phận đã được
tích hợp thành công
8 Nhóm3
Kế hoạch kiểm
tra
Phần mềm đã được
tích hợp
Báo cáo chấp thuận Kế hoạch phát triển
Tích hợp và kiểm tra
Phần mềm đã
được phát triển
Sơ đồ phát
triển
Các tiêu chuẩn để được
người dùng chấp nhận
Kiểm thửtíchhợp Integration testing
5. Kế hoạch kiểm tra
Nó mô tả một trong các yếu tố sau:
• Các bài kiểm tra sẽ được tiến hành như thế nào
• Danh sách các đối tượng cần được kiểm tra
• Vai trò và trách nhiệm
• Yêu cầu tiên quyết để bắt đầu kiểm tra
• Kiểm tra môi trường
• Giả thuyết
• Làm gì sau khi kiểm tra thành công
• Làm gì khi kiểm tra không thành công
6. Làm thế nào để viết một bài kiểm tra tích hợp?
Một bài kiểmthử đơn giản miêu tả chính xác bài kiểm tra sẽ được thực hiện như
thế nào. Các bài kiểmthửtíchhợp tập trung vào dòng lưu chuyển dữ liệu/thông tin/kiểm
soát từ một bộ phận sang một bộ phận khác.
Vì thế các bài kiểmthửtíchhợp phải tập trung vào những tình huống trong đó một
bộ phận được gọi ra từ một bộ phận khác. Tương tự toàn bộ chức năng áp dụng phải
được kiểmthử để đảm bảo rằng các áp dụng phát huy tác dụng khi các bộ phận khác
nhau được đặt cùng nhau.
Các bài kiểmthửtíchhợp được đưa vào thành một nhóm từ một bộ các bài kiểm
thử tích hợp. Mỗi bộ có thể tập trung vào một đối tượng khác nhau. Nói cách khác, các
bộ kiểmthử khác nhau có thể được tạo ra để tập trung vào các lĩnh vực áp dụng khác
nhau.
Như đã nêu phía trước, một nhóm kiểmthử có thể được tạo ra để thực hiện các bài
kiểm tra. Vì thế các bài kiểmthử phải càng chi tiết càng tốt.
Bảng ví dụ bài kiểm thử:
9 Nhóm3
Kiểm thửtíchhợp Integration testing
ID bài
kiểm
thử
Mô tả bài kiểm
thử
Dữ liệu
đầu vào
Kết quả mong
đợi
Kết quả thực
Thành
công/không
thành công
Ghi chú
Ngoài ra có thể bao gồm cả:
• Tên bộ kiểmthử
• Kiểmthử bằng
• Ngày tháng
• Kiểmthử lặp (Có thể thực hiện kiểmthửtíchhợp lặp lại một hoặc nhiều
lần)
10 Nhóm3
[...]... trình tíchhợp và thực hiện trong tương lai Trong các phần sau đây trình bày một số bước tíchhợp khác nhau 11 Nhóm3 Kiểmthửtíchhợp Integration testing III Một số phương pháp kiểmthửtíchhợp 1 Top-down Intergration (Kiểm thửtíchhợp từ trên xuống dưới) Kiểmthửtíchhợp từ trên xuống dưới là một phương pháp gia lượng áp dụng cho việc xây dựng cấu trúc chương trình Các mô đun được tíchhợp bằng... thử khác nhau: Mẫu đại diện sẽ thực hiện chức năng của phần mềm Các bài kiểmthử bổ sung tập trung vào chức năng phần mềm có thể bọ ảnh hưởng bởi các thay đổi Các bài kiểmthử tập trung vào các bộ phận của phần mềm đã bị thay đổi 19 Nhóm3 Kiểmthửtíchhợp Integration testing Hình 4: Sơ đồ luồng kiểmthửtíchhợp (Source base77.com) Do quá trình kiểmthửtíchhợp được tiếp diễn, số bài kiểm thử. . .Kiểm thửtíchhợp Integration testing 7 Làm việc để hướng tới một bài kiểm tra tíchhợp hiệu quả: Có rất nhiều yếu tố ảnh hưởng đến kiểm tra tíchhợp phần mềm và kiểm tra phần mềm: 1) Quản lý cấu trúc phần mềm: Do kiểm thửtíchhợp tập trung vào việc tíchhợp các bộ phận và các bộ phận có thể được xây dụng bằng những người phát... Các bộ phận ở mức thấp được kết hợp với nhau thành một nhóm thực hiện chức năng phần mềm cụ thể Một driver (chương trình điều khiển để kiểm thử) được viết để kết hợp các đầu vào và đầu ra kiểmthử Nhóm được kiểmthử 16 Nhóm3 Kiểmthửtíchhợp Integration testing Các Driver được loại bỏ và nhóm được kết hợp di chuyển lên trên trong cấu trúc chương trình Tíchhợp tiến hành theo các bước trình... thể, viết một tập lệnh để tíchhợp và triển khai các bộ phận Điều này sẽ giảm các lỗi thủ công 3) Tài liệu: xắp xếp tài liệu quá trình tích hợp/ xây dựng để loại bỏ các lỗi do bỏ qua hoặc không nhìn thấy Người chịu trách nhiệm tíchhợp các phần mềm có thể quên chạy tập lệnh yêu cầu và quá trình kiểmthửtíchhợp sẽ không cho kết quả chính xác 4) Tìm kiếm lỗi: Kiểmthửtíchhợp sẽ mất hướng nếu không... Intergration (Kiểm thửtíchhợp từ dưới lên) Kiểmthửtíchhợp từ dưới lên, như tên gọi của nó, bắt đầu xây dựng và kiểmthử bằng các mô đun nguyên tử (có nghĩa là các bộ phận ở mức thấp nhất trong cấu trúc chương trình) Do các bộ phận được tíchhợp từ dưới lên, việc xử lý yêu cầu đối với các bộ phận bổ sung cho một mức cho trước luôn có sẵn và loại bỏ yêu cầu cần các mô đun bổ sung Phương pháp tíchhợp từ... đổi Kiểmthử hồi quy hỗ trợ để đảm bảo rằng các thay đổi (do kiểmthử hoặc do các lý do khác) không dẫn đến các lỗi khác Kiểmthử hồi quy có thể được thực hiện thủ công, bằng cách thực hiện lại các bài kiểmthử hoặc sử dụng công cụ capture/playback Công cụ Capture/playback cho phép kĩ sư phần mềm thực hiện bài kiểmthử và lấy kết quả cho những lần chạy lại và so sánh Kiểmthử hồi quy bao gồm 3 lớp kiểm. .. giản về hệ thống quản lý thử viện được xây dựng theo phương pháp tíchhợp từ dưới lên: Quản lý thư viện Quản lý mượn sách Quản lý sách Quản lý số lượng sách Quản lý trả sách Yêu cầu mượn sách Quản lý tình trạng sách 18 Nhóm3 Kiểmthửtíchhợp Integration testing 3 Regression Testing (Kiểm thử hồi quy) Mỗi khi một mô đun mới được bổ sung dưới dạng một bộ phận của kiểmthửtích hợp, phần mềm sẽ thay đổi... Nói chung, một phương pháp kết hợp sử dụng kiểmthử từ trên xuống cho các mức cao hơn của cấu trúc chương trình, kết hợp với kiểmthử từ dưới lên cho các mức bổ sung có thể là một giải pháp tốt nhất 22 Nhóm3 Kiểm thửtíchhợp Integration testing Khi thực hiện kiểm thửtích hợp, người kiểmthử phải chỉ rõ mô đun quan trọng Một mô đun quan trọng có một hoặc các tính chất sau: (1) Giải quyết một số yêu cầu... thực Các bài kiểmthử sẽ được tiến hành khi mỗi mô đun được tíchhợp Khi hoàn thành từng bài kiểmthử một, các bộ phận tiếp theo sẽ được thay thế bởi bộ phận thực Kiểmthử hồi quy (phần V) có thể được tiến hành để đảm bảo không xảy ra lỗi mới Quá trình tiếp tục từ bước thứ hai cho đến khi toàn bộ cấu trúc chương trình được xây dựng Các bước tíchhợp theo hướng từ trên xuống kiểmthử các điểm điều . Tên bộ kiểm thử
• Kiểm thử bằng
• Ngày tháng
• Kiểm thử lặp (Có thể thực hiện kiểm thử tích hợp lặp lại một hoặc nhiều
lần)
10 Nhóm3
Kiểm thử tích hợp Integration. của mình
5 Nhóm3
Kiểm thử tích hợp Integration testing
…
6 Nhóm3
Kiểm thử tích hợp Integration testing
3. Mục tiêu của kiểm thử tích hợp:
• Phát hiện lỗi