1. Trang chủ
  2. » Luận Văn - Báo Cáo

kiểm thử tích hợp

30 1,3K 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Kiểm thử tích hợp
Tác giả Đào Đức Anh, Nguyễn Thị Lệ Chi, Trần Trung Hiếu, Lê Thái Hoàng
Người hướng dẫn Vũ Thị Dương
Trường học Trường Đại học Công Nghệ Thông Tin - Đại học Quốc Gia Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Bài tập lớn
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 3,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu chung về kiểm thử 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ểm thử “Nếu tất cả các Mô đun đ

Trang 1

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ÍCH HỢP ( Integration testing )

Giáo viên bộ môn :Vũ Thị Dương

Nguyễn Thị Lệ Chi Trần Trung Hiếu

Lê Thái Hoàng

Trang 2

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à: “Trongmộ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ểm thử 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ốngphát triển mới với các công cụ tích hợp cho các lập trình viên sử dụng phát triển ngàycàng linh động Nhưng kiểm thử vẫn đóng vai trò hết sức quan trọng trong bất kỳ dự ánphá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ểm thử 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ậtkiể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 trongcác thủ thuật của một nhà kiểm thử chương trình là kiến thức về cách để viết các ca kiểmthử có hiệu quả” Việc kiểm thử phần mềm thật sự quan trọng trong “dây chuyền” sảnxuấ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ínhxác hơn là về kiểm thử tích hợ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 khitrì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 !

Trang 3

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ÍCH HỢP 1

( Integration testing ) 1

II Giới thiệu chung về kiểm thử 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ểm thử “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

Trang 4

Có một phương pháp kiểm thử có hệ thống để xây dựng cấu trúc chương trìnhtrong khi đó tiến hành các bài kiểm thử để phát hiện ra lỗi liên quan đến lập giao diện.Mục tiêu là để kiểm thử các bộ phận và xây dựng một cấu trúc chương trình đã đượckiểm thử chính tả khi thiết kế.

Thường có xu hướng cố gắng thực hiện tích hợ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ệcsử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ễnliê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ểm thử trong các gia lượng nhỏ, nơi dễ tách và sửa lỗihơn; giao diện có khả năng được kiểm thử toàn bộ hơn; và có thể áp dụng một phươngpháp kiểm thử có hệ thống

Phương pháp kiểm thử được nói đến ở đây là phương pháp kiểm thử tích hợp

1 Đặc điểm của kiểm thử tích hợp:

• Là một kiểu kiểm thử cao cấp hơn kiểm thử đơn vị (Unit testing) nhưng lạiđược xếp thấp hơn kiểm thử hệ thống (System testing) và kiểm thử người

Trang 5

• Được thực hiện sau kiểm thử đơn vị nhưng trước kiểm thử 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

• 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

Trang 6

Trang 7

3 Mục tiêu của kiểm thử tích hợp:

• Phát hiện lỗi xảy ra giữa các Unit

• Tích hợ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ểm thử ở múc hệthống (system testing)

Trong kiểm thử đơn vị các lập trình viên cố gắng phát hiện lỗi liên quan đến chứcnăng và cấu trúc nội tại của Unit Có một số phép kiểm thử đơn giản trên giao tiếp vớicá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ểm thử tích hợp

Trừ một số ít ngoại lệ, kiểm thử tích hợp chỉ nên thự hiện trên các Unit đã đượckiểm tra cẩn thận trước đó bằng kiểm thử đơn vị, và tất cả các lỗi mức Unit đã được sửachữ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 giaotiế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ích hợp giữacá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 trongIntegration Test là nên tích hợp dần từng Unit Một Unit tại một thời điểm được tích hợpvào một nhóm các Unit khác đã tích hợp trước đó và đã hoàn tất các đợt Integration Testtrước đó Lúc này, ta chỉ cần kiểm thử giao tiếp của Unit mới thêm vào với hệ thống cácUnit đã tích hợp trước đó, điều này sẽ làm cho số lượng can kiểm thử giảm đi rất nhiều,

và sai sót sẽ giảm đáng kể

Có 4 loại kiểm thử trong Integration Test:

Kiểm thử 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ìnhchạ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ạicủa chương trình chẳng hạn các câu lệnh và nhánh bên trong

Kiểm thử 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ôngquan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trìnhtheo yêu cầu kỹ thuật

Kiểm thử hiệu năng (Performance Test): Kiểm thử việc vận hành của hệ

thống

Trang 8

Kiểm thử khả năng chịu tải (Stress Test): Kiểm thử các giới hạn của hệ

thống

4 Các bước kiểm thử tích hợp

Kiểm tra tích hợp gồm các bước sau:

• Bước 1: Thiết lập kế hoạch kiểm thử

• Bước 2: Thiết lập các bài và dữ liệu kiểm thử

• Bước 3: Tạo các tập lệnh để thực hiện các bài kiểm thử 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àikiểm thử

• Bước 5: Vá lỗi nếu có và kiểm thử mã

• Bước 6: Lặp lại quy trình kiểm thử cho đến khi tất cả các bộ phận đã đượctích hợp thành công

Các tiêu chuẩn để được người dùng chấp nhận

Trang 9

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ểm thử đơ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ểm thử tích hợp tập trung vào dòng lưu chuyển dữ liệu/thông tin/kiểmsoát từ một bộ phận sang một bộ phận khác

Vì thế các bài kiểm thử tích hợ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ểm thử để đảm bảo rằng các áp dụng phát huy tác dụng khi các bộ phận khácnhau được đặt cùng nhau

Các bài kiểm thử tích hợp được đưa vào thành một nhóm từ một bộ các bài kiểmthử 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ểm thử khác nhau có thể được tạo ra để tập trung vào các lĩnh vực áp dụng khácnhau

Như đã nêu phía trước, một nhóm kiểm thử có thể được tạo ra để thực hiện các bàikiểm tra Vì thế các bài kiểm thử phải càng chi tiết càng tốt

Bảng ví dụ bài kiểm thử:

Trang 10

Kết quả mong

Thànhcông/khôngthành công

Trang 11

7 Làm việc để hướng tới một bài kiểm tra tích hợp hiệu quả:

Có rất nhiều yếu tố ảnh hưởng đến kiểm tra tích hợp phần mềm và kiểm tra phầnmềm:

1) Quản lý cấu trúc phần mềm: Do kiểm thử tích hợp tập trung vào việc tích hợpcá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 triển khác nhau

và thậm chí bởi những nhóm phát triển khác nhau, điều quan trọng là phiên bản các bộphận được kiểm tra Điều này nghe có vẻ rất là cơ bản, nhưng vấn đề lớn nhất gặp phải làtích hợp phiên phản các bộ phận chính xác Kiểm tra tích hợp có thể thực hiện sau vài lầnlặp lại và vá lỗi mà các bộ phận có thể thay đổi Vì thế, điều quan trọng là một chính sáchquản lý cấu trúc phần mềm (SCM) phải có sẵn Chúng ta phải có khả năng tìm các bộphận và các phiên bản của chúng Vì thế mỗi khi ta tích hợp các bộ phận ứng dụng,chúng ta biết chính xác phiên bản này sẽ đi vào quá trình xây dựng

2)Qúa trình xây dựng tự động nếu cần thiết: sẽ có rất nhiều lỗi do phiên bản khôngchính xác các bộ phận được gửi cho quá trình xây dựng hoặc thiếu một số bộ phận Nếu

có thể, viết một tập lệnh để tích hợp và triển khai các bộ phận Điều này sẽ giảm các lỗithủ 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ích hợp các phần mềm có thể quênchạy tập lệnh yêu cầu và quá trình kiểm thử tích hợp sẽ không cho kết quả chính xác

4) Tìm kiếm lỗi: Kiểm thử tích hợp sẽ mất hướng nếu không phát hiện chính xáclỗi Mỗi lỗi phải được ghi lại và tìm kiếm Thông tin phải chỉ rõ cách vá lỗi Đây là thôngtin vô giá Nó có thể giúp hỗ trợ quá trình tích hợ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ích hợp khác nhau

Trang 12

III Một số phương pháp kiểm thử tích hợp

1 Top-down Intergration (Kiểm thử tích hợp từ trên xuống dưới)

Kiểm thử tích hợp từ trên xuống dưới là một phương pháp gia lượng áp dụng choviệc xây dựng cấu trúc chương trình Các mô đun được tích hợp bằng cách di chuyểntheo chiều hướng xuống theo trình tự kiểm soát cấp bậc, bắt đầu bằng mô đun điều khiểnchính (chương trình chính) Các mô đun phụ (và các mô đun sau cùng) đến mô đun điềukhiển chính được ghép lại thành một cấu trúc hoặc là theo lối nhanh nhất hoặc lâu nhất(depth-first or bread-first manner)

Hình 2 Kiểm thử tích hợp từ trên xuống

Xem hình 2, tích hợp depth-first sẽ tích hợp tất cả các bộ phận vào một đườngđiều khiển của cấu trúc Việc lựa chọn con đường là rất mơ hồ và phụ thuộc vào đặc điểmứng dụng cụ thể Ví dụ, lựa chọn đường theo chiều tay trái, các bộ phận M1, M2 , M5 sẽđược tích hợp trước tiếp đó M8 hoặc (nếu cần chức năng phù hợp của M2) M6 sẽ đượctích hợp Sau đó, phương pháp điều khiển bàn tay phải và trung tâm sẽ được xây dựng.Breadth-first integration kết hợp tất cả các bộ phận bổ sung trực tiếp ở mỗi mức độ,chuyển qua cấu trúc theo phương ngang Từ hình vẽ, các bộ phận M2, M3, và M4 (thaycho S4) sẽ được tích hợp trước Mức điều khiển tiếp theo, và cứ tiếp tục như thế

Trang 13

Quá trình tích hợp được thực hiện trong 5 bước:

 Mô đun điều khiển chính được sử dụng làm bộ điều khiển kiểm thử và các mô đuntiếp theo bổ sung cho tất cả các bộ phận bổ sung trực tiếp cho mô đun điều khiểnchính

 Tùy thuộc vào phương pháp tích hợp được chọn (ví dụ depth or breadth first), các

mô đun bổ sung tiếp theo được thay thế theo trình tự với các bộ phận thực

 Các bài kiểm thử sẽ được tiến hành khi mỗi mô đun được tích hợp

 Khi hoàn thành từng bài kiểm thử một, các bộ phận tiếp theo sẽ được thay thế bởi

là vô cùng cần thiết Nếu chọn phương pháp tích hợp depthfirst, có thể tiến hành và trìnhbày một chức năng hoàn chỉnh của phần mềm Ví dụ, giả sử một cấu trúc chuyển giaotrong đó có một chuỗi các đầu vào tương tác với nhau được yêu cầu, thực hiện và hợpthức hóa qua một đường đến Đường đến có thể được tích hợp theo cách từ trên xuốngdưới Tất cả các đầu vào xử lý (để chuyển đi sau này) có thể được thể hiện trước khi cácyếu tố khác của cấu trúc đã được tích hợp Việc thể hiện ngay từ đầu khả năng mangchức năng là rất có ích đối với người phát triển và khách hàng

Trang 14

Phương pháp từ trên xuống có vẻ không phức tạp, nhưng trên thực tế, có thể nảysinh các vấn đề logic Một trong những vấn đề thường gặp xảy ra khi xử lý ở mức thấptheo thứ tự được yêu cầu để kiểm thử ở các mức cao hơn Các mô đun phụ thay thế các

mô đun mức thấp ở giai đoạn đầu của quá trình kiểm thử từ trên xuống Vì thế, không cóbất kì dữ liệu đáng kể nào có thể chuyển lên trên trong cấu trúc chương trình Người kiểmthử sẽ đứng giữa 3 lựa chọn:

 Hoãn các bài kiểm thử lại cho đến khi các mô đun phụ được thay thế bằng mô đunthực

 Phát triển các mô đun phụ thực hiện các chức năng hạn chế thức đẩy mô đun thực

 Tích hợp phần mềm từ dưới lên trên

Phương pháp đầu tiên (hoãn các bài kiểm thử lại cho đến khi các mô đun phụ đượcthay thế bằng mô đun thực) làm cho chúng ta mất điều khiển giữa các bài kiểm thử cụ thể

và sự kết hợp các mô đun cụ thể Việc này có thể dẫn tới khó khăn trong việc xác địnhnguyên nhân gây lỗi và có xu hướng vi phạm bản chất giới hạn của phương pháp từ trênxuống Phương pháp thứ 2 có thể phát huy tác dụng nhưng có thể dẫn đến tình trạng phảithực hiện thêm nhiều bước nữa, vì các mô đun phụ trở nên ngày càng phức tạp Phươngpháp thứ 3, gọi là kiểm thử từ dưới lên, được trình bày trong phần tiếp theo

Trang 15

Ví dụ

Khi cần xây dựng một hệ thống quản lý bán hàng điện tử có mô hình như hìnhdưới đây:

Đầu tiên khi muốn xây dựng hệ thống ta phải xây dựng các chức năng chính của

hệ thống như chức năng quản lý bán hàng, quản lý nhập hàng, quản lý bảo hành, báo

cáo thống kê Sau đó mới có thể xây dựng tiếp các chức năng con khác sau

Quản lý mua, bán và bảo hành thiết bị máy tính

Báo Cáo Thống Kê

Lập báo cáo doanh thu

Thông báo từ chối nhập

Lập phiếu bảo hành

Lập hoá đơn

Báo cáo TB tồn kho

Báo cáo TB bảo hành Thông báo từ

chối xuất

Trang 16

Ta có lập một sơ đồ tích hợp các chức năng của hệ thống quản lý bán hàng như

sau:

Tùy theo yêu cầu của từng công ty mà ta có thể tích hợp hay loại bỏ bớt các thànhphần của hệ thống

2 Bottom-up Intergration (Kiểm thử tích hợp từ dưới lên)

Kiểm thử tích hợp từ dưới lên, như tên gọi của nó, bắt đầu xây dựng và kiểm thử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úcchương trình) Do các bộ phận được tích hợ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ích hợp từ dưới lên có thể được tiến hành theo các bước sau:

 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ứcnă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 đầuvào và đầu ra kiểm thử

chối xuất

Thanh toán bằng tiền mặt

Thanh toán bằng thẻ Giao hàng

tận nhà

Ngày đăng: 03/03/2014, 16:27

HÌNH ẢNH LIÊN QUAN

Hình 1. Sơ đồ các cấp độ kiểm thử - kiểm thử tích hợp
Hình 1. Sơ đồ các cấp độ kiểm thử (Trang 5)
Hình 2 Kiểm thử tích hợp từ trên xuống - kiểm thử tích hợp
Hình 2 Kiểm thử tích hợp từ trên xuống (Trang 12)
Khi cần xây dựng một hệ thống quản lý bán hàng điện tử có mơ hình như hình dưới đây: - kiểm thử tích hợp
hi cần xây dựng một hệ thống quản lý bán hàng điện tử có mơ hình như hình dưới đây: (Trang 15)
Tích hợp tiến hành theo các bước trình bày trong hình 3. Các bộ phận được kết hợp để hình thành nhóm 1, 2 và 3 - kiểm thử tích hợp
ch hợp tiến hành theo các bước trình bày trong hình 3. Các bộ phận được kết hợp để hình thành nhóm 1, 2 và 3 (Trang 17)
Hình 4: Sơ đồ luồng kiểm thử tích hợp (Source base77.com) - kiểm thử tích hợp
Hình 4 Sơ đồ luồng kiểm thử tích hợp (Source base77.com) (Trang 20)
Hình 5: Đồ thị nguyên nhân – kết quả - kiểm thử tích hợp
Hình 5 Đồ thị nguyên nhân – kết quả (Trang 27)
Bảng quyết định - kiểm thử tích hợp
Bảng quy ết định (Trang 28)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w