SlideShare a Scribd company logo
1 of 92
Download to read offline
Lý thuyết
Kiểm Tra Phần Mềm
    Bài 05:    Các kỹ thuật thiết kế kịch bản kiểm tra

   GV:        Nguyễn Ngọc Tú
   Email:     nntu@hoasen.edu.vn
   Bộ môn:    Kỹ thuật Phần mềm
Nội dung
       Kỹ thuật thiết kế kịch bản kiểm thử
       Xác định thiết kế và Giai đoạn phát triển kiểm thử
       Phân loại kỹ thuật thiết kế
       Các kỹ thuật dựa trên đặc tả / Hộp đen (Black box)
        Phân hoạch tương đương
        Phân tích giá trị biên
        Kiểm tra bảng quyết định
        Kiểm tra chuyển trạng thái
       Các kỹ thuật dựa trên cấu trúc / Hộp trắng (White box)
        Kiểm tra các câu lệnh
        Kiểm tra các câu lệnh rẽ nhánh
        Các kỹ thuật kiểm tra khác
       Các kỹ thuật dựa trên kinh nghiệm
       Chọn lựa kỹ thuật kiểm tra

NNTu                         Software Testing S2008             2
Kỹ thuật thiết kế Kiểm thử

       Xác định và thiết kế test cases
       Phân loại kỹ thuật thiết kế Kiểm thử
       Kỹ thuật dựa trên đặc tả - hộp đen
       Kỹ thuật dựa trên cấu trúc - hộp trắng
       Kỹ thuật dựa trên kinh nghiệm
       Chọn kỹ thuật kiểm thử




NNTu                  Software Testing S2008    3
Xác định và thiết kế Kịch bản

   Khái niệm chính
       Cơ sở kiểm thử trong phân tích rủi ro
       Xác định mức rủi ro: khả năng xảy ra và ảnh
       hưởng
       Định rõ thiết kế kiểm thử, kịch bản, thủ tục
       Viết kịch bản
       Quan hệ Kịch bản và thủ tục
       Lập lịch thực hiện kiểm thử



NNTu                    Software Testing S2008        4
Giai đoạn phát triển kiểm thử

   Thực hiện trong qua giai đoạn
       Phân tích rủi ro chất lượng
       Thiết kế kiểm thử mức cao
       Thiết kế kiểm thử mức thấp




NNTu                    Software Testing S2008   5
Phân tích




NNTu        Software Testing S2008   6
Thiết kế mức cao



                                     Quan hệ loại rủi ro và
                                     bộ kiểm thử. Nắm rõ
                                     các quan hệ này
                                     nhằm “lần vết”
                                     (traceability).




NNTu        Software Testing S2008                            7
Thiết kế mức thấp – hiện thực




            Mỗi rủi ro chuyển dịch
             sang kiểm thử tương
          ứng với một số kịch bản.




NNTu           Software Testing S2008   8
Chất lượng – rủi ro

   Rủi ro
       Khả năng xảy ra không mong đợi


   Chất lượng và rủi ro sản phẩm
       Khả năng hệ thống sẽ sai với yêu cầu khách hàng, người
       sử dụng, giao kèo
       Họ các lỗi có thể ẩn dấu sau rủi ro chất lượng




NNTu                      Software Testing S2008                9
Phân tích rủi ro chất lượng !
                                                               Lỗi không mong đợi và
   Không chính thức                Chuẩn ISO 9126               phân tích ảnh hưởng
Bắt đầu với phân loại rủi ro   Bắt đầu với 6 đặc tính chất    Bắt đầu với đặc tính, phân
cổ điển                        lượng chính                    loại, hệ thống con

Chức năng, trạng thái-giao     Chức năng, độ tin cậy, khả     Liệt kê các cách có thể xảy
dịch, công suất-khối lượng,    dụng, bảo trì, hiệu quả, khả   ra không mong đợi, dự đoán
chất lượng dữ liệu, xử lý      chuyển (FRUEMP)        phân    ảnh hưởng lên hệ thống,
lỗi-phục hồi, hiệu năng,       rã theo từng đặc điểm nhỏ      NSD, …
chuẩn-bản địa hóa, khả         cho hệ thống                   Phân công nghiêm ngặt, lập
dụng, …                                                       sự ưu tiên, khả năng xảy ra
                                                                 tính số ưu tiên rủi ro (risk
                                                              priority number - RPN)

Lập ưu tiên kiểm thử cho       Lập ưu tiên kiểm thử cho       Sử dụng RPN để dướng dẫn
mỗi rủi ro chất lượng          kiểu đặc tính                  mức độ kiểm tra sâu-rộng


  NNTu                               Software Testing S2008                              10
Rủi ro    tiềm tàng sự suy giảm mức độ hài lòng

               Risk priority number: đánh giá tổng thể của rủi ro
                                                                                 Lần vết thông tin
                                                                                   ngược lại các
                Rủi ro nghiệp vụ: ảnh hưởng của vấn đề                              yêu cầu, khía
                                                                                   cạnh rủi ro, …
         Rủi ro kỹ thuật: khả năng xảy ra vấn đề

                                                        Tech.        Bus.   Risk     Extent of
Quality Risk                                            Risk         Risk   Pri. #    Testing    Tracing
Risk Category 1
Risk 1
Risk 2
Risk n
          Phân cấp
                            1 = Very high
          các loại rủi ro
                            2 = High                 Đánh giá rủi ro
          giúp dễ liệt                                                                 1-5 = Extensive
                            3 = Medium               từ tổ hợp rủi ro
          kê và gợi                                                                    6-10 = Broad
                            4 = Low                  KT – NV
          nhớ                                                                          11-15 = Cursory
                            5 = Very low             1-25
                                                                                       16-20 = Opportunity
                                                                                       21-25 = Report bugs
   NNTu                                     Software Testing S2008                                    11
Gợi ý cho phân tích rủi ro
   Nhóm não công chéo chức năng
   Xác định và gán mức rủi ro cho mục xác định
   Chỉ tách rời các mục khi cần thiết để phân biệt giữa các mức
   khác nhau
   Cân nhắc rủi ro kỹ thuật và nghiệp vụ
     Rủi ro kỹ thuật:
          khả năng xảy ra, ảnh hưởng của “vấn đề” lên hệ thống
       Rủi ro nghiệp vụ:
          khả năng sử dụng, ảnh hưởng tới NSD
   Tiếp tục và sắp xếp lại phân tích rủi ro, dự án tại những mốc thời
   gian quan trọng




NNTu                          Software Testing S2008                12
IEEE 829: Đặc tả thiết kế
   Mô tả tập hợp các kịch bản kiểm thử ở mức cao, bao gồm các
   phần sau
     Xác định đặc tả thiết kế kiểm thử
     Đặc trưng được kiểm thử (trong bộ kiểm thử - test suite)
     Làm rõ cách tiếp cận (kỹ thuật, công cụ đặc biệt, ...)
     Nhận dạng kiểm thử (lần vết tới kịch bản kiểm thử trong bộ)
     Các đặc trưng thỏa/không thỏa tiêu chuẩn (test oracle, cơ sở
     kiểm thử, hệ thống kế thừa, ...)
   Tập hợp các kịch bản gọi là bộ kiểm thử - test suite
   Thứ tự (test suites , test cases) thường
       hướng theo độ ưu tiên rủi ro, nghiệp vụ
       chịu tác động bởi hợp đồng, tài nguyên, tiến triển




NNTu                           Software Testing S2008               13
IEEE 829: Đặc tả kịch bản
   Đặc tả kịch bản kiểm thử bao gồm
     Xác định đặc tả kịch bản kiểm thử
     Các Mục kiểm thử
          phần nào được chuyển giao / kiểm thử
       Đặc tả thông tin đầu vào
          nhập liệu từ NSD, tập tin, ...
       Đặc tả thông tin đầu ra
          kết quả kỳ vọng: màn hình kết quả, tập tin, thời gian,…
       Môi trường cần thiết
          phần cứng, phần mềm, con người, phụ trợ, …
       Yêu cầu thủ tục đặc biệt
          tác vụ can thiệp, quyền, …
       Phụ thuộc liên kịch bản
          nếu cần cho tiền điều kiện
   Thực tế, kịch bản thay đổi đáng kể trong việc cố gắng, quá trình,
   bảo đảm điều kiện kiểm thử

NNTu                             Software Testing S2008             14
IEEE 829: Đặc tả thủ tục
   Mô tả làm sao để thực thi một hay nhiều kịch bản, bao gồm các
   phần sau
     Xác định đặc tả thủ tục kiểm thử
     Mục đích
         kiểm thử nào được thực thi
       Yêu cầu đặc biệt
         kỹ năng, quyền, môi trường, …
       Các bước thủ tục
         ghi nhận, thiết lập, khởi động, thực hiện, đánh giá kết quả,
         shutdown/suspension, khởi động lại, dừng, wrap up/tear down, sự
         kiện bất ngờ
   Các thủ tục kiểm thử thường được nhúng trong các kịch bản
   Kịch bản kiểm thử đôi khi được nhắc đến như là mã kịch bản
   kiểm thử (script) và có thể thực hiện tay hay tự động


NNTu                          Software Testing S2008                       15
Bao phủ kịch bản Kiểm thử
(Lần vết - Traceability)
                                                                Test Case
 Đo lường, đánh giá tương




                                              1.1
                                                    1.2
                                                          1.3
                                                                1.4
                                                                      1.5
                                                                            1.6
                                                                                  1.7
                                                                                        1.8
                                                                                              2.1
                                                                                                    2.2
                                                                                                          2.3
                                                                                                                2.4
                                                                                                                      2.5
                                                                                                                            Total
 quan các miền nội dung kiểm          Spec
                                      1.1       1 1               1   1                   2                                         6
 thử                                  1.2       2                 2 1                           1           2                       8
                                      1.3
 Sử dụng như cách đánh giá            1.4             2                                                     2
                                                                                                                                    0
                                                                                                                                    4
 và làm nổi bật kiểm thử              1.5       1                 1                       1 1                                       4
                                      1.6                                     2                                                     2
 Kiểu thực tế                         1.7                   2           1           2                 2                             7
                                      1.8                               2                                         1                 3
       Đặc tả yêu cầu                 1.9       1                 1 2                                                               4
                                      1.10        1         1 1     1
       Đặc tả thiết kế                Total     5 4 2 5 4 3 3 4 2 2 7 1 0
                                                                                                                                    4

       Miền chức năng
       Rủi ro chất lượng                      Kỹ thuật
       Cấu hình                                     Sử dụng bảng tính
 Kỹ thuật thường sử dụng để                         Liệt kê kiểm thử và miền bao
 đảm bảo bao phủ kiểm thử                           phủ để đánh giá
 hoàn toàn                                          0: none; 1: indirect; 2: direct
NNTu                       Software Testing S2008                                                                            16
Phân loại Kỹ thuật thiết kế

   Khái niệm chính
       Lý do thực hiện kiểm thử
         hộp đen (specification-based - black box),
         hộp trắng (structure-based - white box),
         thực nghiệm (experience-based tests)
       Các kỹ thuật thông thường
       Đặc điểm và sự khác biệt




NNTu                        Software Testing S2008    17
3 kiểu thiết kế Kiểm thử
   Hộp đen (Specification-based - black box), chức năng, phi chức
   năng (functional , non-functional)
     Tạo kiểm thử chủ yếu nhờ vào phân tích các “cơ sở” kiểm thử
     Tìm kiếm lỗi theo cách của hệ thống thực hiện

   Hộp trắng (Structure-based - white box)
     Tạo kiểm thử chủ yếu nhờ vào phân tích cấu trúc các thành phần
     hay hệ thống
     Tìm kiếm lỗi theo cách hệ thống được xây dựng

   Dựa trên kinh nghiệm (Experience-based : tấn công, thăm dò,
   danh sách ý kiểm tra)
     Tạo kiểm thử chủ yếu nhờ vào sự hiểu biết về hệ thống, kinh
     nghiệm quá khứ, phương pháp phỏng đoán về lỗi
     Tìm lỗi nơi mà hệ thống có lỗi


NNTu                       Software Testing S2008                  18
Hộp đen

   Các thành phần thông thường:
       Các mô hình chính thức, không chính thức sử dụng định rõ vấn
       đề được giải quyết, phần mềm hoặc thành phần
       Kịch bản kiểm thử hệ thống hóa từ các mô hình này

   Bao gồm các phương pháp:
       Phân hoạch tương đương (Equivalence partitioning)
       Phân tích giá trị biên (boundary value analysis)
       Sơ đồ chuyển trạng thái (State transition diagrams)
       Bảng quyết định (Decision tables)
       Đồ thị Nhân quả (Cause-Effect Graph)



NNTu                         Software Testing S2008                   19
Hộp trắng

   Bao gồm các phần:
       Cấu trúc hệ thống (mã, thiết kế, ...) thường dẫn tới kịch bản kiểm
       thử
       Qui mô bao phủ kiến trúc có thể được đánh giá cho kịch bản
       kiểm thử khác
       Kiểm thử xa hơn có thể được dẫn ra có hệ thống hóa để gia tăng
       khả năng bao phủ

   Bao gồm:
       Bao phủ phát biểu
       Bao phủ nhánh



NNTu                          Software Testing S2008                    20
Dựa trên Thực nghiệm

   Bao gồm các phần:
       Tri thức, kinh nghiệm dùng để dẫn ra các kịch bản
       Có thể cân nhắc tri thức và kinh nghiệm phần mềm
          việc sử dụng, môi trường, …
       tri thức về lịch sử, khả năng có khiếm khuyết và phân bố lỗi

   Bao gồm:
       Tấn công
       Danh sách ý kiểm tra (Checklists)
       Thăm dò (Exploratory)




NNTu                          Software Testing S2008                  21
Kỹ thuật dựa trên đặc tả

   Khái niệm chính
       Sử dụng các phương pháp để viết kịch bản kiểm thử từ mô hình
       Mục tiêu chính của mỗi kỹ thuật
       Làm sao có thể đánh giá độ bao phủ
       Kiểm thử trường hợp sử dụng (Use case)




NNTu                        Software Testing S2008                    22
Phân lớp/hoạch tương đương
   Phân Chia thông tin đầu vào,                    VD: kiểm tra hỗ trợ của máy
   ra, hành vi và môi trường                       in
   thành các phân lớp được “xử                        Giao tiếp vật lý:
   lý” tương đương                                           Parallel, serial, USB 1.1, USB
   Định nghĩa ít nhất 1 kịch bản                             2.0, infrared, Firewire, SCSI,
   cho mỗi phần hoặc các vùng                                …?
   giá trị                                                Giao tiếp luận lý:
         Kiểm thử một giá trị đại                            Postscript, HPPL, ASCII, …
         diện của lớp.                                    Ứng dụng ảnh:
         Nếu giá trị đại diện bị lỗi thì                     Laser jet, ink jets, bubble jets,
         các thành viên trong lớp đó                         dot matrix, line printers, letter
         cũng sẽ bị lỗi như thế.                             quality, pen plotters, …
   Có thể sử dụng thông tin tiếp
   thị vào các phân lớp đặc biệt


NNTu                             Software Testing S2008                                      23
Phân lớp/hoạch tương đương

   Nhận dạng các lớp tương đương đầu vào:
       Dựa vào các điều kiện vào/ra trong đặc tính kỹ thuật/mô tả
       kỹ thuật.
       Cả hai lớp tương đương đầu vào: ‘valid’ và ‘invalid’.
       Dựa vào heuristics và chuyên gia.
         “input x in [1..10]”            classes: x<1, 1≤ x ≤10, x>10
         “Loại liệt kê A, B, C”          classes: A, B, C, not{A,B,C}
   Định nghĩa mẫu thử của các trường hợp cho mỗi
   lớp.
   Kiểm thử các trường hợp thuộc lớp tương đương
   ‘valid’
   Kiểm thử các trường hợp thuộc lớp tương đương
   ‘invalid’

NNTu                          Software Testing S2008                    24
Phân lớp/hoạch tương đương

   Ví dụ
       Nhập tọa độ 1 điểm trong không gian hai chiều
       với
         3≤ x ≤7
         5≤ y ≤9
       Phân hoạch không gian tương đương ?




NNTu                   Software Testing S2008          25
Phân tích giá trị biên (BVA)

   Ràm rõ phân hoạch tương đương tại các “góc cạnh”, điểm
   trị cuối của mỗi miền
       Phân lớp tương đương tìm lỗi trong mã xử lý mỗi miền như
       nhau
       Giá trị biên cũng tìm lỗi tại các vùng biên-viền
   Chỉ có thể sử dụng khi các vùng tương đương có thứ tự
   Biên phi chức năng (công suất , khối lượng , ...) có thể được
   dùng để kiểm tra phi chức năng




NNTu                      Software Testing S2008               26
Phân tích giá trị biên

   Chọn các giá trị biên đầu vào để kiểm tra các lớp đầu vào
   thay vì thêm vào những giá trị tùy ý.

   Cũng chọn những giá trị đầu vào như thế để cho ra những giá
   trị biên đầu ra.

   Ví dụ về chiến lược mở rộng việc phân lớp:
       Chọn một giá trị tùy ý cho mỗi lớp.
       Chọn các giá trị chính xác ở biên trên và biên dưới của mỗi lớp.
       Chọn các giá trị ngay lập tức ở dưới và trên mỗi biên (nếu có
       thể).



NNTu                          Software Testing S2008                      27
Ví dụ: Số nguyên

   “Muốn phân bao nhiêu phần ?”
       Nhập số nguyên dương nhỏ hơn 100




NNTu                    Software Testing S2008   28
Ví dụ: Số thực

   “Nhiệt độ trung bình là bao nhiêu ?”




NNTu                   Software Testing S2008   29
Ví dụ: Ký tự - Chuỗi

   “Mật khẩu (6-10 ký tự chữ)”




NNTu                  Software Testing S2008   30
Ví dụ: Ngày tháng

   “Nhập ngày khởi hành cho chuyến bay ?”




NNTu                 Software Testing S2008   31
Ví dụ: Thời gian

   “Nhập thời gian khởi hành cho chuyến bay ?”




NNTu                 Software Testing S2008      32
Ví dụ: Tiền tệ

   “Nhập giá mua (dưới $1000):”




NNTu                 Software Testing S2008   33
Bài tập: Phân lớp - biên

   Kiểm tra web thương mại bán đồ lặt vặt: banh, áo, …
   Tạo kiểm cha chức năng cho việc hấp nhận đơn hàng:
     Hệ thống chấp nhận mã số ID của hàng hóa là số 5 chữ số
     từ 00000 tới 99999
     ID được sắp xếp theo giá, từ rẻ nhất có mã gần 00000 tới
     mắc nhất có mã 99999
     Hệ thống chấp nhận số lượng đặt hàng từ 1 tới 99
     Nếu ngườì sử dụng nhập mã trước , nhập số lượng là 0, sẽ
     bị loại sản phẩm ra khỏi giỏ hàng
     Tổng giá trị đơn hàng tối đa $999.99
   Sử dụng phương pháp để tạo kiểm thử theo mẫu sau

NNTu                     Software Testing S2008                 34
Bản mẫu màn hình




NNTu      Software Testing S2008   35
Mẫu kiểm thử

  Test Number                  1                   2   …
  Inputs, Actions
          Item ID
          Quantity
          ?
          ?
  Expected Results
          Item Price
          Cart Contents
          Cart Total
          ?
          ?
          ?


NNTu                      Software Testing S2008           36
Kiểm thử theo kịch bản
(Use Cases/Scenario)

       Thiết kế các trường hợp khác nhau để phản ánh
       VD:
       đơn cho vay cầm cố nhà
         “John - Jenny Stevens có 3 đứa trẻ…”
         “…Ngôi nhà đáng giá $400K , họ sở hữu $350K…”
         “… hai xe trị giá $25K , họ sở hữu $17K…”
         “…Thu nhập $45K và 75K tính riêng…”
         “… chậm trễ chi trả Visa card và cho xe đã 17 và 35
         tháng …”
         “…họ đệ đơn xin vay 15K.”



NNTu                       Software Testing S2008              37
Use Cases và giới hạn biên

   Xem lại các điều kiện biên, các điều kiện
   thích hợp ảnh hưởng điều kiện biên ?
   Nếu có biến đếm 4-bytes, có muốn cho phép
   đặt 32K sản phẩm vì phần mềm hỗ trợ được
   Cho phép ngày khởi hành sau ngày đến ?
   Chấp nhận các dữ liệu “xàm” là lỗi ?




NNTu              Software Testing S2008   38
Bảng quyết định

   Luật về nghiệp vụ thường đặc tả chính xác trong bảng
   quyết định
       Quyết định xử lý đơn hàng như thế nào trên cơ sở kích cỡ, kho,
       trường hợp vận chuyển, … luôn có trong luật nghiệp vụ

       Có thể thể hiện dạng lưu đồ hoặc bảng

       Bảng quyết định có thể tạo ra kịch bản kiểm thử tức thì




NNTu                         Software Testing S2008                     39
Bảng quyết định ATM
Condition       1   2      3        4            5
                                                     Mô tả nghiệp vụ cho
Valid Card      N   Y     Y         Y            Y
                                                     một máy ATM. Chú ý
Valid PIN       -   N     N         Y            Y   “-” mô tả điều kiện
Invalid PIN=3   -   N     Y         N            N   không thể thực hiện.
                                                     Các luật loại trừ tương
Balance OK      -   -      -        N            Y
                                                     hỗ, trong đó, một luật
                                                     chỉ được áp dụng tại
Action                                               một thời điểm.
Reject Card     Y   N     N         N            N   Chú ý, mức nghiệp vụ
Reenter PIN     N   Y     N         N            N   thường ở bên dưới
                                                     lớp giao tiếp NSD do
Keep Card       N   N     Y         N            N
                                                     đó việc kiểm tra đúng
Reenter         N   N     N         Y            N   đắn cần thực hiện
Request
Dispense Cash   N   N     N         N            Y
 NNTu                   Software Testing S2008                            40
Bảng quyết định phức tạp hơn

   Một vài phòng cảnh sát có máy tính cầm tay đọc thẻ căn cước
   của người vi phạm tốc độ
   Bảng quyết định có thể thực hiện để kiểm tra hệ thống này
   Cũng có thể sử dụng phân tích giá trị biên để bao phủ tốt các
   luật




NNTu                       Software Testing S2008                  41
Bảng quyết định hệ thống CS

Condition          1      2      3           4            5      6       7       8
License OK        No      -       -           -           -       -       -      -
Warrant            -     Yes      -           -           -       -       -      -
Registration OK    -      -     No            -           -       -       -      -
Vehicle OK         -      -       -         No            -       -       -      -
Excess Speed       -      -       -           -          1-10   11-20   21-25   >25


Action
Arrest            Yes    Yes      -           -           -       -       -     Yes
Fix-It Ticket      -      -     Yes         Yes           -       -       -      -
Warning            -      -       -           -          Yes      -       -      -
Fine              -250   -250   -25         -25          +0     +75     +150    +250



 NNTu                           Software Testing S2008                               42
Các Mô hình trạng thái hữu hạn

   Hiểu được các trạng thái khác nhau của hệ thống bao gồm
   cả việc khởi tạo và kết thúc
   Nhận diện các giao dịch, sự kiện, điều kiện, hoạt động
   trong mỗi trạng thái
   Sử dụng đồ thị hay bảng để mô hình hệ thống
   Cho mỗi sự kiện và điều kiện, kiểm chứng lại hoạt động
   và trạng thái sau đó




NNTu                   Software Testing S2008            43
Sơ đồ chuyển trạng thái




Sơ đồ trạng thái hệ thống điểm bán hàng từ quan điểm một
 thâu ngân. Hãy xét theo quan điểm của khách hàng, hệ
                      thống, tìm lỗi ?
NNTu                  Software Testing S2008           44
Bảng chuyển trạng thái
Current State   Event[Condition]          Action          New State
Logging In      Password[invalid]         Error           Logging In
Logging In      Password[valid]           Open register   Waiting
Logging In      Customer                  [Undefined]     [Undefined]
Logging In      Scan[any]                 [Undefined]     [Undefined]
Logging In      Pay[any]                  [Undefined]     [Undefined]
Logging In      Shift end                 [Undefined]     [Undefined]


 Bảng trạng thái có thể mô tả lại chuyển trạng thái phức tạp. Nó có thể
             dẫn tới những trường hợp không xác định …

Bài tập: Mô tả hoạt động của máy ATM dạng chuyển trạng thái


NNTu                          Software Testing S2008                    45
Các Mô hình trạng thái hữu hạn

   Xét thêm ví dụ sau
   Máy in chủ có các trường hợp sau:
       Chờ
       Lập hàng đợi
       In
       Chờ đợi NSD can thiệp
       Chờ đợi bộ điều khiển can thiệp
   Máy chủ đáp ứng các sự kiện




NNTu                       Software Testing S2008   46
Đồ thị máy trạng thái Máy in




NNTu        Software Testing S2008   47
Đồ thị Nhân quả
(Cause – Effect Graph)

   Đặc tính
              Cause        và              Effect
                 ↓                          ↓
               inputs                      outputs
          Trạng thái hiện tại           Trạng thái mới

   Kỹ thuật này gồm có 4 bước như sau :
       Xác định Cause (điều kiện nhập vào) và effect (hành động
       – kết quả) cho mỗi một module cần kiểm định.
       Xây dựng đồ thị cause-effect:
       Đồ thị được chuyển thành bảng quyết định
       Những phần/luật trong bảng quyết định được chuyển thành
       các trường hợp kiểm thử.

NNTu                      Software Testing S2008             48
Đồ thị Nhân quả
(Cause – Effect Graph)


       A       B   xác định
                                                A
       A       B   NOT            E
                                                B
       A
                                      Exclusive-
           A   C   AND                     if A== true then B = false
                                           if B== true then A = false
       B
                                                                    A
       A
                                                A
                                  I
           O   C   OR                           B                   B

       B
                                      Include-                   require-


NNTu                   Software Testing S2008                               49
Đồ thị Nhân quả:                                 ví dụ
(Cause – Effect Graph)

   Mô tả của một module:
       Sồ lượng vấn đề cần kiểm tra là 5.
       Kết quả
          “Pass” - nếu kết quả của 4 hay nhiều hơn 4 chủ đề là thành công.
          “Temporary pass” - nếu kết quả của 2 hay 3 chủ đề là thành công
          “Failure” - nếu kết quả có duy nhất 1 chủ đề là thành công


       Cause( Dữ Liệu Nhập)                         Result (Dữ Liệu Xuất )

       1. Nếu kết quả   của 4 hay                   4. Pass
          nhiều hơn 4   chủ để là                   5. Temporary Pass
          thành công                                6. Failure
       2. Nếu kết quả   của 2 hay
          3 chủ để là   thành
          công
NNTu                           Software Testing S2008                        50
Đồ thị Nhân quả:                            ví dụ
(Cause – Effect Graph)

                                        1         3
                     E
                                              A   4

                                       2          5

Cause & Result                                        T1   T2   T3

Cause    1. Pass 4 hay nhiều hơn 4 chủ đề             Y    N    N

         2. “Pass” 2 hay nhiêu hơn 2 chủ đề           -    Y    N

Result   3. “Pass” là kết quả xuất ra                 X    -    -

         4. “Temporary Pass” là kết quả xuất          -    X    -
            ra
         5. “Failure” là kết quả xuất ra              -    -    X

NNTu                     Software Testing S2008                      51
Kỹ thuật dựa trên cấu trúc

   Khái niệm chính
       Bao phủ mã (Code coverage)
       Bao phủ phát biểu-điều kiện (Statement and decision
       coverage)
       Kỹ thuật thiết kế kiểm thử luồng điều khiển




NNTu                     Software Testing S2008              52
Cơ sở hộp trắng

   Hệ thống làm việc bên trong ra sao ?
      Xác định và đạt được mức bao phủ các luồng điều khiển
      trên cơ sở phân tích mã
      Xác định và đạt được mức bao phủ các luồng dữ liệu trên cơ
      sở phân tích mã và dữ liệu
      Xác định và đạt được mức bao phủ các luồng giao tiếp, lớp
      luồng gọi thực thi trên cơ sở phân tích API, thết kế hệ
      thống.
   Bao phủ cấu trúc là cách kiểm tra “khoảng cách” giữa kiểm
   thử đặc tả và theo kinh nghiệm
       kiểm nghiệm một chương trình (một phần chương trình, hay một
       hệ thống, một phần của hệ thống) đáp ứng tốt tất cả các giá trị
       input bao gồm cả các giá trị không đúng hay không theo dự định
       của chương trình
NNTu                         Software Testing S2008                  53
Bao phủ mã

   Mức bao phủ
    Bao phủ phát biểu
       Mỗi phát biểu đều được thực thi
    Bao phủ nhánh
       Mỗi nhánh thực hiện theo mỗi cách (T/F)
    Bao phủ điều kiện
       Mỗi tổ hợp các điều kiện được đánh giá – bảng sư thật
    Bao phủ quyết định đa điều kiện
       Chỉ các điều kiện tổ hợp ảnh hưởng quyết định
    Bao phủ lặp (Loop coverage):
       Tất cả các đường dẫn lặp 0,1, nhiều lần (lý tưởng, cực đại)
NNTu                      Software Testing S2008               54
Bao phủ mã: lược đồ mô tả




     Tuần tự
   (sequence)                              WHILE
                CASE




                                          UNTIL

                  IF

NNTu             Software Testing S2008            55
Bao phủ mã: lược đồ mô tả
            1




            2




            3


                           4


                                         6


        1                  7


            5




            8

NNTu            Software Testing S2008       56
Ví dụ:                    bao phủ mã

 Giá trị nào của n để thực        1    #include <stdio.h>
                                  2    main()
 thi hết các phát biểu ?          3    {
       n < 0, n > 0               4      int i, n, f;
                                  5      printf(“n = ");
 Bao phủ nhánh ?                  6      scanf("%d", &n);
       n=0                        7      if (n < 0) {
                                  8        printf("Invalid: %dn", n);
 Bao phủ điều kiện ?              9        n = -1;
       Không có điều kiện tổ     10      } else {
       hợp                       11        f = 1;
                                 12        for (i = 1; i <= n; i++) {
 Bao phủ đường ?                 13          f *= i;
                                 14        }
       Cần xác định n = 1 và     15        printf("%d! = %dn", n, f);
       n = max                   16      }
                                 17      return n;
                                 18    }

NNTu                           Software Testing S2008               57
Bao phủ mã –
công cụ thiết kế kiểm thử

   Kỹ thuật hộp đen có thể bỏ qua 75% hay hơn nữa
   các phát biểu không bao phủ
       Vấn đề ?
       Phụ thuộc vào không bao phủ cái gì !
   Các công cụ bao phủ mã cung cấp chương trình
   theo dõi bao phủ mã thông qua kiểm thử
   Khoảng cách trong bao phủ mã có thể dẫn tới nhiều
   kịch bản kiểm thử để đạt được mức bao phủ cao
   hơn



NNTu                       Software Testing S2008   58
Đường cơ sở




NNTu          Software Testing S2008   59
Đường cơ sở

   Các đường cơ sở
       path 1: 1-11
       path 2: 1-2-3-4-5-10-1-11
       path 3: 1-2-3-6-8-9-10-1-11
       path 4: 1-2-3-6-7-9-10-1-11
   Số đường cơ sở
   V(G) = E -N + 2     V(G) = 11 edges 9 nodes + 2 = 4
   V(G) = P + 1        V(G) = 3 predicate nodes + 1 = 4
   V(G) = R + 1(o)




NNTu                       Software Testing S2008         60
Đường cơ sở




NNTu          Software Testing S2008   61
Đường cơ sở
                                                                       R4
       1                                         1




       2                                         2




       3                                         3


           4                                              4
                                            R1
               6                                     R2       R3   6


           7                                              7


       5                                         5




       8                                         8



NNTu               Software Testing S2008                                   62
Phức tạp vòng McCabe Cyclomatic

   Đánh giá độ phức tạp luồng điều khiển
       Đánh giá bởi phác họa đồ thị trực tiếp
       Nút mô tả vào, ra và điều kiện
       Cạnh mô tả các phát biểu không nhánh
   Hữu ích trong kiểm thử
       Các module có độ phức tạp cao vốn có nhiều “lỗi” và dễ
       hồi quy
       Số đường dẫn cơ bản tương ứng số kiểm thử căn bản




NNTu                       Software Testing S2008               63
Phức tạp Cyclomatic                 với Giai thừa




NNTu       Software Testing S2008                   64
Đường cơ bản/cơ sở - kiểm thử




NNTu       Software Testing S2008   65
Bao phủ câu lệnh

   Sao cho mỗi câu lệnh của chương trình được
   thực hiện ít nhất một lần.
       không thể biết được có lỗi xảy ra trong câu lệnh
       đó hay không.
       kiểm tra với một giá trị đầu vào không đảm bảo là
       sẽ đúng cho mọi trường hợp.




NNTu                    Software Testing S2008         66
Bao phủ câu lệnh




NNTu       Software Testing S2008   67
Bao phủ câu lệnh
                                                                    1

       Ví dụ:
       Đoạn chương trình thực hiện tính:                            2

       result = 0+1+…+|value|,
                                                                    3
       nếu result <= maxint, báo lỗi trong trường hợp ngược lại.                4



       1 PROGRAM maxsum ( maxint, value : INT )                    5         6-
                                                                             7
       2       INT result := 0 ; i := 0 ;
       3       IF value < 0                                        9
       4       THEN value := - value ;
       5       WHILE ( i < value ) AND ( result <= maxint ) 11          10
       6       DO        i := i + 1 ;
       7                 result := result + i ;                   12
       8       OD;
       9       IF result <= maxint
       10      THEN OUTPUT ( result )
       11      ELSE OUTPUT ( “too large” )             maxint = 10, value = -1
       12 END.                                                  Hay
                                                        maxint = 0, value = -1
NNTu                              Software Testing S2008                   68
Bao phủ đường
                                                            A>B
       if ( A > B)
                                                     true            false
              S1;
              S2;
       else                                       S1; S2;              S3;
              S3;
              S4;
                                                            S4;


       if (A<B && C<D)                                         A>B
              S1;                                       true           false
       else
                                                      C>D
              S2;
                                           true                false
              S3;
                                            S1;                              S2;


                                                               S3;
NNTu                     Software Testing S2008                                    69
Bao phủ điều kiện

   phương pháp kiểm tra các biểu thức điều kiện trên 2
   giá trị true và false
       if (x > 0 && y > 0)
              x = 1;
                                             { (x>0, y>0), (x <=0, y>0) } !!
       else
              x = 2;



       while (x > 0 || y > 0)
       {
              x--; y--;                       { (x>0) }   !!!
              z += x*y;
       }



NNTu                         Software Testing S2008                            70
Bao phủ vòng lặp




       Vòng lặp
        đơn giản



                   Vòng lặp
                                            Vòng lặp
                   lồng nhau
                                           nối tiếp nhau




NNTu                           Software Testing S2008      71
Bao phủ nhánh – điều kiện

   Ví dụ

       if (x<1 && y>1)                                  1
              x = x + y;
                                                    2
       else                                                 4
              y = y - x;


   100%         bao phủ nhánh
       (x=0,y=2), (x=1,y=2) [TT,FT]

   Nhưng không bao phủ hết điều kiện
       Cần trường hợp TF (x=0,y=1)

NNTu                       Software Testing S2008               72
Vấn đề trong tổ hợp điều kiện

   Tạo ra điều kiện phức tạp hơn là nó biểu hiện
   Có thể bỏ xót trường hợp
                                                 1
   Ví dụ
       Thực chất là 3 đcs, thay vì 2                             2   3

            if (x<1){
              if (y>1)
                                                             1
                   x=x+y;
              else                                   2
                   y=y-x;                                        5
            } else                           3           4
              y=y-x;

NNTu                        Software Testing S2008                       73
Vấn đề trong bao phủ đường

   Không phải tất cả các đường có thể đi qua
   Các điều kiện có thể loại trừ nhau
   Ví dụ:
       Không thể đi qua [1,2,3,4,5]
                                                                1

                  if (x<1)                              2
                     y=2;                                   3
                  if (x >= 1)
                     y=3;                           4
                  z=y;                                  5

NNTu                       Software Testing S2008                   74
Ví dụ:

                            Age>80              | Y N N N N N
   if (Age>80 ||           Weight>300 | - Y N N N N
            Weight>300)
                           Age<=12     |     Y N N N
      return 0;
   if (Age <= 12)          Age>65      |       Y N N
      return 1;            Weight<120 |          Y N
   if (Age > 65)
                           Pills =     | 0 0 1 2 2 C
      return 2;
   if (Weight < 120)       ------------------------------
      return 2             Note: C: 2+(Weight/120)/50
   else
      return 2+(Weight-120)/50;
                                       McCabe = 6


NNTu                   Software Testing S2008                   75
Ví dụ:

                                  Age>80        | Y N N N N N N
                                  Weight>300    | - Y N N N N N
   if (Age>80 ||
                              Age<=12    |       Y N N N
       Weight>300)
   return 0;                  Age>65     |         Y N N
   if (Age <= 12)             Weight<120 |         - Y N
      return 1;
                              Pills =    | 0 0 0 1 2 2 C
   if (Age > 65 ||
       (Age<=65 && Weight<120))
      return 2;
   return 2+(Weight-120)/50;     McCabe = 7



NNTu                   Software Testing S2008                     76
Ví dụ:

                                     ____________ |
  pills=0;                           ____________ |
  if (Age < 80 && Weight <300)
                                     ____________ |
  {
    pills=1;                         ____________ |
    if (Age >= 65)                   ____________ |
      pills=2;
                                     Pills =      |
    else if (Age > 12)
      pills=2+(Weight-120)/50;                        - - - - - - -
  }                                  ---------------------------
  return pills;                      Note: C: 2+(Weight/120)/50




NNTu                   Software Testing S2008                     77
Bài tập: chuyển đổi số Hex

   Chấp nhận chuỗi ký tự thập lục phân (giữa các ký tự không
   mong muốn) . Nó bỏ qua các ký tự khác, chuyển Hex sang số
   Kiểm tra chuỗi dạng “059”, “ace”, “ACD” mức bao phủ đạt
   được là gì ?




NNTu                     Software Testing S2008                78
Bài tập: chuyển đổi số Hex
main()                                            nhex++;
{                                                 hexnum *= 0x10;
  int c;                                          hexnum += (c - 'a' + 0xa);
  unsigned long int hexnum, nhex;                 break;
  hexnum = nhex = 0;                          case 'A': case 'B': case 'C':
  while ((c = getchar()) != EOF) {            case 'D': case 'E': case 'F':
    switch (c) {                              /*upper case hex digit */
      case '0': case '1': case '2':               nhex++;
      case '3': case '4': case '5':               hexnum *= 0x10;
      case '6': case '7': case '8':               hexnum += (c - 'A' + 0xA);
      case '9':                                   break;
      /* Convert a decimal digit */           default:
          nhex++;                             /* non-hex characters */
          hexnum *= 0x10;                         break;
          hexnum += (c - '0');                }
          break;                          }
      case 'a': case 'b': case 'c':       printf("Got %d hex digits: %xn",
      case 'd': case 'e': case 'f':                      nhex, hexnum);
      /* lower case hex digit */          return 0;
                                          }



   NNTu                       Software Testing S2008                      79
Kỹ thuật dựa trên kinh nghiệm

   Khái niệm chính
       Lý do viết kịch bản kiểm thử dựa trên trực giác,
       kinh nghiệm và tri thức
       So sánh với kỹ thuật dựa trên cấu trúc




NNTu                    Software Testing S2008            80
Kỹ thuật dựa trên kinh nghiệm

   Dựa vào người kiểm thử với …
       …kỹ năng – trực giác
       …kinh nghiệm với ứng dụng tương tự
       …kinh nghiệm với kỹ thuật tương tự
   Kiểm tử tiền thiêt kế, thực nghiệm thường tạo ra trong suốt
   quá trình thực thi kiểm thử (chiến lược kiểm thử động)
   Kiểm thử thường giới hạn thời gian (time-boxed) (nhấn
   mạnh vào các điều kiện đặc biệt)
   Ví dụ: phán đóan, lùng kiếm lỗi, phá vỡ phần mềm
   (breaking software) trên cơ sở danh sách ý, phân loại lỗi,
   kiểm thử thăm dò


NNTu                      Software Testing S2008                 81
Cách tiếp cận thông thường

   Không tạo ra toàn bộ kiểm thử trong quá trình thực thi
   Có thể được hướng dẫn bởi:
      Danh sách ý kiểm tra (Checklist)
      Phân loại lỗi (Bug taxonomy)
      Liệt kê các kiểu tấn công (List of attacks)
      Cách tiếp cận “săn” lỗi (Bug hunt approach)
      Tập các lý do kiểm thử
   Được chuẩn bị cải tiến, một mức chi tiết
   Thường là kiểm thử ad hoc (on-the-fly testing - ad hoc
   testing), kiểm tra ngẫu nhiên (random testing)

NNTu                     Software Testing S2008             82
Chiến lược kiểm tra động

Thuận lợi                          Bất lợi
   Tìm lỗi hiệu quả                     Lỗ hổng bao phủ, đặc biệt
   Không mắc phải nghịch lý             khi có áp lực
   “thuốc trừ sâu” biến                 Khó đánh giá
   đổi lớn                              Không ngăn ngừa lỗi
   Có hiệu quả                          Không thích hợp nhóm
   Kiểm soát tốt việc chuẩn             lớn
   bị kiểm thử                          Khác biệt về kỹ năng và
   Sáng tạo                             kinh nghiệm


NNTu                  Software Testing S2008                    83
Trường hợp kiểm thử thăm dò


Staff           7 Technicians                 3 Engineers + 1 Mgr.
Experience      <10 years total                  > 20 years total
Test Type       Precise scripts               Chartered exploratory
Test Hrs/Day          42                                6
Bugs Found        928 (78%)                        261 (22%)
Effectiveness         22                               44




NNTu                 Software Testing S2008                           84
Bài tập: Kiểm tra động – tiền thiết kế
Major factors or concerns                                Dynamic   Pre-designed
Do thorough regression testing
Maximize bug finding efficiency
Use testers with limited experience
Automate half of the test cases
Deliver precise, accurate estimates
Test without test preparation time
Test a rapidly changing UI
Use a distributed test effort
Đánh dấu
+: phương pháp thích hợp
-: phương pháp không thích hợp
NNTu                            Software Testing S2008                        85
Chọn kỹ thuật kiểm thử

   Khái niệm chính
       Các nhân tố ảnh hưởng tới việc chọn kỹ thuật
       thiết kế phù hợp




NNTu                   Software Testing S2008         86
Chọn kỹ thuật kiểm thử

   Kiểu hệ thống
   Chuẩn quy tắc
   Yêu cầu khách hàng – hợp đồng
   Mức và kiểu rủi ro
   Mục tiêu kiểm thử
   Tài liệu sẵn sàng
   Kiến thức người kiểm thử
   Thời gian/ngân sách
   Vòng đời phát triển
   Kinh nghiệm – kiểu khiếm khuyết phát hiện
   …
NNTu                  Software Testing S2008   87
Động – Tiền thiết kế




NNTu        Software Testing S2008   88
Kiểm thử Chi tiết và chính xác

       Việc cân bằng kiểm thử
         Kiểm thử chính xác cho phép giảm người lành nghề
         Kiểm thử không chính xác có thể bao phủ nhiều điều
         kiện
         Kiểm thử chính xác cung cấp tiêu chuẩn minh bạch
         nhưng khó và bảo trì tốn kém
         Kiểm thử không chính xác viết nhanh nhưng bao phủ
         khó định nghĩa và đánh giá




NNTu                       Software Testing S2008             89
Bài tập - đọc hiểu




NNTu        Software Testing S2008   90
Đọc thêm

   [1]. Chapter 04
   [2]. Chapter 18
   [4]. Chapter 06, 05
   [4]. Chapter 07, 08
   [4]. Chapter 09, 10, 11




NNTu                Software Testing S2008   91
Q/A




NNTu   Software Testing S2008   92

More Related Content

What's hot

He thong cong cu kiem thu tu dong va dam bao chat luong phan mem
He thong cong cu kiem thu tu dong va dam bao chat luong phan memHe thong cong cu kiem thu tu dong va dam bao chat luong phan mem
He thong cong cu kiem thu tu dong va dam bao chat luong phan memViet Hung Vu
 
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMSldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMNguyễn Anh
 
6 câu hỏi phỏng vấn tester thông dụng năm 2021
6 câu hỏi phỏng vấn tester thông dụng năm 20216 câu hỏi phỏng vấn tester thông dụng năm 2021
6 câu hỏi phỏng vấn tester thông dụng năm 2021MDuyn83
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMNguyễn Anh
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PMNguyễn Anh
 
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan memTIen Le
 
[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test case[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test caseLe Vu Trung Thanh
 
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcaseTrần Đức Anh
 
Bai tap testing junit…..
Bai tap testing junit…..Bai tap testing junit…..
Bai tap testing junit…..Mua Xuong
 
Kiểm Thử Junit
Kiểm Thử Junit Kiểm Thử Junit
Kiểm Thử Junit Thanh Huong
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteDotnet Open Group
 
Unit Test with test JUNIT
Unit Test with test JUNIT Unit Test with test JUNIT
Unit Test with test JUNIT Cusanlui
 
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNguyễn Anh
 
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website nataliej4
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.Nguyễn Anh
 

What's hot (20)

He thong cong cu kiem thu tu dong va dam bao chat luong phan mem
He thong cong cu kiem thu tu dong va dam bao chat luong phan memHe thong cong cu kiem thu tu dong va dam bao chat luong phan mem
He thong cong cu kiem thu tu dong va dam bao chat luong phan mem
 
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMSldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
6 câu hỏi phỏng vấn tester thông dụng năm 2021
6 câu hỏi phỏng vấn tester thông dụng năm 20216 câu hỏi phỏng vấn tester thông dụng năm 2021
6 câu hỏi phỏng vấn tester thông dụng năm 2021
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PM
 
01 tester training - overview
01  tester training - overview01  tester training - overview
01 tester training - overview
 
Kiem thu
Kiem thuKiem thu
Kiem thu
 
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan mem
 
[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test case[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test case
 
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcase
 
Bai tap testing junit…..
Bai tap testing junit…..Bai tap testing junit…..
Bai tap testing junit…..
 
Kiểm Thử Junit
Kiểm Thử Junit Kiểm Thử Junit
Kiểm Thử Junit
 
Effective software testing
Effective software testingEffective software testing
Effective software testing
 
chuong 5
chuong 5chuong 5
chuong 5
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử website
 
Unit Test with test JUNIT
Unit Test with test JUNIT Unit Test with test JUNIT
Unit Test with test JUNIT
 
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
 
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
Đồ Án Tìm Hiểu Phần Mềm Loadrunner Kiểm Tra Hiệu Năng Website
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
 
chuong 6
chuong 6chuong 6
chuong 6
 

Similar to Bai05 thiet ketestcase-k-trpm@softtesting-nntu

Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuVan Pham
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuJenny Nguyen
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuVan Pham
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuJenny Nguyen
 
Bai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuBai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuVan Pham
 
Bai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuBai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuVan Pham
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuVan Pham
 
Bai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuBai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuVan Pham
 
Bai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuBai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuJenny Nguyen
 
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuBai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuJenny Nguyen
 
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuBai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuVan Pham
 
Bai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuBai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuVan Pham
 
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuBai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuJenny Nguyen
 
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuBai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuVan Pham
 
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuVan Pham
 
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuJenny Nguyen
 
pentest là gì
pentest là gì pentest là gì
pentest là gì laonap166
 
Quan li rui ro tm dung
Quan li rui ro   tm dungQuan li rui ro   tm dung
Quan li rui ro tm dungNgoc Dep
 

Similar to Bai05 thiet ketestcase-k-trpm@softtesting-nntu (18)

Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
 
Bai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuBai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntu
 
Bai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntuBai03 kiem tratinh-k-trpm@softtesting-nntu
Bai03 kiem tratinh-k-trpm@softtesting-nntu
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntu
 
Bai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuBai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntu
 
Bai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntuBai09 kiem traextreme-k-trpm@softtesting-nntu
Bai09 kiem traextreme-k-trpm@softtesting-nntu
 
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuBai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
 
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntuBai07 kiem tramuccao-k-trpm@softtesting-nntu
Bai07 kiem tramuccao-k-trpm@softtesting-nntu
 
Bai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuBai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntu
 
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuBai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
 
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntuBai10 lap tailieukiemtra-k-trpm@softtesting-nntu
Bai10 lap tailieukiemtra-k-trpm@softtesting-nntu
 
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
 
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
 
pentest là gì
pentest là gì pentest là gì
pentest là gì
 
Quan li rui ro tm dung
Quan li rui ro   tm dungQuan li rui ro   tm dung
Quan li rui ro tm dung
 

More from Van Pham

Thi cong da hoa cuong o tphcm thien loc phat
Thi cong da hoa cuong o tphcm thien loc phatThi cong da hoa cuong o tphcm thien loc phat
Thi cong da hoa cuong o tphcm thien loc phatVan Pham
 
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc Decal
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc DecalCửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc Decal
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc DecalVan Pham
 
Giao trinh co so du lieu can ban
Giao trinh co so du lieu can banGiao trinh co so du lieu can ban
Giao trinh co so du lieu can banVan Pham
 
Lect15 cloud
Lect15 cloudLect15 cloud
Lect15 cloudVan Pham
 
172506 633746925739945000
172506 633746925739945000172506 633746925739945000
172506 633746925739945000Van Pham
 
Bao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyBao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyVan Pham
 
Bai 02 active directory
Bai 02   active directoryBai 02   active directory
Bai 02 active directoryVan Pham
 
Gioi thieu va cac lenh tren console
Gioi thieu va cac lenh tren consoleGioi thieu va cac lenh tren console
Gioi thieu va cac lenh tren consoleVan Pham
 
Bai 08 quan ly in an
Bai 08   quan ly in anBai 08   quan ly in an
Bai 08 quan ly in anVan Pham
 
Bai 07 tao quan ly thu muc
Bai 07   tao quan ly thu mucBai 07   tao quan ly thu muc
Bai 07 tao quan ly thu mucVan Pham
 
Bai 06 quan ly dia
Bai 06   quan ly diaBai 06   quan ly dia
Bai 06 quan ly diaVan Pham
 
Bai 05 chinh sach nhom
Bai 05   chinh sach nhomBai 05   chinh sach nhom
Bai 05 chinh sach nhomVan Pham
 
Bai 04 chinh sach he thong
Bai 04   chinh sach he thongBai 04   chinh sach he thong
Bai 04 chinh sach he thongVan Pham
 
Bai 03 quan ly tai khoan nguoi dung
Bai 03   quan ly tai khoan nguoi dungBai 03   quan ly tai khoan nguoi dung
Bai 03 quan ly tai khoan nguoi dungVan Pham
 
Bai 01 gioi thieu cai dat
Bai 01   gioi thieu cai datBai 01   gioi thieu cai dat
Bai 01 gioi thieu cai datVan Pham
 
Bai08 ky thuatdebug-k-trpm@softtesting-nntu
Bai08 ky thuatdebug-k-trpm@softtesting-nntuBai08 ky thuatdebug-k-trpm@softtesting-nntu
Bai08 ky thuatdebug-k-trpm@softtesting-nntuVan Pham
 

More from Van Pham (19)

Thi cong da hoa cuong o tphcm thien loc phat
Thi cong da hoa cuong o tphcm thien loc phatThi cong da hoa cuong o tphcm thien loc phat
Thi cong da hoa cuong o tphcm thien loc phat
 
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc Decal
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc DecalCửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc Decal
Cửa hàng bán đồ chơi xe máy ở TPHCM - Hoàng Phúc Decal
 
Giao trinh co so du lieu can ban
Giao trinh co so du lieu can banGiao trinh co so du lieu can ban
Giao trinh co so du lieu can ban
 
Avl tree
Avl treeAvl tree
Avl tree
 
Quy tắc
Quy tắcQuy tắc
Quy tắc
 
Lect15 cloud
Lect15 cloudLect15 cloud
Lect15 cloud
 
Session1
Session1Session1
Session1
 
172506 633746925739945000
172506 633746925739945000172506 633746925739945000
172506 633746925739945000
 
Bao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyBao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mây
 
Bai 02 active directory
Bai 02   active directoryBai 02   active directory
Bai 02 active directory
 
Gioi thieu va cac lenh tren console
Gioi thieu va cac lenh tren consoleGioi thieu va cac lenh tren console
Gioi thieu va cac lenh tren console
 
Bai 08 quan ly in an
Bai 08   quan ly in anBai 08   quan ly in an
Bai 08 quan ly in an
 
Bai 07 tao quan ly thu muc
Bai 07   tao quan ly thu mucBai 07   tao quan ly thu muc
Bai 07 tao quan ly thu muc
 
Bai 06 quan ly dia
Bai 06   quan ly diaBai 06   quan ly dia
Bai 06 quan ly dia
 
Bai 05 chinh sach nhom
Bai 05   chinh sach nhomBai 05   chinh sach nhom
Bai 05 chinh sach nhom
 
Bai 04 chinh sach he thong
Bai 04   chinh sach he thongBai 04   chinh sach he thong
Bai 04 chinh sach he thong
 
Bai 03 quan ly tai khoan nguoi dung
Bai 03   quan ly tai khoan nguoi dungBai 03   quan ly tai khoan nguoi dung
Bai 03 quan ly tai khoan nguoi dung
 
Bai 01 gioi thieu cai dat
Bai 01   gioi thieu cai datBai 01   gioi thieu cai dat
Bai 01 gioi thieu cai dat
 
Bai08 ky thuatdebug-k-trpm@softtesting-nntu
Bai08 ky thuatdebug-k-trpm@softtesting-nntuBai08 ky thuatdebug-k-trpm@softtesting-nntu
Bai08 ky thuatdebug-k-trpm@softtesting-nntu
 

Bai05 thiet ketestcase-k-trpm@softtesting-nntu

  • 1. Lý thuyết Kiểm Tra Phần Mềm Bài 05: Các kỹ thuật thiết kế kịch bản kiểm tra GV: Nguyễn Ngọc Tú Email: nntu@hoasen.edu.vn Bộ môn: Kỹ thuật Phần mềm
  • 2. Nội dung Kỹ thuật thiết kế kịch bản kiểm thử Xác định thiết kế và Giai đoạn phát triển kiểm thử Phân loại kỹ thuật thiết kế Các kỹ thuật dựa trên đặc tả / Hộp đen (Black box) Phân hoạch tương đương Phân tích giá trị biên Kiểm tra bảng quyết định Kiểm tra chuyển trạng thái Các kỹ thuật dựa trên cấu trúc / Hộp trắng (White box) Kiểm tra các câu lệnh Kiểm tra các câu lệnh rẽ nhánh Các kỹ thuật kiểm tra khác Các kỹ thuật dựa trên kinh nghiệm Chọn lựa kỹ thuật kiểm tra NNTu Software Testing S2008 2
  • 3. Kỹ thuật thiết kế Kiểm thử Xác định và thiết kế test cases Phân loại kỹ thuật thiết kế Kiểm thử Kỹ thuật dựa trên đặc tả - hộp đen Kỹ thuật dựa trên cấu trúc - hộp trắng Kỹ thuật dựa trên kinh nghiệm Chọn kỹ thuật kiểm thử NNTu Software Testing S2008 3
  • 4. Xác định và thiết kế Kịch bản Khái niệm chính Cơ sở kiểm thử trong phân tích rủi ro Xác định mức rủi ro: khả năng xảy ra và ảnh hưởng Định rõ thiết kế kiểm thử, kịch bản, thủ tục Viết kịch bản Quan hệ Kịch bản và thủ tục Lập lịch thực hiện kiểm thử NNTu Software Testing S2008 4
  • 5. Giai đoạn phát triển kiểm thử Thực hiện trong qua giai đoạn Phân tích rủi ro chất lượng Thiết kế kiểm thử mức cao Thiết kế kiểm thử mức thấp NNTu Software Testing S2008 5
  • 6. Phân tích NNTu Software Testing S2008 6
  • 7. Thiết kế mức cao Quan hệ loại rủi ro và bộ kiểm thử. Nắm rõ các quan hệ này nhằm “lần vết” (traceability). NNTu Software Testing S2008 7
  • 8. Thiết kế mức thấp – hiện thực Mỗi rủi ro chuyển dịch sang kiểm thử tương ứng với một số kịch bản. NNTu Software Testing S2008 8
  • 9. Chất lượng – rủi ro Rủi ro Khả năng xảy ra không mong đợi Chất lượng và rủi ro sản phẩm Khả năng hệ thống sẽ sai với yêu cầu khách hàng, người sử dụng, giao kèo Họ các lỗi có thể ẩn dấu sau rủi ro chất lượng NNTu Software Testing S2008 9
  • 10. Phân tích rủi ro chất lượng ! Lỗi không mong đợi và Không chính thức Chuẩn ISO 9126 phân tích ảnh hưởng Bắt đầu với phân loại rủi ro Bắt đầu với 6 đặc tính chất Bắt đầu với đặc tính, phân cổ điển lượng chính loại, hệ thống con Chức năng, trạng thái-giao Chức năng, độ tin cậy, khả Liệt kê các cách có thể xảy dịch, công suất-khối lượng, dụng, bảo trì, hiệu quả, khả ra không mong đợi, dự đoán chất lượng dữ liệu, xử lý chuyển (FRUEMP) phân ảnh hưởng lên hệ thống, lỗi-phục hồi, hiệu năng, rã theo từng đặc điểm nhỏ NSD, … chuẩn-bản địa hóa, khả cho hệ thống Phân công nghiêm ngặt, lập dụng, … sự ưu tiên, khả năng xảy ra tính số ưu tiên rủi ro (risk priority number - RPN) Lập ưu tiên kiểm thử cho Lập ưu tiên kiểm thử cho Sử dụng RPN để dướng dẫn mỗi rủi ro chất lượng kiểu đặc tính mức độ kiểm tra sâu-rộng NNTu Software Testing S2008 10
  • 11. Rủi ro tiềm tàng sự suy giảm mức độ hài lòng Risk priority number: đánh giá tổng thể của rủi ro Lần vết thông tin ngược lại các Rủi ro nghiệp vụ: ảnh hưởng của vấn đề yêu cầu, khía cạnh rủi ro, … Rủi ro kỹ thuật: khả năng xảy ra vấn đề Tech. Bus. Risk Extent of Quality Risk Risk Risk Pri. # Testing Tracing Risk Category 1 Risk 1 Risk 2 Risk n Phân cấp 1 = Very high các loại rủi ro 2 = High Đánh giá rủi ro giúp dễ liệt 1-5 = Extensive 3 = Medium từ tổ hợp rủi ro kê và gợi 6-10 = Broad 4 = Low KT – NV nhớ 11-15 = Cursory 5 = Very low 1-25 16-20 = Opportunity 21-25 = Report bugs NNTu Software Testing S2008 11
  • 12. Gợi ý cho phân tích rủi ro Nhóm não công chéo chức năng Xác định và gán mức rủi ro cho mục xác định Chỉ tách rời các mục khi cần thiết để phân biệt giữa các mức khác nhau Cân nhắc rủi ro kỹ thuật và nghiệp vụ Rủi ro kỹ thuật: khả năng xảy ra, ảnh hưởng của “vấn đề” lên hệ thống Rủi ro nghiệp vụ: khả năng sử dụng, ảnh hưởng tới NSD Tiếp tục và sắp xếp lại phân tích rủi ro, dự án tại những mốc thời gian quan trọng NNTu Software Testing S2008 12
  • 13. IEEE 829: Đặc tả thiết kế Mô tả tập hợp các kịch bản kiểm thử ở mức cao, bao gồm các phần sau Xác định đặc tả thiết kế kiểm thử Đặc trưng được kiểm thử (trong bộ kiểm thử - test suite) Làm rõ cách tiếp cận (kỹ thuật, công cụ đặc biệt, ...) Nhận dạng kiểm thử (lần vết tới kịch bản kiểm thử trong bộ) Các đặc trưng thỏa/không thỏa tiêu chuẩn (test oracle, cơ sở kiểm thử, hệ thống kế thừa, ...) Tập hợp các kịch bản gọi là bộ kiểm thử - test suite Thứ tự (test suites , test cases) thường hướng theo độ ưu tiên rủi ro, nghiệp vụ chịu tác động bởi hợp đồng, tài nguyên, tiến triển NNTu Software Testing S2008 13
  • 14. IEEE 829: Đặc tả kịch bản Đặc tả kịch bản kiểm thử bao gồm Xác định đặc tả kịch bản kiểm thử Các Mục kiểm thử phần nào được chuyển giao / kiểm thử Đặc tả thông tin đầu vào nhập liệu từ NSD, tập tin, ... Đặc tả thông tin đầu ra kết quả kỳ vọng: màn hình kết quả, tập tin, thời gian,… Môi trường cần thiết phần cứng, phần mềm, con người, phụ trợ, … Yêu cầu thủ tục đặc biệt tác vụ can thiệp, quyền, … Phụ thuộc liên kịch bản nếu cần cho tiền điều kiện Thực tế, kịch bản thay đổi đáng kể trong việc cố gắng, quá trình, bảo đảm điều kiện kiểm thử NNTu Software Testing S2008 14
  • 15. IEEE 829: Đặc tả thủ tục Mô tả làm sao để thực thi một hay nhiều kịch bản, bao gồm các phần sau Xác định đặc tả thủ tục kiểm thử Mục đích kiểm thử nào được thực thi Yêu cầu đặc biệt kỹ năng, quyền, môi trường, … Các bước thủ tục ghi nhận, thiết lập, khởi động, thực hiện, đánh giá kết quả, shutdown/suspension, khởi động lại, dừng, wrap up/tear down, sự kiện bất ngờ Các thủ tục kiểm thử thường được nhúng trong các kịch bản Kịch bản kiểm thử đôi khi được nhắc đến như là mã kịch bản kiểm thử (script) và có thể thực hiện tay hay tự động NNTu Software Testing S2008 15
  • 16. Bao phủ kịch bản Kiểm thử (Lần vết - Traceability) Test Case Đo lường, đánh giá tương 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2.1 2.2 2.3 2.4 2.5 Total quan các miền nội dung kiểm Spec 1.1 1 1 1 1 2 6 thử 1.2 2 2 1 1 2 8 1.3 Sử dụng như cách đánh giá 1.4 2 2 0 4 và làm nổi bật kiểm thử 1.5 1 1 1 1 4 1.6 2 2 Kiểu thực tế 1.7 2 1 2 2 7 1.8 2 1 3 Đặc tả yêu cầu 1.9 1 1 2 4 1.10 1 1 1 1 Đặc tả thiết kế Total 5 4 2 5 4 3 3 4 2 2 7 1 0 4 Miền chức năng Rủi ro chất lượng Kỹ thuật Cấu hình Sử dụng bảng tính Kỹ thuật thường sử dụng để Liệt kê kiểm thử và miền bao đảm bảo bao phủ kiểm thử phủ để đánh giá hoàn toàn 0: none; 1: indirect; 2: direct NNTu Software Testing S2008 16
  • 17. Phân loại Kỹ thuật thiết kế Khái niệm chính Lý do thực hiện kiểm thử hộp đen (specification-based - black box), hộp trắng (structure-based - white box), thực nghiệm (experience-based tests) Các kỹ thuật thông thường Đặc điểm và sự khác biệt NNTu Software Testing S2008 17
  • 18. 3 kiểu thiết kế Kiểm thử Hộp đen (Specification-based - black box), chức năng, phi chức năng (functional , non-functional) Tạo kiểm thử chủ yếu nhờ vào phân tích các “cơ sở” kiểm thử Tìm kiếm lỗi theo cách của hệ thống thực hiện Hộp trắng (Structure-based - white box) Tạo kiểm thử chủ yếu nhờ vào phân tích cấu trúc các thành phần hay hệ thống Tìm kiếm lỗi theo cách hệ thống được xây dựng Dựa trên kinh nghiệm (Experience-based : tấn công, thăm dò, danh sách ý kiểm tra) Tạo kiểm thử chủ yếu nhờ vào sự hiểu biết về hệ thống, kinh nghiệm quá khứ, phương pháp phỏng đoán về lỗi Tìm lỗi nơi mà hệ thống có lỗi NNTu Software Testing S2008 18
  • 19. Hộp đen Các thành phần thông thường: Các mô hình chính thức, không chính thức sử dụng định rõ vấn đề được giải quyết, phần mềm hoặc thành phần Kịch bản kiểm thử hệ thống hóa từ các mô hình này Bao gồm các phương pháp: Phân hoạch tương đương (Equivalence partitioning) Phân tích giá trị biên (boundary value analysis) Sơ đồ chuyển trạng thái (State transition diagrams) Bảng quyết định (Decision tables) Đồ thị Nhân quả (Cause-Effect Graph) NNTu Software Testing S2008 19
  • 20. Hộp trắng Bao gồm các phần: Cấu trúc hệ thống (mã, thiết kế, ...) thường dẫn tới kịch bản kiểm thử Qui mô bao phủ kiến trúc có thể được đánh giá cho kịch bản kiểm thử khác Kiểm thử xa hơn có thể được dẫn ra có hệ thống hóa để gia tăng khả năng bao phủ Bao gồm: Bao phủ phát biểu Bao phủ nhánh NNTu Software Testing S2008 20
  • 21. Dựa trên Thực nghiệm Bao gồm các phần: Tri thức, kinh nghiệm dùng để dẫn ra các kịch bản Có thể cân nhắc tri thức và kinh nghiệm phần mềm việc sử dụng, môi trường, … tri thức về lịch sử, khả năng có khiếm khuyết và phân bố lỗi Bao gồm: Tấn công Danh sách ý kiểm tra (Checklists) Thăm dò (Exploratory) NNTu Software Testing S2008 21
  • 22. Kỹ thuật dựa trên đặc tả Khái niệm chính Sử dụng các phương pháp để viết kịch bản kiểm thử từ mô hình Mục tiêu chính của mỗi kỹ thuật Làm sao có thể đánh giá độ bao phủ Kiểm thử trường hợp sử dụng (Use case) NNTu Software Testing S2008 22
  • 23. Phân lớp/hoạch tương đương Phân Chia thông tin đầu vào, VD: kiểm tra hỗ trợ của máy ra, hành vi và môi trường in thành các phân lớp được “xử Giao tiếp vật lý: lý” tương đương Parallel, serial, USB 1.1, USB Định nghĩa ít nhất 1 kịch bản 2.0, infrared, Firewire, SCSI, cho mỗi phần hoặc các vùng …? giá trị Giao tiếp luận lý: Kiểm thử một giá trị đại Postscript, HPPL, ASCII, … diện của lớp. Ứng dụng ảnh: Nếu giá trị đại diện bị lỗi thì Laser jet, ink jets, bubble jets, các thành viên trong lớp đó dot matrix, line printers, letter cũng sẽ bị lỗi như thế. quality, pen plotters, … Có thể sử dụng thông tin tiếp thị vào các phân lớp đặc biệt NNTu Software Testing S2008 23
  • 24. Phân lớp/hoạch tương đương Nhận dạng các lớp tương đương đầu vào: Dựa vào các điều kiện vào/ra trong đặc tính kỹ thuật/mô tả kỹ thuật. Cả hai lớp tương đương đầu vào: ‘valid’ và ‘invalid’. Dựa vào heuristics và chuyên gia. “input x in [1..10]” classes: x<1, 1≤ x ≤10, x>10 “Loại liệt kê A, B, C” classes: A, B, C, not{A,B,C} Định nghĩa mẫu thử của các trường hợp cho mỗi lớp. Kiểm thử các trường hợp thuộc lớp tương đương ‘valid’ Kiểm thử các trường hợp thuộc lớp tương đương ‘invalid’ NNTu Software Testing S2008 24
  • 25. Phân lớp/hoạch tương đương Ví dụ Nhập tọa độ 1 điểm trong không gian hai chiều với 3≤ x ≤7 5≤ y ≤9 Phân hoạch không gian tương đương ? NNTu Software Testing S2008 25
  • 26. Phân tích giá trị biên (BVA) Ràm rõ phân hoạch tương đương tại các “góc cạnh”, điểm trị cuối của mỗi miền Phân lớp tương đương tìm lỗi trong mã xử lý mỗi miền như nhau Giá trị biên cũng tìm lỗi tại các vùng biên-viền Chỉ có thể sử dụng khi các vùng tương đương có thứ tự Biên phi chức năng (công suất , khối lượng , ...) có thể được dùng để kiểm tra phi chức năng NNTu Software Testing S2008 26
  • 27. Phân tích giá trị biên Chọn các giá trị biên đầu vào để kiểm tra các lớp đầu vào thay vì thêm vào những giá trị tùy ý. Cũng chọn những giá trị đầu vào như thế để cho ra những giá trị biên đầu ra. Ví dụ về chiến lược mở rộng việc phân lớp: Chọn một giá trị tùy ý cho mỗi lớp. Chọn các giá trị chính xác ở biên trên và biên dưới của mỗi lớp. Chọn các giá trị ngay lập tức ở dưới và trên mỗi biên (nếu có thể). NNTu Software Testing S2008 27
  • 28. Ví dụ: Số nguyên “Muốn phân bao nhiêu phần ?” Nhập số nguyên dương nhỏ hơn 100 NNTu Software Testing S2008 28
  • 29. Ví dụ: Số thực “Nhiệt độ trung bình là bao nhiêu ?” NNTu Software Testing S2008 29
  • 30. Ví dụ: Ký tự - Chuỗi “Mật khẩu (6-10 ký tự chữ)” NNTu Software Testing S2008 30
  • 31. Ví dụ: Ngày tháng “Nhập ngày khởi hành cho chuyến bay ?” NNTu Software Testing S2008 31
  • 32. Ví dụ: Thời gian “Nhập thời gian khởi hành cho chuyến bay ?” NNTu Software Testing S2008 32
  • 33. Ví dụ: Tiền tệ “Nhập giá mua (dưới $1000):” NNTu Software Testing S2008 33
  • 34. Bài tập: Phân lớp - biên Kiểm tra web thương mại bán đồ lặt vặt: banh, áo, … Tạo kiểm cha chức năng cho việc hấp nhận đơn hàng: Hệ thống chấp nhận mã số ID của hàng hóa là số 5 chữ số từ 00000 tới 99999 ID được sắp xếp theo giá, từ rẻ nhất có mã gần 00000 tới mắc nhất có mã 99999 Hệ thống chấp nhận số lượng đặt hàng từ 1 tới 99 Nếu ngườì sử dụng nhập mã trước , nhập số lượng là 0, sẽ bị loại sản phẩm ra khỏi giỏ hàng Tổng giá trị đơn hàng tối đa $999.99 Sử dụng phương pháp để tạo kiểm thử theo mẫu sau NNTu Software Testing S2008 34
  • 35. Bản mẫu màn hình NNTu Software Testing S2008 35
  • 36. Mẫu kiểm thử Test Number 1 2 … Inputs, Actions Item ID Quantity ? ? Expected Results Item Price Cart Contents Cart Total ? ? ? NNTu Software Testing S2008 36
  • 37. Kiểm thử theo kịch bản (Use Cases/Scenario) Thiết kế các trường hợp khác nhau để phản ánh VD: đơn cho vay cầm cố nhà “John - Jenny Stevens có 3 đứa trẻ…” “…Ngôi nhà đáng giá $400K , họ sở hữu $350K…” “… hai xe trị giá $25K , họ sở hữu $17K…” “…Thu nhập $45K và 75K tính riêng…” “… chậm trễ chi trả Visa card và cho xe đã 17 và 35 tháng …” “…họ đệ đơn xin vay 15K.” NNTu Software Testing S2008 37
  • 38. Use Cases và giới hạn biên Xem lại các điều kiện biên, các điều kiện thích hợp ảnh hưởng điều kiện biên ? Nếu có biến đếm 4-bytes, có muốn cho phép đặt 32K sản phẩm vì phần mềm hỗ trợ được Cho phép ngày khởi hành sau ngày đến ? Chấp nhận các dữ liệu “xàm” là lỗi ? NNTu Software Testing S2008 38
  • 39. Bảng quyết định Luật về nghiệp vụ thường đặc tả chính xác trong bảng quyết định Quyết định xử lý đơn hàng như thế nào trên cơ sở kích cỡ, kho, trường hợp vận chuyển, … luôn có trong luật nghiệp vụ Có thể thể hiện dạng lưu đồ hoặc bảng Bảng quyết định có thể tạo ra kịch bản kiểm thử tức thì NNTu Software Testing S2008 39
  • 40. Bảng quyết định ATM Condition 1 2 3 4 5 Mô tả nghiệp vụ cho Valid Card N Y Y Y Y một máy ATM. Chú ý Valid PIN - N N Y Y “-” mô tả điều kiện Invalid PIN=3 - N Y N N không thể thực hiện. Các luật loại trừ tương Balance OK - - - N Y hỗ, trong đó, một luật chỉ được áp dụng tại Action một thời điểm. Reject Card Y N N N N Chú ý, mức nghiệp vụ Reenter PIN N Y N N N thường ở bên dưới lớp giao tiếp NSD do Keep Card N N Y N N đó việc kiểm tra đúng Reenter N N N Y N đắn cần thực hiện Request Dispense Cash N N N N Y NNTu Software Testing S2008 40
  • 41. Bảng quyết định phức tạp hơn Một vài phòng cảnh sát có máy tính cầm tay đọc thẻ căn cước của người vi phạm tốc độ Bảng quyết định có thể thực hiện để kiểm tra hệ thống này Cũng có thể sử dụng phân tích giá trị biên để bao phủ tốt các luật NNTu Software Testing S2008 41
  • 42. Bảng quyết định hệ thống CS Condition 1 2 3 4 5 6 7 8 License OK No - - - - - - - Warrant - Yes - - - - - - Registration OK - - No - - - - - Vehicle OK - - - No - - - - Excess Speed - - - - 1-10 11-20 21-25 >25 Action Arrest Yes Yes - - - - - Yes Fix-It Ticket - - Yes Yes - - - - Warning - - - - Yes - - - Fine -250 -250 -25 -25 +0 +75 +150 +250 NNTu Software Testing S2008 42
  • 43. Các Mô hình trạng thái hữu hạn Hiểu được các trạng thái khác nhau của hệ thống bao gồm cả việc khởi tạo và kết thúc Nhận diện các giao dịch, sự kiện, điều kiện, hoạt động trong mỗi trạng thái Sử dụng đồ thị hay bảng để mô hình hệ thống Cho mỗi sự kiện và điều kiện, kiểm chứng lại hoạt động và trạng thái sau đó NNTu Software Testing S2008 43
  • 44. Sơ đồ chuyển trạng thái Sơ đồ trạng thái hệ thống điểm bán hàng từ quan điểm một thâu ngân. Hãy xét theo quan điểm của khách hàng, hệ thống, tìm lỗi ? NNTu Software Testing S2008 44
  • 45. Bảng chuyển trạng thái Current State Event[Condition] Action New State Logging In Password[invalid] Error Logging In Logging In Password[valid] Open register Waiting Logging In Customer [Undefined] [Undefined] Logging In Scan[any] [Undefined] [Undefined] Logging In Pay[any] [Undefined] [Undefined] Logging In Shift end [Undefined] [Undefined] Bảng trạng thái có thể mô tả lại chuyển trạng thái phức tạp. Nó có thể dẫn tới những trường hợp không xác định … Bài tập: Mô tả hoạt động của máy ATM dạng chuyển trạng thái NNTu Software Testing S2008 45
  • 46. Các Mô hình trạng thái hữu hạn Xét thêm ví dụ sau Máy in chủ có các trường hợp sau: Chờ Lập hàng đợi In Chờ đợi NSD can thiệp Chờ đợi bộ điều khiển can thiệp Máy chủ đáp ứng các sự kiện NNTu Software Testing S2008 46
  • 47. Đồ thị máy trạng thái Máy in NNTu Software Testing S2008 47
  • 48. Đồ thị Nhân quả (Cause – Effect Graph) Đặc tính Cause và Effect ↓ ↓ inputs outputs Trạng thái hiện tại Trạng thái mới Kỹ thuật này gồm có 4 bước như sau : Xác định Cause (điều kiện nhập vào) và effect (hành động – kết quả) cho mỗi một module cần kiểm định. Xây dựng đồ thị cause-effect: Đồ thị được chuyển thành bảng quyết định Những phần/luật trong bảng quyết định được chuyển thành các trường hợp kiểm thử. NNTu Software Testing S2008 48
  • 49. Đồ thị Nhân quả (Cause – Effect Graph) A B xác định A A B NOT E B A Exclusive- A C AND if A== true then B = false if B== true then A = false B A A A I O C OR B B B Include- require- NNTu Software Testing S2008 49
  • 50. Đồ thị Nhân quả: ví dụ (Cause – Effect Graph) Mô tả của một module: Sồ lượng vấn đề cần kiểm tra là 5. Kết quả “Pass” - nếu kết quả của 4 hay nhiều hơn 4 chủ đề là thành công. “Temporary pass” - nếu kết quả của 2 hay 3 chủ đề là thành công “Failure” - nếu kết quả có duy nhất 1 chủ đề là thành công Cause( Dữ Liệu Nhập) Result (Dữ Liệu Xuất ) 1. Nếu kết quả của 4 hay 4. Pass nhiều hơn 4 chủ để là 5. Temporary Pass thành công 6. Failure 2. Nếu kết quả của 2 hay 3 chủ để là thành công NNTu Software Testing S2008 50
  • 51. Đồ thị Nhân quả: ví dụ (Cause – Effect Graph) 1 3 E A 4 2 5 Cause & Result T1 T2 T3 Cause 1. Pass 4 hay nhiều hơn 4 chủ đề Y N N 2. “Pass” 2 hay nhiêu hơn 2 chủ đề - Y N Result 3. “Pass” là kết quả xuất ra X - - 4. “Temporary Pass” là kết quả xuất - X - ra 5. “Failure” là kết quả xuất ra - - X NNTu Software Testing S2008 51
  • 52. Kỹ thuật dựa trên cấu trúc Khái niệm chính Bao phủ mã (Code coverage) Bao phủ phát biểu-điều kiện (Statement and decision coverage) Kỹ thuật thiết kế kiểm thử luồng điều khiển NNTu Software Testing S2008 52
  • 53. Cơ sở hộp trắng Hệ thống làm việc bên trong ra sao ? Xác định và đạt được mức bao phủ các luồng điều khiển trên cơ sở phân tích mã Xác định và đạt được mức bao phủ các luồng dữ liệu trên cơ sở phân tích mã và dữ liệu Xác định và đạt được mức bao phủ các luồng giao tiếp, lớp luồng gọi thực thi trên cơ sở phân tích API, thết kế hệ thống. Bao phủ cấu trúc là cách kiểm tra “khoảng cách” giữa kiểm thử đặc tả và theo kinh nghiệm kiểm nghiệm một chương trình (một phần chương trình, hay một hệ thống, một phần của hệ thống) đáp ứng tốt tất cả các giá trị input bao gồm cả các giá trị không đúng hay không theo dự định của chương trình NNTu Software Testing S2008 53
  • 54. Bao phủ mã Mức bao phủ Bao phủ phát biểu Mỗi phát biểu đều được thực thi Bao phủ nhánh Mỗi nhánh thực hiện theo mỗi cách (T/F) Bao phủ điều kiện Mỗi tổ hợp các điều kiện được đánh giá – bảng sư thật Bao phủ quyết định đa điều kiện Chỉ các điều kiện tổ hợp ảnh hưởng quyết định Bao phủ lặp (Loop coverage): Tất cả các đường dẫn lặp 0,1, nhiều lần (lý tưởng, cực đại) NNTu Software Testing S2008 54
  • 55. Bao phủ mã: lược đồ mô tả Tuần tự (sequence) WHILE CASE UNTIL IF NNTu Software Testing S2008 55
  • 56. Bao phủ mã: lược đồ mô tả 1 2 3 4 6 1 7 5 8 NNTu Software Testing S2008 56
  • 57. Ví dụ: bao phủ mã Giá trị nào của n để thực 1 #include <stdio.h> 2 main() thi hết các phát biểu ? 3 { n < 0, n > 0 4 int i, n, f; 5 printf(“n = "); Bao phủ nhánh ? 6 scanf("%d", &n); n=0 7 if (n < 0) { 8 printf("Invalid: %dn", n); Bao phủ điều kiện ? 9 n = -1; Không có điều kiện tổ 10 } else { hợp 11 f = 1; 12 for (i = 1; i <= n; i++) { Bao phủ đường ? 13 f *= i; 14 } Cần xác định n = 1 và 15 printf("%d! = %dn", n, f); n = max 16 } 17 return n; 18 } NNTu Software Testing S2008 57
  • 58. Bao phủ mã – công cụ thiết kế kiểm thử Kỹ thuật hộp đen có thể bỏ qua 75% hay hơn nữa các phát biểu không bao phủ Vấn đề ? Phụ thuộc vào không bao phủ cái gì ! Các công cụ bao phủ mã cung cấp chương trình theo dõi bao phủ mã thông qua kiểm thử Khoảng cách trong bao phủ mã có thể dẫn tới nhiều kịch bản kiểm thử để đạt được mức bao phủ cao hơn NNTu Software Testing S2008 58
  • 59. Đường cơ sở NNTu Software Testing S2008 59
  • 60. Đường cơ sở Các đường cơ sở path 1: 1-11 path 2: 1-2-3-4-5-10-1-11 path 3: 1-2-3-6-8-9-10-1-11 path 4: 1-2-3-6-7-9-10-1-11 Số đường cơ sở V(G) = E -N + 2 V(G) = 11 edges 9 nodes + 2 = 4 V(G) = P + 1 V(G) = 3 predicate nodes + 1 = 4 V(G) = R + 1(o) NNTu Software Testing S2008 60
  • 61. Đường cơ sở NNTu Software Testing S2008 61
  • 62. Đường cơ sở R4 1 1 2 2 3 3 4 4 R1 6 R2 R3 6 7 7 5 5 8 8 NNTu Software Testing S2008 62
  • 63. Phức tạp vòng McCabe Cyclomatic Đánh giá độ phức tạp luồng điều khiển Đánh giá bởi phác họa đồ thị trực tiếp Nút mô tả vào, ra và điều kiện Cạnh mô tả các phát biểu không nhánh Hữu ích trong kiểm thử Các module có độ phức tạp cao vốn có nhiều “lỗi” và dễ hồi quy Số đường dẫn cơ bản tương ứng số kiểm thử căn bản NNTu Software Testing S2008 63
  • 64. Phức tạp Cyclomatic với Giai thừa NNTu Software Testing S2008 64
  • 65. Đường cơ bản/cơ sở - kiểm thử NNTu Software Testing S2008 65
  • 66. Bao phủ câu lệnh Sao cho mỗi câu lệnh của chương trình được thực hiện ít nhất một lần. không thể biết được có lỗi xảy ra trong câu lệnh đó hay không. kiểm tra với một giá trị đầu vào không đảm bảo là sẽ đúng cho mọi trường hợp. NNTu Software Testing S2008 66
  • 67. Bao phủ câu lệnh NNTu Software Testing S2008 67
  • 68. Bao phủ câu lệnh 1 Ví dụ: Đoạn chương trình thực hiện tính: 2 result = 0+1+…+|value|, 3 nếu result <= maxint, báo lỗi trong trường hợp ngược lại. 4 1 PROGRAM maxsum ( maxint, value : INT ) 5 6- 7 2 INT result := 0 ; i := 0 ; 3 IF value < 0 9 4 THEN value := - value ; 5 WHILE ( i < value ) AND ( result <= maxint ) 11 10 6 DO i := i + 1 ; 7 result := result + i ; 12 8 OD; 9 IF result <= maxint 10 THEN OUTPUT ( result ) 11 ELSE OUTPUT ( “too large” ) maxint = 10, value = -1 12 END. Hay maxint = 0, value = -1 NNTu Software Testing S2008 68
  • 69. Bao phủ đường A>B if ( A > B) true false S1; S2; else S1; S2; S3; S3; S4; S4; if (A<B && C<D) A>B S1; true false else C>D S2; true false S3; S1; S2; S3; NNTu Software Testing S2008 69
  • 70. Bao phủ điều kiện phương pháp kiểm tra các biểu thức điều kiện trên 2 giá trị true và false if (x > 0 && y > 0) x = 1; { (x>0, y>0), (x <=0, y>0) } !! else x = 2; while (x > 0 || y > 0) { x--; y--; { (x>0) } !!! z += x*y; } NNTu Software Testing S2008 70
  • 71. Bao phủ vòng lặp Vòng lặp đơn giản Vòng lặp Vòng lặp lồng nhau nối tiếp nhau NNTu Software Testing S2008 71
  • 72. Bao phủ nhánh – điều kiện Ví dụ if (x<1 && y>1) 1 x = x + y; 2 else 4 y = y - x; 100% bao phủ nhánh (x=0,y=2), (x=1,y=2) [TT,FT] Nhưng không bao phủ hết điều kiện Cần trường hợp TF (x=0,y=1) NNTu Software Testing S2008 72
  • 73. Vấn đề trong tổ hợp điều kiện Tạo ra điều kiện phức tạp hơn là nó biểu hiện Có thể bỏ xót trường hợp 1 Ví dụ Thực chất là 3 đcs, thay vì 2 2 3 if (x<1){ if (y>1) 1 x=x+y; else 2 y=y-x; 5 } else 3 4 y=y-x; NNTu Software Testing S2008 73
  • 74. Vấn đề trong bao phủ đường Không phải tất cả các đường có thể đi qua Các điều kiện có thể loại trừ nhau Ví dụ: Không thể đi qua [1,2,3,4,5] 1 if (x<1) 2 y=2; 3 if (x >= 1) y=3; 4 z=y; 5 NNTu Software Testing S2008 74
  • 75. Ví dụ: Age>80 | Y N N N N N if (Age>80 || Weight>300 | - Y N N N N Weight>300) Age<=12 | Y N N N return 0; if (Age <= 12) Age>65 | Y N N return 1; Weight<120 | Y N if (Age > 65) Pills = | 0 0 1 2 2 C return 2; if (Weight < 120) ------------------------------ return 2 Note: C: 2+(Weight/120)/50 else return 2+(Weight-120)/50; McCabe = 6 NNTu Software Testing S2008 75
  • 76. Ví dụ: Age>80 | Y N N N N N N Weight>300 | - Y N N N N N if (Age>80 || Age<=12 | Y N N N Weight>300) return 0; Age>65 | Y N N if (Age <= 12) Weight<120 | - Y N return 1; Pills = | 0 0 0 1 2 2 C if (Age > 65 || (Age<=65 && Weight<120)) return 2; return 2+(Weight-120)/50; McCabe = 7 NNTu Software Testing S2008 76
  • 77. Ví dụ: ____________ | pills=0; ____________ | if (Age < 80 && Weight <300) ____________ | { pills=1; ____________ | if (Age >= 65) ____________ | pills=2; Pills = | else if (Age > 12) pills=2+(Weight-120)/50; - - - - - - - } --------------------------- return pills; Note: C: 2+(Weight/120)/50 NNTu Software Testing S2008 77
  • 78. Bài tập: chuyển đổi số Hex Chấp nhận chuỗi ký tự thập lục phân (giữa các ký tự không mong muốn) . Nó bỏ qua các ký tự khác, chuyển Hex sang số Kiểm tra chuỗi dạng “059”, “ace”, “ACD” mức bao phủ đạt được là gì ? NNTu Software Testing S2008 78
  • 79. Bài tập: chuyển đổi số Hex main() nhex++; { hexnum *= 0x10; int c; hexnum += (c - 'a' + 0xa); unsigned long int hexnum, nhex; break; hexnum = nhex = 0; case 'A': case 'B': case 'C': while ((c = getchar()) != EOF) { case 'D': case 'E': case 'F': switch (c) { /*upper case hex digit */ case '0': case '1': case '2': nhex++; case '3': case '4': case '5': hexnum *= 0x10; case '6': case '7': case '8': hexnum += (c - 'A' + 0xA); case '9': break; /* Convert a decimal digit */ default: nhex++; /* non-hex characters */ hexnum *= 0x10; break; hexnum += (c - '0'); } break; } case 'a': case 'b': case 'c': printf("Got %d hex digits: %xn", case 'd': case 'e': case 'f': nhex, hexnum); /* lower case hex digit */ return 0; } NNTu Software Testing S2008 79
  • 80. Kỹ thuật dựa trên kinh nghiệm Khái niệm chính Lý do viết kịch bản kiểm thử dựa trên trực giác, kinh nghiệm và tri thức So sánh với kỹ thuật dựa trên cấu trúc NNTu Software Testing S2008 80
  • 81. Kỹ thuật dựa trên kinh nghiệm Dựa vào người kiểm thử với … …kỹ năng – trực giác …kinh nghiệm với ứng dụng tương tự …kinh nghiệm với kỹ thuật tương tự Kiểm tử tiền thiêt kế, thực nghiệm thường tạo ra trong suốt quá trình thực thi kiểm thử (chiến lược kiểm thử động) Kiểm thử thường giới hạn thời gian (time-boxed) (nhấn mạnh vào các điều kiện đặc biệt) Ví dụ: phán đóan, lùng kiếm lỗi, phá vỡ phần mềm (breaking software) trên cơ sở danh sách ý, phân loại lỗi, kiểm thử thăm dò NNTu Software Testing S2008 81
  • 82. Cách tiếp cận thông thường Không tạo ra toàn bộ kiểm thử trong quá trình thực thi Có thể được hướng dẫn bởi: Danh sách ý kiểm tra (Checklist) Phân loại lỗi (Bug taxonomy) Liệt kê các kiểu tấn công (List of attacks) Cách tiếp cận “săn” lỗi (Bug hunt approach) Tập các lý do kiểm thử Được chuẩn bị cải tiến, một mức chi tiết Thường là kiểm thử ad hoc (on-the-fly testing - ad hoc testing), kiểm tra ngẫu nhiên (random testing) NNTu Software Testing S2008 82
  • 83. Chiến lược kiểm tra động Thuận lợi Bất lợi Tìm lỗi hiệu quả Lỗ hổng bao phủ, đặc biệt Không mắc phải nghịch lý khi có áp lực “thuốc trừ sâu” biến Khó đánh giá đổi lớn Không ngăn ngừa lỗi Có hiệu quả Không thích hợp nhóm Kiểm soát tốt việc chuẩn lớn bị kiểm thử Khác biệt về kỹ năng và Sáng tạo kinh nghiệm NNTu Software Testing S2008 83
  • 84. Trường hợp kiểm thử thăm dò Staff 7 Technicians 3 Engineers + 1 Mgr. Experience <10 years total > 20 years total Test Type Precise scripts Chartered exploratory Test Hrs/Day 42 6 Bugs Found 928 (78%) 261 (22%) Effectiveness 22 44 NNTu Software Testing S2008 84
  • 85. Bài tập: Kiểm tra động – tiền thiết kế Major factors or concerns Dynamic Pre-designed Do thorough regression testing Maximize bug finding efficiency Use testers with limited experience Automate half of the test cases Deliver precise, accurate estimates Test without test preparation time Test a rapidly changing UI Use a distributed test effort Đánh dấu +: phương pháp thích hợp -: phương pháp không thích hợp NNTu Software Testing S2008 85
  • 86. Chọn kỹ thuật kiểm thử Khái niệm chính Các nhân tố ảnh hưởng tới việc chọn kỹ thuật thiết kế phù hợp NNTu Software Testing S2008 86
  • 87. Chọn kỹ thuật kiểm thử Kiểu hệ thống Chuẩn quy tắc Yêu cầu khách hàng – hợp đồng Mức và kiểu rủi ro Mục tiêu kiểm thử Tài liệu sẵn sàng Kiến thức người kiểm thử Thời gian/ngân sách Vòng đời phát triển Kinh nghiệm – kiểu khiếm khuyết phát hiện … NNTu Software Testing S2008 87
  • 88. Động – Tiền thiết kế NNTu Software Testing S2008 88
  • 89. Kiểm thử Chi tiết và chính xác Việc cân bằng kiểm thử Kiểm thử chính xác cho phép giảm người lành nghề Kiểm thử không chính xác có thể bao phủ nhiều điều kiện Kiểm thử chính xác cung cấp tiêu chuẩn minh bạch nhưng khó và bảo trì tốn kém Kiểm thử không chính xác viết nhanh nhưng bao phủ khó định nghĩa và đánh giá NNTu Software Testing S2008 89
  • 90. Bài tập - đọc hiểu NNTu Software Testing S2008 90
  • 91. Đọc thêm [1]. Chapter 04 [2]. Chapter 18 [4]. Chapter 06, 05 [4]. Chapter 07, 08 [4]. Chapter 09, 10, 11 NNTu Software Testing S2008 91
  • 92. Q/A NNTu Software Testing S2008 92