SlideShare a Scribd company logo
1 of 26
Download to read offline
Lý thuyết
Kiểm Tra Phần Mềm
       Bài 06:       Kiểm tra module

   GV:           Nguyễn Ngọc Tú
   Email:        nntu@hoasen.edu.vn
   Bộ môn:       Kỹ thuật Phần mềm
Nội dung

       Giới thiệu
       Kiểm thử đơn vị
       Thiết kế kịch bản kiểm thử
       Kiểm tra gia tăng
       Phương pháp Top-Down và Bottom-Up




NNTu                Software Testing S2008   2
Giới thiệu

   Yếu tố liên quan Thiết kế mẫu thử
       Cơ chế kiểm thử
       Kích cỡ mã / chương trình
   Kiểm thử đơn vị
       quá trình kiểm tra từng chương trình con/ thủ tục/
       hàm
       kiểm tra từng phần nhỏ của chương trình




NNTu                    Software Testing S2008              3
Kiểm thử đơn vị

   Lý do kiểm thử đơn vị
       quản lý các phần tử được kết hợp / phần nhỏ của
       chương trình
       giảm nhẹ công việc gỡ rối
       thực hiện song song với quá trình kiểm thử toàn
       bộ chương trình




NNTu                   Software Testing S2008            4
Kiểm thử đơn vị

       Mục tiêu
        so sánh chức năng của module đang thực hiện
        với chức năng hoặc giao diện của module đã
        được định nghĩa / đặc tả
        làm sao thấy hết các “mâu thuẫn/ trái ngược” so
        với đặc tả
       Các góc nhìn
        Cách thức mà Mẫu kiểm thử được thiết kế
        Thứ tự các module được kiểm thử và tích hợp


NNTu                    Software Testing S2008            5
Thiết kế kịch bản kiểm thử

   Cần hai kiểu thông tin khi thiết kế mẫu thử cho kiểm
   tra đơn vị:
       Đặc tả về module
         Định nghĩa các đặc trưng nhất của module bao gồm: các
         thông số nhập, suất và chức năng của nó
       Mã nguồn của module


   Cách kiểm thử chính
       Kiểm thử White-Box
       Giai đoạn sau nhằm tìm lỗi dạng khác



NNTu                       Software Testing S2008                6
Thiết kế kịch bản kiểm thử

   Thủ tục thiết kế mẫu thử
       Phân tích luồng logic với một hay nhiều phương
       pháp White-Box
       Bổ sung thêm các mẫu thử này bằng việc áp
       dụng phương thức Black-Box dựa trên đặc tả

   Các phương thức thiết kế mẫu kiểm thử sử dụng đã
    được định nghĩa trong chương trước



NNTu                   Software Testing S2008           7
Kiểm tra gia tăng

   Trong việc thực hiện quá trình kiểm thử đơn vị, có
   hai vấn đề quan tâm chủ chốt:
       Thiết kế tập mẫu thử hiệu quả
       Cách thức các module hợp thành chương trình làm hoạt
       động được
         Quan trọng vì liên quan tới
           dạng mẫu thử đơn vị được viết,
           kiểu công cụ kiểm thử có thể sử dụng,
           thứ tự module được mã và kiểm thử,
           chi phí phát sinh mẫu thử,
           chi phí gỡ lỗi (định vị và sửa lỗi phát hiện).




NNTu                           Software Testing S2008         8
Kiểm tra gia tăng

   Câu hỏi được đặt ra
       nên kiểm thử chương trình bằng cách kiểm thử
       từng module độc lập rồi kết hợp các module
       thành chương trình
         Cách tiếp cận này gọi là kiểm thử/tích hợp không gia
         tăng hoặc còn gọi là big-bang;
       hay kết hợp thêm các module “mới” với các
       module đã được kiểm thử trước đó.
         cách tiếp cận sau được biết như là kiểm thử/tích hợp
         gia tăng


NNTu                      Software Testing S2008                9
Kiểm tra gia tăng

   Kiểm thử trên xuống (Top-Down)
   Kiểm thử/tích hợp dưới lên (Bottom Up)




NNTu               Software Testing S2008   10
Kiểm thử trên xuống

   Kiểm thử trên xuống tiến hành kiểm thử với
   các mô đun ở mức cao trước, các mô đun
   mức thấp được tạm thời phát triển với các
   chức năng hạn chế.
   Thông thường, để sớm có một phiên bản
   thực hiện người ta thường tích hợp theo một
   nhánh cho đến các mô đun cấp thấp nhất.




NNTu               Software Testing S2008        11
Kiểm thử trên xuống

                                A



                   B             F          G



           C
                            Tích hợp kiểu từ trên xuống
                            theo hình thức depth-first
       D       E

NNTu               Software Testing S2008                 12
Kiểm thử trên xuống

   Module chính được dùng như là driver, và stub
   được thay thế bởi các module con trực tiếp của của
   module chính này.
   Tuỳ thuộc vào cách tích hợp theo chiều sâu (depth-
   first) hoặc chiều ngang(breath-first), mỗi stub con
   được thay thế một lần bởi module tương ứng đã
   kiểm nghiệm.
   Tiến hành kiểm nghiệm khi có sự thay thế mới
   Tiến hành kiểm nghiệm hồi quy để phát hiện các lỗi
   khác trong từng module


NNTu                  Software Testing S2008         13
Kiểm thử trên xuống

   Ưu điểm của kiểm thử trên xuống
       Phát hiện sớm các lỗi thiết kế
       Có phiên bản hoạt động sớm
   Nhược điểm của kiểm thử trên xuống
       Khó có thể mô phỏng được các chức năng của mô đun
       cấp thấp phức tạp
       Không kiểm thử đầy đủ các chức năng




NNTu                        Software Testing S2008         14
Kiểm thử dưới lên

   Là quá trình tích hợp và kiểm thử với các mô đun ở
   mức độ thấp trước.
   Thông thường người ta không thuần túy kiểm thử
   tất cả các mô đun ở tầng dưới cùng mà nhóm các
   mô đun này thành các nhóm chức năng, tích hợp và
   kiểm thử chúng theo từng nhóm.
   Tiến hành tích hợp và kiểm thử một số mô đun cấp
   trên trước




NNTu                 Software Testing S2008         15
Kiểm thử dưới lên

                                    A


                       B              F            K


              C                                G


         D        E                   H            I
       Nhóm chức năng



NNTu                  Software Testing S2008           16
Kiểm thử dưới lên

   Các module mức thấp nhất được kết hợp
   thành các nhóm thể hiện một chức năng con
   đặc biệt của phần mềm.
   Một driver được tạo ra để thao tác các test-
   case
   Nhóm module được kiểm nghiệm.
   Driver được bỏ đi và các nhóm module được
   kết hợp dần lên phía trên trong sơ đồ phân
   cấp của chương trình.

NNTu               Software Testing S2008     17
Kiểm thử dưới lên
                               Mo

                 Ma                            Mb


            D1                 D2                   D3




                                                         cluster 3
cluster 1




                                  cluster 2




   NNTu               Software Testing S2008                18
Kiểm thử dưới lên

   Kiểm thử dưới lên có một số ưu điểm:
       Tránh phải tạo các stub phức tạp hay tạo các kết quả nhân
       tạo
       Thuận tiện cho phát triển các mô đun thứ cấp dùng lại
       được


   Nhược điểm của phương pháp bottom-up:
       Phát hiện chậm các lỗi thiết kế
       Chậm có phiên bản thực hiện được của hệ thống




NNTu                       Software Testing S2008              19
Top-Down và Bottom-Up

   Trên thực tế người ta thường tìm cách phối
   hợp hai chiến lược này, gọi là sandwich
   testing




NNTu               Software Testing S2008       20
Sandwich Testing

                             A
                                          Kiểm tra từ trên xuống
                                          với các stubs

                   B          F           G



           C

                       Các module được kiểm tra
       D       E       và gom nhóm để tích hợp



       cluster
NNTu                   Software Testing S2008                      21
Bài tập - đọc hiểu
Xét hàm chức năng chép bộ nhớ sau
void copy_memory( char * target,               else {
           char * source,                                source_ptr = source;
           int length) {                                 source_end = source + (length-1);
    char * source_ptr,                                   target_ptr = target;
           * source_end,                                 step = 1;
           * target_ptr;                          }
    int step;                                     while (1) {
    int done = 0;                                     if (source_ptr == source_end)
    if (length < 1)         return;            done = 1;
    if ((target < source) &&                          *target_ptr = *source_ptr;
           ((target + length) > source))              if (done) break;
           { // {*}                                   source_ptr += step;
         source_ptr = source                          target_ptr += step;
                     + (length-1);                }
         source_end = source;                   }
         target_ptr = target + (length-1);
         step = -1;
    }

    NNTu                              Software Testing S2008                            22
Xác định các thông tin sau:
          Xem xét biến done được dùng ở đâu và đúng không ?
          Dòng mã IF ở {*} có thực sự tính toán đúng khi muốn dịch
          chuyển dữ liệu nội bộ trong một chuỗi ?
          Thử trường hợp dữ liệu đầu vào là rỗng hoặc NULL ?
          Xác định rõ ý đồ đoạn mã từ {*} ?
       Kiểm thử các trường hợp sau:
          Thử chép dữ liệu không bị trùng lặp:
            test_buffer = “123456”     copy_memory(test_buffer,
            test_buffer+3, 3)
          Trường hợp dữ liệu bị trùng lặp:
            test_buffer = “123456”     copy_memory(test_buffer,
            test_buffer+2, 4)



NNTu                         Software Testing S2008                   23
Xác định các đường – bao phủ đường
   Bao phủ điều kiện




NNTu              Software Testing S2008   24
Đọc thêm

     [1]. Chapter 05
   ql072l@sinhvien.hoasen.edu.vn




NNTu           Software Testing S2008   25
Q/A




NNTu   Software Testing S2008   26

More Related Content

What's hot

Kiểm thử phần mềm
Kiểm thử phần mềm Kiểm thử phần mềm
Kiểm thử phần mềm Nguyen Vu
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
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
 
Bai tap testing junit…..
Bai tap testing junit…..Bai tap testing junit…..
Bai tap testing junit…..Mua Xuong
 
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
 
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
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)Đông Đô
 
4.1.phat trien ct ham-thutuc-tktt
4.1.phat trien ct ham-thutuc-tktt4.1.phat trien ct ham-thutuc-tktt
4.1.phat trien ct ham-thutuc-tkttGiang Nguyễn
 
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
 
Mock object
Mock objectMock object
Mock objectlvlong
 
Lập trình Java GUI
Lập trình Java GUILập trình Java GUI
Lập trình Java GUIHa Bogay
 
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
 
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀMĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀMThanCoi20102202
 

What's hot (17)

chuong 6
chuong 6chuong 6
chuong 6
 
Kiểm thử phần mềm
Kiểm thử phần mềm Kiểm thử phần mềm
Kiểm thử phần mềm
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
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
 
Bai tap testing junit…..
Bai tap testing junit…..Bai tap testing junit…..
Bai tap testing junit…..
 
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
 
Test plan
Test planTest plan
Test plan
 
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
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)
 
4.1.phat trien ct ham-thutuc-tktt
4.1.phat trien ct ham-thutuc-tktt4.1.phat trien ct ham-thutuc-tktt
4.1.phat trien ct ham-thutuc-tktt
 
Unit Test
Unit TestUnit Test
Unit Test
 
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcase
 
Mock object
Mock objectMock object
Mock object
 
Lập trình Java GUI
Lập trình Java GUILập trình Java GUI
Lập trình Java GUI
 
Adp junit
Adp junitAdp junit
Adp junit
 
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.
 
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀMĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
 

Viewers also liked

La historia interminable
La historia interminableLa historia interminable
La historia interminableguest08ba34
 
файлов формат Html
файлов формат Htmlфайлов формат Html
файлов формат Htmlguest26def74
 
Promo juni oriflame
Promo juni oriflamePromo juni oriflame
Promo juni oriflameefitea
 
Cr 2016 05-18 ag clermont-ferrand diaporama
Cr 2016 05-18 ag clermont-ferrand diaporamaCr 2016 05-18 ag clermont-ferrand diaporama
Cr 2016 05-18 ag clermont-ferrand diaporamaADIPh
 
Module 5 topic 2
Module 5 topic 2Module 5 topic 2
Module 5 topic 2Annie cox
 
Istqb glossary of testing terms 2 1
Istqb glossary of testing terms 2 1Istqb glossary of testing terms 2 1
Istqb glossary of testing terms 2 1Jenny Nguyen
 
Support panel mobile user guide for PlayBook - English
Support panel mobile user guide for PlayBook - EnglishSupport panel mobile user guide for PlayBook - English
Support panel mobile user guide for PlayBook - EnglishActiveHelper
 
MedyaTEQ Hedefli SMS
MedyaTEQ Hedefli SMSMedyaTEQ Hedefli SMS
MedyaTEQ Hedefli SMSMedyaTEQ
 
Module 4 topic 2
Module 4 topic 2Module 4 topic 2
Module 4 topic 2Annie cox
 
How has COMNet involved Pashtoon Women in Quetta for PEI
How has COMNet involved Pashtoon Women in Quetta for PEIHow has COMNet involved Pashtoon Women in Quetta for PEI
How has COMNet involved Pashtoon Women in Quetta for PEIgedrosia
 

Viewers also liked (20)

77
7777
77
 
Recognition2010.01
Recognition2010.01Recognition2010.01
Recognition2010.01
 
La historia interminable
La historia interminableLa historia interminable
La historia interminable
 
файлов формат Html
файлов формат Htmlфайлов формат Html
файлов формат Html
 
One3
One3One3
One3
 
Mlug presentation lcty2011
Mlug presentation lcty2011Mlug presentation lcty2011
Mlug presentation lcty2011
 
Doubleside
DoublesideDoubleside
Doubleside
 
Doubleside
DoublesideDoubleside
Doubleside
 
Promo juni oriflame
Promo juni oriflamePromo juni oriflame
Promo juni oriflame
 
Cr 2016 05-18 ag clermont-ferrand diaporama
Cr 2016 05-18 ag clermont-ferrand diaporamaCr 2016 05-18 ag clermont-ferrand diaporama
Cr 2016 05-18 ag clermont-ferrand diaporama
 
Module 5 topic 2
Module 5 topic 2Module 5 topic 2
Module 5 topic 2
 
Istqb glossary of testing terms 2 1
Istqb glossary of testing terms 2 1Istqb glossary of testing terms 2 1
Istqb glossary of testing terms 2 1
 
Support panel mobile user guide for PlayBook - English
Support panel mobile user guide for PlayBook - EnglishSupport panel mobile user guide for PlayBook - English
Support panel mobile user guide for PlayBook - English
 
Hannah Clancy
Hannah Clancy Hannah Clancy
Hannah Clancy
 
MedyaTEQ Hedefli SMS
MedyaTEQ Hedefli SMSMedyaTEQ Hedefli SMS
MedyaTEQ Hedefli SMS
 
Module 4 topic 2
Module 4 topic 2Module 4 topic 2
Module 4 topic 2
 
1st Semester Quick Review
1st Semester Quick Review1st Semester Quick Review
1st Semester Quick Review
 
How has COMNet involved Pashtoon Women in Quetta for PEI
How has COMNet involved Pashtoon Women in Quetta for PEIHow has COMNet involved Pashtoon Women in Quetta for PEI
How has COMNet involved Pashtoon Women in Quetta for PEI
 
Animal nutrition
Animal nutritionAnimal nutrition
Animal nutrition
 
At Science1
At Science1At Science1
At Science1
 

Similar to Bai06 kiem tramodule-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-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
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuVan Pham
 
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
 
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
 
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
 
Test Types & Test Levels.pdf
Test Types & Test Levels.pdfTest Types & Test Levels.pdf
Test Types & Test Levels.pdfnhung875961
 
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
 
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
 
Kiểm Thử Junit
Kiểm Thử Junit Kiểm Thử Junit
Kiểm Thử Junit Thanh Huong
 
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
 
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
 
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-nntuJenny Nguyen
 
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggHngPhmTh35
 
Mẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnMẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnJohn MacTavish
 

Similar to Bai06 kiem tramodule-k-trpm@softtesting-nntu (20)

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
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@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
 
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
 
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
 
Test Types & Test Levels.pdf
Test Types & Test Levels.pdfTest Types & Test Levels.pdf
Test Types & Test Levels.pdf
 
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
 
Kiểm Thử Junit
Kiểm Thử Junit Kiểm Thử Junit
Kiểm Thử Junit
 
CHUONG 2.pdf
CHUONG 2.pdfCHUONG 2.pdf
CHUONG 2.pdf
 
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
 
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
 
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
 
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggggggggggggggggg
 
Mẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnMẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớn
 
Chương 5. KIỂM CHỨNG
Chương 5. KIỂM CHỨNGChương 5. KIỂM CHỨNG
Chương 5. KIỂM CHỨNG
 

Bai06 kiem tramodule-k-trpm@softtesting-nntu

  • 1. Lý thuyết Kiểm Tra Phần Mềm Bài 06: Kiểm tra module 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 Giới thiệu Kiểm thử đơn vị Thiết kế kịch bản kiểm thử Kiểm tra gia tăng Phương pháp Top-Down và Bottom-Up NNTu Software Testing S2008 2
  • 3. Giới thiệu Yếu tố liên quan Thiết kế mẫu thử Cơ chế kiểm thử Kích cỡ mã / chương trình Kiểm thử đơn vị quá trình kiểm tra từng chương trình con/ thủ tục/ hàm kiểm tra từng phần nhỏ của chương trình NNTu Software Testing S2008 3
  • 4. Kiểm thử đơn vị Lý do kiểm thử đơn vị quản lý các phần tử được kết hợp / phần nhỏ của chương trình giảm nhẹ công việc gỡ rối thực hiện song song với quá trình kiểm thử toàn bộ chương trình NNTu Software Testing S2008 4
  • 5. Kiểm thử đơn vị Mục tiêu so sánh chức năng của module đang thực hiện với chức năng hoặc giao diện của module đã được định nghĩa / đặc tả làm sao thấy hết các “mâu thuẫn/ trái ngược” so với đặc tả Các góc nhìn Cách thức mà Mẫu kiểm thử được thiết kế Thứ tự các module được kiểm thử và tích hợp NNTu Software Testing S2008 5
  • 6. Thiết kế kịch bản kiểm thử Cần hai kiểu thông tin khi thiết kế mẫu thử cho kiểm tra đơn vị: Đặc tả về module Định nghĩa các đặc trưng nhất của module bao gồm: các thông số nhập, suất và chức năng của nó Mã nguồn của module Cách kiểm thử chính Kiểm thử White-Box Giai đoạn sau nhằm tìm lỗi dạng khác NNTu Software Testing S2008 6
  • 7. Thiết kế kịch bản kiểm thử Thủ tục thiết kế mẫu thử Phân tích luồng logic với một hay nhiều phương pháp White-Box Bổ sung thêm các mẫu thử này bằng việc áp dụng phương thức Black-Box dựa trên đặc tả Các phương thức thiết kế mẫu kiểm thử sử dụng đã được định nghĩa trong chương trước NNTu Software Testing S2008 7
  • 8. Kiểm tra gia tăng Trong việc thực hiện quá trình kiểm thử đơn vị, có hai vấn đề quan tâm chủ chốt: Thiết kế tập mẫu thử hiệu quả Cách thức các module hợp thành chương trình làm hoạt động được Quan trọng vì liên quan tới dạng mẫu thử đơn vị được viết, kiểu công cụ kiểm thử có thể sử dụng, thứ tự module được mã và kiểm thử, chi phí phát sinh mẫu thử, chi phí gỡ lỗi (định vị và sửa lỗi phát hiện). NNTu Software Testing S2008 8
  • 9. Kiểm tra gia tăng Câu hỏi được đặt ra nên kiểm thử chương trình bằng cách kiểm thử từng module độc lập rồi kết hợp các module thành chương trình Cách tiếp cận này gọi là kiểm thử/tích hợp không gia tăng hoặc còn gọi là big-bang; hay kết hợp thêm các module “mới” với các module đã được kiểm thử trước đó. cách tiếp cận sau được biết như là kiểm thử/tích hợp gia tăng NNTu Software Testing S2008 9
  • 10. Kiểm tra gia tăng Kiểm thử trên xuống (Top-Down) Kiểm thử/tích hợp dưới lên (Bottom Up) NNTu Software Testing S2008 10
  • 11. Kiểm thử trên xuống Kiểm thử trên xuống tiến hành kiểm thử với các mô đun ở mức cao trước, các mô đun mức thấp được tạm thời phát triển với các chức năng hạn chế. Thông thường, để sớm có một phiên bản thực hiện người ta thường tích hợp theo một nhánh cho đến các mô đun cấp thấp nhất. NNTu Software Testing S2008 11
  • 12. Kiểm thử trên xuống A B F G C Tích hợp kiểu từ trên xuống theo hình thức depth-first D E NNTu Software Testing S2008 12
  • 13. Kiểm thử trên xuống Module chính được dùng như là driver, và stub được thay thế bởi các module con trực tiếp của của module chính này. Tuỳ thuộc vào cách tích hợp theo chiều sâu (depth- first) hoặc chiều ngang(breath-first), mỗi stub con được thay thế một lần bởi module tương ứng đã kiểm nghiệm. Tiến hành kiểm nghiệm khi có sự thay thế mới Tiến hành kiểm nghiệm hồi quy để phát hiện các lỗi khác trong từng module NNTu Software Testing S2008 13
  • 14. Kiểm thử trên xuống Ưu điểm của kiểm thử trên xuống Phát hiện sớm các lỗi thiết kế Có phiên bản hoạt động sớm Nhược điểm của kiểm thử trên xuống Khó có thể mô phỏng được các chức năng của mô đun cấp thấp phức tạp Không kiểm thử đầy đủ các chức năng NNTu Software Testing S2008 14
  • 15. Kiểm thử dưới lên Là quá trình tích hợp và kiểm thử với các mô đun ở mức độ thấp trước. Thông thường người ta không thuần túy kiểm thử tất cả các mô đun ở tầng dưới cùng mà nhóm các mô đun này thành các nhóm chức năng, tích hợp và kiểm thử chúng theo từng nhóm. Tiến hành tích hợp và kiểm thử một số mô đun cấp trên trước NNTu Software Testing S2008 15
  • 16. Kiểm thử dưới lên A B F K C G D E H I Nhóm chức năng NNTu Software Testing S2008 16
  • 17. Kiểm thử dưới lên Các module mức thấp nhất được kết hợp thành các nhóm thể hiện một chức năng con đặc biệt của phần mềm. Một driver được tạo ra để thao tác các test- case Nhóm module được kiểm nghiệm. Driver được bỏ đi và các nhóm module được kết hợp dần lên phía trên trong sơ đồ phân cấp của chương trình. NNTu Software Testing S2008 17
  • 18. Kiểm thử dưới lên Mo Ma Mb D1 D2 D3 cluster 3 cluster 1 cluster 2 NNTu Software Testing S2008 18
  • 19. Kiểm thử dưới lên Kiểm thử dưới lên có một số ưu điểm: Tránh phải tạo các stub phức tạp hay tạo các kết quả nhân tạo Thuận tiện cho phát triển các mô đun thứ cấp dùng lại được Nhược điểm của phương pháp bottom-up: Phát hiện chậm các lỗi thiết kế Chậm có phiên bản thực hiện được của hệ thống NNTu Software Testing S2008 19
  • 20. Top-Down và Bottom-Up Trên thực tế người ta thường tìm cách phối hợp hai chiến lược này, gọi là sandwich testing NNTu Software Testing S2008 20
  • 21. Sandwich Testing A Kiểm tra từ trên xuống với các stubs B F G C Các module được kiểm tra D E và gom nhóm để tích hợp cluster NNTu Software Testing S2008 21
  • 22. Bài tập - đọc hiểu Xét hàm chức năng chép bộ nhớ sau void copy_memory( char * target, else { char * source, source_ptr = source; int length) { source_end = source + (length-1); char * source_ptr, target_ptr = target; * source_end, step = 1; * target_ptr; } int step; while (1) { int done = 0; if (source_ptr == source_end) if (length < 1) return; done = 1; if ((target < source) && *target_ptr = *source_ptr; ((target + length) > source)) if (done) break; { // {*} source_ptr += step; source_ptr = source target_ptr += step; + (length-1); } source_end = source; } target_ptr = target + (length-1); step = -1; } NNTu Software Testing S2008 22
  • 23. Xác định các thông tin sau: Xem xét biến done được dùng ở đâu và đúng không ? Dòng mã IF ở {*} có thực sự tính toán đúng khi muốn dịch chuyển dữ liệu nội bộ trong một chuỗi ? Thử trường hợp dữ liệu đầu vào là rỗng hoặc NULL ? Xác định rõ ý đồ đoạn mã từ {*} ? Kiểm thử các trường hợp sau: Thử chép dữ liệu không bị trùng lặp: test_buffer = “123456” copy_memory(test_buffer, test_buffer+3, 3) Trường hợp dữ liệu bị trùng lặp: test_buffer = “123456” copy_memory(test_buffer, test_buffer+2, 4) NNTu Software Testing S2008 23
  • 24. Xác định các đường – bao phủ đường Bao phủ điều kiện NNTu Software Testing S2008 24
  • 25. Đọc thêm [1]. Chapter 05 ql072l@sinhvien.hoasen.edu.vn NNTu Software Testing S2008 25
  • 26. Q/A NNTu Software Testing S2008 26