1. Trang chủ
  2. » Tất cả

Bài giảng kiểm thử và đảm bảo chất lượng phần mềm chương 3

20 1 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

Thông tin cơ bản

Tiêu đề Bài giảng kiểm thử và đảm bảo chất lượng phần mềm chương 3
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 664,05 KB

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

Nội dung

KỸ THUẬT KIỂM THỬ 1 Các nguyên lý 2 Vòng đời 4 Kiểm thử chức năng 3 Kỹ thuật kiểm thử 5 Kiểm thử cấu trúc 6 Quản lý chất lượng KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM Chương 3 1 Nội dung Tổng quan về[.]

Trang 1

KỸ THUẬT KIỂM THỬ

1 Các nguyên lý 2 Vòng đời

4 Kiểm thử chức năng

3 Kỹ thuật kiểm thử

5 Kiểm thử cấu trúc 6 Quản lý chất lượng

1

Trang 2

Nội dung

Tổng quan về lỗi phần mềm

Thực hành kiểm thử

Kiểm thử tĩnh Tổng quan về thiết kế trường hợp kiểm thử

Kiểm thử phần mềm

Trang 3

Một lỗi phần mềm là sự không trùng khớp

giữa chương trình và đặc tả của nó, nếu đặc tả phần mềm tồn tại và được cho là đúng Đặc tả sai  phần mềm sai

Một lồi phần mềm hiện diện khi chương trình không làm cái mà người sử dụng đầu cuối

mong muốn nó làm.

3

L i ph n m m (Bug) ỗ ầ ề

Trang 4

1) Lỗi giao diện người dùng - User interface errors

2) Lỗi xử lý - Error handling

3) Lỗi liên quan tới ranh giới/biên - Boundary-related errors

4) Lỗi tính toán - Calculation errors

5) Lỗi các trạng thái đầu và sau - Initial and later states

6) Lỗi luồn kiểm soát - Control flow errors

7) Lỗi trong xử lý hoặc dịch dữ liệu - Errors in handling or interpreting data

8) Tranh đoạt điều khiển - Race conditions

9) Điều kiện tải - Load conditions

10) Phần cứng – Hardware

11) Kiểm soát phiên bản và mã nguồn – Source and version control

Ca c nho m lô i phâ n mê m phô  ̉

biê n ́

Trang 5

Có nhiều cách để làm cho chương trình làm việc một cách khó khăn, người ta quy chúng vào một nhóm lỗi có tên là “Lỗi giao diện người dùng”

Lỗi giao diện người dùng chia thành nhiều nhóm nhỏ

­ Functionality: chFunctionality: chươ ươ ng tri nh không la m nh ng th  nh  no  nên la m, hoăc la m ng tri nh không la m nh ng th  nh  no  nên la m, hoăc la m ̀ ̀ ̀ ̀ ư ư ̃ ̃ ư ư ́ ́ ư ư ́ ́ ̀ ̀ ̣ ̣ ̀ ̀ môt ca ch khô s  hay không hoa n chinh ̣ ́ ̉ ở ̀ ̉

môt ca ch khô s  hay không hoa n chinh ̣ ́ ̉ ở ̀ ̉

­ Communication: La m thê  na o đê ti m ra ca ch s  dung chCommunication: La m thê  na o đê ti m ra ca ch s  dung ch̀ ̀ ́ ́ ̀ ̀ ̉ ̉ ̀ ̀ ́ ́ ử ử ̣ ̣ ươ ươ ng tri nh? No  co  ng tri nh? No  co  ̀ ̀ ́ ́ ́ ́ chi nh xa c không? Co  gi  đo  nhâ m lâ n, sai lêch không? ́ ́ ́ ̀ ́ ̀ ̃ ̣

chi nh xa c không? Co  gi  đo  nhâ m lâ n, sai lêch không? ́ ́ ́ ̀ ́ ̀ ̃ ̣

­ Command structure: Co  dê  bi lac trong chCommand structure: Co  dê  bi lac trong ch́ ́ ̃ ̃ ̣ ̣ ̣ ̣ ươ ươ ng tri nh không? Co  lênh na o dê  bi ng tri nh không? Co  lênh na o dê  bi ̀ ̀ ́ ́ ̣ ̣ ̀ ̀ ̃ ̃ ̣ ̣ nhâ m lâ n không? Co  lô i na o la m ban la ng phi  th i gian không? Vi  sao? ̀ ̃ ́ ̃ ̀ ̀ ̣ ̃ ́ ơ ̀ ̀

nhâ m lâ n không? Co  lô i na o la m ban la ng phi  th i gian không? Vi  sao? ̀ ̃ ́ ̃ ̀ ̀ ̣ ̃ ́ ơ ̀ ̀

­ Missing commands: chMissing commands: chươ ươ ng tri nh thiê u lênh, c ng nhă c va  kho  điê u chinh đê  ng tri nh thiê u lênh, c ng nhă c va  kho  điê u chinh đê  ̀ ̀ ́ ́ ̣ ̣ ư ư ́ ́ ́ ́ ̀ ̀ ́ ́ ̀ ̀ ̉ ̉ ̀ ̀ phu  h p v i t ng đô i t ̀ ợ ơ ư ́ ̀ ́ ượ ng ng ươ ̀ i s  dung. VD phi m tă t ử ̣ ́ ́

phu  h p v i t ng đô i t ̀ ợ ơ ư ́ ̀ ́ ượ ng ng ươ ̀ i s  dung. VD phi m tă t ử ̣ ́ ́

­ Performance:chPerformance:chươ ươ ng tri nh chay bi châm h n mong đ i ngng tri nh chay bi châm h n mong đ i ng̀ ̀ ̣ ̣ ̣ ̣ ̣ ̣ ơ ơ ợ ợ ươ ươ ̀ ̀ i du ngi du ng̀ ̀

­ Output: không co  đu thông tin đâ u ra mong muô n. VD ngOutput: không co  đu thông tin đâ u ra mong muô n. VD nǵ ́ ̉ ̉ ̀ ̀ ́ ́ ươ ươ ̀ ̀ i s  dung muô n xuâ t i s  dung muô n xuâ t ử ử ̣ ̣ ́ ́ ́ ́

đâ u ra qua thiê t bi đâ u cuô i, têp, ma y in ̀ ́ ̣ ̀ ́ ̣ ́

đâ u ra qua thiê t bi đâ u cuô i, têp, ma y in ̀ ́ ̣ ̀ ́ ̣ ́ 5

1) User interface errors

Trang 6

Không lường trước hết các sai sót của chương trình và bảo vệ chương trình trước các sai sót này

Thiếu thông báo lỗi hoặc điều kiện sinh ra lỗi.

Giải quyết lỗi được phát hiện không hợp lý

Vd trong việc bảo vệ chống lại dữ liệu bị corrupt, kiểm tra dữ liệu đầu vào người dùng, kiểm soát phiên bản,

bỏ qua lỗi tràn bộ nhớ, so sánh dữ liệu, không phục lỗi, phục hồi khi có lỗi phần cứng

2)  Error handling

Trang 7

Bất kỳ thành phần nào của chương trình được mô tả có sự xuất hiện của miền giá trị: từ nhiều hơn đến ít hơn, từ lớn nhất tới nhỏ nhất, từ sớm nhất tới muộn nhất, đầu tiên tới cuối cùng, ngắn nhất tới dài

nhất đều cần kiểm tra ranh giới miền giá trị Chương trình thường chạy đúng và ổn định với các giá trị nằm trong miền xác định và hay bị gặp lỗi/ sự cố tại các giá trị nằm ngoài biên của miền xác định

Tìm kiếm lỗi ranh giới: vòng lặp, không gian bộ nhớ, thời gian, xử lý sai các trường hợp nằm ngoài ranh giới

VD

­ Sô  lSô  ĺ ́ ượ ượ ng sinh viên tô i thiêu cua 1 l p ti n chi la  15 tô i đa la  40 sinh viênng sinh viên tô i thiêu cua 1 l p ti n chi la  15 tô i đa la  40 sinh viêń ́ ̉ ̉ ̉ ̉ ơ ơ ́ ́ ́ ́ ̉ ̉ ̀ ̀ ́ ́ ̀ ̀

­ Dung lDung lượ ượ ng bô nh  chiê m dung cua chng bô nh  chiê m dung cua cḥ ̣ ơ ơ ́ ́ ́ ́ ̣ ̣ ̉ ̉ ươ ươ ng tri nh khi th c thi tô i thiêu la  2MB ng tri nh khi th c thi tô i thiêu la  2MB ̀ ̀ ự ự ́ ́ ̉ ̉ ̀ ̀

tô i đa la  50MB ́ ̀

3) Boundary­related errors

Trang 8

Hiểu sai công thức

Sai số tính toán

Tính toán sai do sai thuật toán

Sử dụng sai công thức

Sử dụng sai kiểu dữ liệu cho công thức tính toán

4)  Calculation errors

Trang 9

Nhiều chương trình chỉ sai ở lần chạy đầu tiên, ở

những lần chạy sau các thông tin khởi tạo đã được lưu trữ lại nên việc chạy chương trình không gặp lại lỗi này nữa.

Tìm kiếm lỗi: thiết lập chỉ mục dữ liệu bằng không,

khởi tạo biến kiểm soát vòng lặp, khởi tạo lại 1 con trỏ, …

VD Lỗi do lần đầu chạy file chưa được khởi tạo,

9

5) Initial and later states

Trang 10

Luồng kiểm soát của một chương trình miêu tả cái mà chương trình sẽ làm tiếp theo trong những hoàn cảnh cụ thể Lỗi luồng kiểm soát xẩy ra khi chương trình thực hiện sai việc làm tiếp

theo.

Lỗi này thường xuất hiện do giả định trạng thái trả ra sai, xử lý ngoại lệ dựa trên cách thoát, tràn trên tràn dưới bộ đệm, thất bại trong việc chặn và bỏ chặn ngắt, các so sánh, lỗi kiểu dữ liệu, thiếu hoặc sai các mặc định - default

Vd Lỗi luồng kiểm soát xẩy ra do câu lệnh rẽ nhánh.

6)  Control flow errors

Trang 11

Một modun có thể truyền dữ liệu tới modun hoặc chương trình khác Một tập dữ liệu có

thể được truyền đi và nhận lại nhiều lần

Trong quá trình này tập dữ liệu có thể bị

corrupt (hỏng) hoặc dịch sai Những thay đổi cuối cùng tới dữ liệu có thể bị mất hoặc thất lạc tới một vài phần khác của hệ thống.

11

7) Errors in handling or interpreting data

Trang 12

Khi làm việc với dữ liệu chia sẻ, dù ở dạng tệp, cơ sở dữ liệu, các kết nối mạng, bộ nhớ dùng chung hay ở những dạng khác của truyền

thông liên tiến trình, có một số lỗi dễ tạo ra làm tổn thương tới tính bảo mật của hệ thống, đặc biệt là trong các hệ thống đa xử lý.

Ví dụ, nếu bạn mở một tệp và sau đó đọc nó, mặc dù ứng dụng của bạn không làm gì giữa hai hoạt động, vài quy trình khác có thể thay thế tệp sau khi tệp đã được mở và trước khi được đọc Nếu hai tiến trình khác nhau (trong cùng hoặc khác ứng dụng) đang ghi lên chung một tệp, sẽ không có cách nào để biết cái nào ghi trước, cái nào sẽ ghi đè lên dữ liệu được ghi bởi tiến trình kia Tình huống này gây ra

8) Race conditions

Trang 13

Chương trình có thể hoạt động sai khi bị quá tải, nó có thể bị lỗi khi chạy trong một thời gian quá dài hoặc thực thi

quá trọng tải cho phép, chiếm dụng quá vùng nhớ cho

phép, thất bại khi cố chia sẻ vùng nhớ hoặc thời gian sử dụng CPU với chương trình khác hoặc giữa hai tiến trình con của nó

Ghi nhớ rằng tất cả mọi chương trình đều có giới hạn Vấn đề là nó có đáp ứng được các giới hạn đã đề ra hoặc cách xử lý thất bại khi vượt quá giới hạn cho phép

13

9)  Load conditions

Trang 14

Vd chương trình gửi dữ liệu tới các thiết bị

rồì lờ đi các mã lỗi phản hồi lại, và cố gắng sử dụng thiết bị phần cứng đang bận hoặc không tồn tại gây ra lỗi về phần cứng.

Hoặc trong trường hợp khác, nếu phần cứng hỏng, phần mềm cũng bị hỏng nếu nó không

10) Hardware

Trang 15

Cần kiểm soát phiên bản và toàn vẹn mã

nguồn, tránh trường hợp kiểm thử đi kiểm thử lại một phần mã nguồn phiên bản cũ

QA đưa ra những quy định chặt chẽ về toàn

vẹn mã nguồn và kiểm soát phiên bản mã

nguồn

Có thể dùng công cụ hỗ trợ để kiểm soát, vd GitHub, SVN,

15

11)  Source and version control

Trang 16

Các tài liệu cũng là một phần của sản phẩm phần mềm Tài liệu nghèo nàn, kém chất

lượng có thể làm người sử dụng tin là sản

phẩm làm việc không chính xác

12) Document

Trang 17

Các lỗi được tạo ra bởi kiểm thử viên là một

trong các lỗi phổ biến nhất được pha kiểm thử, chẳng qua là do người kiểm thử không báo cáo lại chi tiết các ca kiểm thử đó Nhưng kiểm thử viên nên ghi nhớ một số lỗi trong những lỗi bạn mắc phải khi sử dụng chương trình hoặc việc

bạn gặp quá nhiều lỗi kiểm thử khi kiểm thử có thể phản ánh các vấn đề trong giao diện người sử dụng  đây có thể tiềm ẩn lỗi trong thiết kế Khi đó các lỗi của bạn chính là các dữ liệu kiểm thử cho chương trình

17

13)  Testing errors

Trang 18

Khi có lỗi/ vấn đề được tìm thấy qua hoạt động kiểm thử, nó cần được báo cáo lại một cách rõ ràng, dễ hiểu để người

khác có thể đọc và fix nó  viết bug report

Làm thế nào để viết bug report hiệu quả

qua các báo cáo của các vấn đề mà bản thân họ không thể nhìn thấy

bước tối thiểu, bỏ qua các bước không cần thiết

Vòng đời của bug và nội dung bug

report

Trang 19

bug

Trang 20

Program, release,

version: thông tin về

chương trình, phiên bản

code hay bản phát hành

(release)

Report type:

Severity - mức độ

nghiêm trọng của lỗi:

minor<serious<fatal

Attachment- tài liệu

report

Ngày đăng: 24/02/2023, 09:42

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