Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 3
lượt xem 6
download
Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 3 cung cấp cho người học những kiến thức như: 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ử. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 3
- Chương 3 KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM KỸ THUẬT KIỂM THỬ 1 Các nguyên lý 2 Vòng đời 3 Kỹ thuật kiểm thử 4 Kiểm thử chức năng 5. Kiểm thử cấu trúc 6 Quản lý chất lượng 1
- Kỹ thuật kiểm thử 1 2 3 Kiểm thử phần mềm 4 5 6 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ử 2
- Lỗi phần mềm (Bug) 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
- Cá c nhó m lỗ i phầ n mề m phô ̉ biêLỗ́ingiao diện người dùng - User interface errors 1) 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 12) Tài liệu – Document 13) Các lỗi kiểm thử – Testing errors 4
- 1) User interface errors 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: chương trình không làm những thứ như nó nên làm, hoăc la ̣ ̀m ̣ ́ch khô s môt ca ̉ ở hay không hoàn chinh. ̉ Communication: Làm thế nào đê ti ̉ ̀m ra cách sử dung ch ̣ ương trình? Nó có ̣ chính xác không? Có gì đó nhầm lẫn, sai lêch không? Command structure: Có dễ bi lac trong ch ̣ ̣ ương trình không? Có lênh na ̣ ̀o dễ bi ̣ ̣ ̃ng phí thời gian không? Vì sao? nhầm lẫn không? Có lỗi nào làm ban la Missing commands: chương trình thiếu lênh, c ̣ ứng nhắc và khó điều chinh đê ̉ ̀ phù hợp với từng đối tượng người sử dung. VD phi ̣ ́m tắt Performance:chương trình chay bi châm h ̣ ̣ ̣ ơn mong đợi người dùng Output: không có đu thông tin đâ ̉ ̀u ra mong muốn. VD người sử dung muô ̣ ́n xuất ̣ ̀u cuối, têp, ma đầu ra qua thiết bi đâ ̣ ́y in. 5
- 2) Error handling 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 6
- 3) Boundaryrelated errors 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ố lượng sinh viên tối thiêu cua 1 l ̉ ̉ ớp tín chi la ̉ ̀ 15 tối đa là 40 sinh viên Dung lượng bô nh ̣ ớ chiếm dung cua ch ̣ ̉ ương trình khi thực thi tối thiêu la ̉ ̀ 2MB tối đa là 50MB 7 …
- 4) Calculation errors 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 8
- 5) Initial and later states 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
- 6) Control flow errors 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. 10
- 7) Errors in handling or interpreting data 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
- 8) Race conditions 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 lỗ hổng về bảo mật 12
- 9) Load conditions 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
- 10) Hardware 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 nhận ra và khôi phục lại từ phần cứng hỏng. 14
- 11) Source and version control 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
- 12) Document 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 16
- 13) Testing errors 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
- Vòng đời của bug và nội dung bug report 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ả - Mô tả làm thế nào để sinh ra vấn đề . Các lập trình viên bỏ 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 - Phân tích lỗi để có thể miêu tả nó bên trong một số lượng bước tối thiểu, bỏ qua các bước không cần thiết - Viết một báo cáo hoàn chỉnh, dễ hiểu sao cho lập trình viên không bị hiểu lầm hay bực mình 18 - Viết báo cáo ngay khi nhìn thấy.
- Vò ng đờ i cua ̉ bug 19
- Nôi dung cua bug ̣ ̉ report 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: Coding error Design issue Suggestion Decumentation Hardware Query Severity - mức độ nghiêm trọng của lỗi: minor
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Đảm bảo chất lượng phần mềm và kiểm thử (Phần 2) - Nguyễn Văn Vy
0 p | 343 | 74
-
Bài giảng Đảm bảo chất lượng phần mềm - Phan Thị Hoài Phương
202 p | 345 | 53
-
Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm - Thạc Bình Cường
10 p | 270 | 51
-
Bài giảng công nghệ phần mềm : Kiểm thử và Bảo trì part 1
5 p | 214 | 50
-
Bài giảng Công nghệ phần mềm - Chương 9: Kiểm thử và bảo trì phần mềm
0 p | 126 | 12
-
Bài giảng Đảm bảo và kiểm soát chất lượng phần mềm: Chương 2 - Nguyễn Mạnh Tuấn
64 p | 95 | 12
-
Bài giảng Đảm bảo và kiểm soát chất lượng phần mềm: Chương 5 - Nguyễn Mạnh Tuấn
56 p | 93 | 10
-
Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm: Phần 2 - Thạc Bình Cường
108 p | 49 | 10
-
Bài giảng Đảm bảo chất lượng phần mềm: Phần 2
104 p | 47 | 8
-
Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm: Phần 1 - Thạc Bình Cường
94 p | 39 | 8
-
Bài giảng Nhập môn Công nghệ phần mềm: Chương 7 - Đỗ Thị Thanh Tuyền
20 p | 116 | 8
-
Bài giảng Công nghệ phần mềm: Tổng quan về kiểm thử và đảm bảo chất lượng phần mềm - PGS. TS. Phạm Ngọc Hùng
32 p | 16 | 8
-
Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 1
58 p | 22 | 7
-
Bài giảng Phân tích thiết kế đảm bảo chất lượng phần mềm: Phần 2
121 p | 29 | 6
-
Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 2
27 p | 22 | 6
-
Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 4
72 p | 23 | 6
-
Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 6
26 p | 16 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn