intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: _ _ | Ngày: | Loại File: PPT | Số trang:64

15
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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!

Chủ đề:
Lưu

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 3) Boundary­related 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 ­ …
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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.
  19. Vò ng  đờ i cua  ̉ bug 19
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2