Đang tải... (xem toàn văn)
Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử Các kỹ thuật kiểm thử
Trang 2• Phạm Đức Duy• Trần Văn Sơn• Vũ Tiến Đạt
• Bùi Trường Giang
THÀNH VIÊN
• Vũ Minh Đức• Đặng Diệu
• Trần Thị Trà Mi• Trần Minh Tuấn• Nguyễn Hoàng Vũ
Trang 3NỘI DUNG
Kiểm thử hộp trắng
Kiếm thử hộp
Trang 4Kiểm thử hộp trắng
Trang 5Kiểm thử hộp trắng
Khái niệm
Là phương pháp kiểm thử phần mềm chủ yếu tập trung vào các cấu trúc bên trong của phần mềm, chủ yếu là mã nguồn và cấu trúc của nó.
Trang 6Các yếu tố liên
Người tiến hành: Lập trình viên
Đối tượng chính: Cấu trúc bên trong
chương trình
Mục tiêu: Tìm ra các lỗi liên quan đến
Cấu trúc chương trìnhLogic chương trình
Những hành động và trạng thái trong chương trình
Trang 7Ưu Điểm:
Các lập trình viên có thể là người thực hiện
Có thể bắt đầu sớm kể cả khi chưa có giao diện người dùng Kiểm tra được kỹ càng hơn, độ phủ cao hơn
Phát hiện lỗi logic trong mã nguồn hiệu quả
Tối ưu hóa hiệu suất ứng dụng thông qua việc loại bỏ các phần mã không cần thiết
Kiểm soát được chất lượng mã nguồn đảm bảo khả năng bảo trì trong tương lai
Trang 9Kiểm thử luồng cơ bản
Kiểm thử dựa trên luồng điều khiển
Kiểm thử đột biến
Kiểm thử dựa trên luồng dữ
liệu
Các kỹ thuật kiểm thử hộp trắng
Trang 10Các cấp bao phủ của kiểm thử
Khái niệm: Là tỉ lệ các
thành phần thực sự được kiểm thử so với
tổng thể các thành phần.
Trang 11Các cấp bao phủ của kiểm thử
Các cấp bao phủ
Phủ cấp 0: kiểm thử những gì có thể kiểm thử được,
phần còn lại để người dùng phát hiện và báo lại sau
Phủ cấp 1: Bao phủ câu lệnh: các câu lệnh được thực
hiện ít nhất 1 lần
Phủ cấp 2: Bao phủ nhánh: tại các điểm quyết định thì
các nhánh đều được thực hiện ở cả hai phía T,F
Phủ cấp 3: Bao phủ điều kiện: Các điều kiện con của các
điểm quyết định được thực hiện ít nhất 1 lần
Phủ cấp 4: Kết hợp phủ nhánh và điều kiện
Trang 12Kiểm thử luồng điều khiển
Khái niệm đường thi hành: Để làm rõ khải niệm kiểm thử luồng điều kiện ta cần biết khái niệm
đường thi hành.
Trang 13 Là một kịch bản thi hành đơn vị phần mềm tương ứng, bao gồm cụ thể các lệnh được thi hành trong một lần chạy cụ thể từ điểm nhập tới điểm kết thúc của phần mềm
Trang 14Mục tiêu của kiểm thử luồng điều khiển:
Mục tiêu của phương pháp kiểm thử luồng điều khiển là đảm bảo mọi đường thi hành của đơn vị phần mềm cần kiểm thử đều chạy đúng
Trang 15Ví dụ
for (i=1; i<=1000; i++)
for (j=1; j<=1000; j++)
for (k=1; k<=1000; k++) doSomethingWith(i,j,k);
Đoạn code trên chỉ có 1 đường thi hành, nhưng rất dài : dài 1000*1000*1000 = 1 tỉ lệnh gọi hàm doSomething(i,j,k) khác nhau.
Mà cho dù có kiểm thử hết được toàn bộ các đường thi hành thì vẫn không thể phát hiện những đường thi hành cần có nhưng không (chưa) được hiện thực
Trang 16Kiểm thử đường thi hành cơ bản
• Giúp những người thiết kế ca kiểm thử nhận được một độ phức tạp của 1 logic thủ tục
Trang 17Các bước kiểm thử đường thi hành
Vẽ đồ thị lưu trình hoặc đồ
thị dòng
Bước 1:
Xác định độ phức tạp Cyclomat
Xác định 1 tập các đường
dẫn cơ sở độc lập
Thiết kế các trường hợp kiểm thử với
các đường dẫn độc lập
Thực hiện kiểm thử trên từng test case
Bước 2: Bước 3: Bước 4: Bước 5:
Trang 19Một số cấu trúc cơ bản
của đồ thị dòng
Trang 20Chuyển đổi lưu trình đồ
thị dòng
Trang 21Khái niệm độ phức tạp chu trình
• Là số đo sự phức tạp logic của chương trình.• Là số các đường đi độc lập cơ bản trong tập
các con đường độc lập của một chương trình.
• Là số đường độc lập nhỏ nhất phủ hết các cạnh của đồ thị luồng.
• Số đo này là giới hạn trên của số ca kiểm thử cần phải tiến hành để đảm bảo rằng, tất cả các câu lệnh trong chương trình đều được thực hiện ít nhất một lần
Trang 22Xác định đường thi hành tuyến tính độc lập
• Đ ư ờ n g t u y ế n t í n h đ ầ u t i ê n b ằ n g c á c h đ i d ọ c t h e o 1 n h á n h b ấ t k ỳ
• Dự a t rê n đ ư ờ n g c ơ s ở v ừ a c h ọ n , t h a y đ ổ i c u n g x u ấ t c ủ a n ú t q u y ế t đ ị n h đ ầ u t i ê n v à g i ữ t ố i đ a p h ầ n c ò n l ạ i• B ắ t đ ầ u v ớ i đ ư ờ n g c ơ s ở c h ọ n l ầ n 1 , t h a y đ ổ i c u n g
x u ấ t c ủ a n ú t q u y ế t đ ị n h s ố 2 v à g i ữ t ố i đ a p h ầ n c ò n l ạ i
• Ti ế p t ụ c t h a y đ ổ i c u n g x u ấ t c h o t ừ n g n ú t q u y ế t đ ị n h t rê n đ ư ờ n g c ơ s ở đ ể x á c đ ị n h c á c đ ư ờ n g t i ế p t h e o c h o đ ế n k h i k h ô n g c ò n n ú t q u y ế t đ ị n h n à o n ữ a
• L ặ p c h ọ n t u ầ n t ự t ừ n g đ ư ờ n g t ì m đ ư ợ c l à m đ ư ờ n g c h í n h đ ể x á c đ ị n h c á c đ ư ờ n g m ớ i c h o t ớ i k h i đ ủ s ố C
Trang 232.
Trang 25Đặc
trưng và mục
tiêu
Đặc trưng:
• Thuyết minh phần mềm đầy đủ chức năng, vận hành đúng
• Thực hiện các phép thử qua giao diện
Mục tiêu: Nhằm tìm ra các loại sai
Chức năng thiếu hoặc hoạt động không đúng đắnSai về giao diện
Sai trong cấu trúc dữ liệu hoặc trong truy cập dữ liệu ngoài
Sai thực thi chức năng
Sai khởi đầu hoặc kết thúc module
Trang 26Phân hoạch tương đương
Trang 27Phân hoạch tương đương
Chia miền vào chương trình thành các lớp dữ liệu Xác định đầu vào hợp lệ và không hợp lệ để lập các ca kiểm thử theo các lớp đó
Mỗi lớp dùng để kiểm thử một chức năng, gọi là lớp tương đươngThay vì kiểm tra tất cả các giá trị
đầu vào, có thể lựa chọn từ đầu vào cho riêng từng lớp
Ý tưởng
Trang 28Phương pháp phân hoạch tương đương
Nguyên tắc: Nếu điều kiện đầu vào định rõ giới hạn của một mảng, hoặc một giá trị xác định thì chia vùng tương đương thành
Một lớp tương đương hợp lệ
Hai lớp tương đương không hợp lệ
Một lớp đặc biệt trong trường hợp tồn tại
Trang 29Ví dụ
Khi cấp số thẻ thành viên clb, 3 số đầu của số thẻ phải nằm trong khoảng [111, 222], nếu sai sẽ có thông báo yêu cầu nhập lại, 2 số cuối phải thuộc khoảng [11,99]
Trang 30Ví dụ
Trang 32Phương pháp phân tích giá trị biên
Nguyên tắc: Tập trung phân tích các giá trị biên của miền dữ liệu để xây dựng dữ liệu kiểm thử
Trang 33Phương pháp phân tích giá trị biên đối với đầu vào một biến
Đối với đầu vào một biến các giá trị biên có thể liệt kê được là
• Giá trị nhỏ nhất của miền dữ liệu• Giá trị lớn nhất của miền dữ liệu
• Giá trị gần kề lớn hơn và nhỏ hơn giá trị lớn nhất
• Giá trị gần kề lớn hơn và nhỏ hơn giá trị nhỏ nhất
Trang 35Phương pháp phân tích giá trị biên cho đầu vào nhiều biến
Đối với 2 đầu vào x1, x2, … xn có điều kiện x1 [a,b],
X2 [c,d] , … xn [e,f]
Ta có thể xây dựng tập kiểm thử là tích Descartes tập giá trị biên của từng biến
Trang 36Ca kiểm thử các trường hợp đúng: (111,11), (111,99),(222,11),(222,99)
Ca kiểm thử các trường hợp sai: (111,10), (111,100), (222,10), (222,100), (223,99), (223,11),(110,11),(110,99)
Trang 37Nhận xét
Mỗi giá trị giới hạn đều nằm trong một phân vùng nào đó Nếu chỉ sử dụng giá trị giới hạn thì ta cũng có thể kiểm tra luôn phân vùng đó
Khi giá trị giới hạn bị sai thì cả phân vùng sẽ bị saiNếu chỉ dùng giá trị giới hạn thì không đem lại sự
tin tưởng cho người dùng vì các giá trị biên không xét được hêt các trường hợp đặc biệt (để ô trống, nhập kí tự đặc biệt…)
Nên kết hợp cả hai phương pháp phân tích giá trị biên và phân vùng tương đương
Trang 38Phương pháp
bảng hỗ trợ quyết
Khái niệm: Cung cấp cách
biểu diễn chính xác các điều kiện logic và các hành động tương ứng
Trang 39Dựa vào đặc tả yêu cầu phần mềm, lập bảng quyết định.
Từ bảng quyết định chuyển thành các ca kiểm thử trong đó mỗi cột miêu tả 1 luật được chuyển thành 1 tới n cột miêu tả các ca kiểm thử tương ứng với luật đó:
+ Nếu điều kiện nhập thử là giá trị luận lý thì mỗi cột luật được chuyển thành 1 ca kiểm thử
+ Nếu điều kiện nhập là 1 lớp tương đương(nhiều giá trị liên tục thì mỗi cột luật được chuyển thành nhiều ca kiểm thử dựa trên phương pháp phân hoạch tương đương hoặc giá trị biên)
Quy trình dùng bảng quyết định
Trang 41Ví dụ
Lập bảng hỗ trợ quyết định để thiết kế các ca kiểm thử
Trang 42Tổng Kết
Trang 43Sơ đồ tư duy
Các kỹ thuật kiểm
thửKiểm thử
hộp trắngTổng
quanKhái
Ưu điểm
Nhược điểm
Các kĩ thuậtCác cấp
bao phủ của
kiểm thử
Kiểm thử luồng
điều khiển
Kiểm thử hộp đenTổng
quanKhái
Đặc trưng
Mục đích
Phương phápPhân
hoạch tương đương
Phân tích giá trị
Bảng hỗ trợ quyết
định
Trang 44THANK YOU
NHÓM 5