Công nghệ phần mềmCông nghệ phần mềm
Đề tài :Đề tài : Tìm hiểu các kĩ thuật kiểm thửTìm hiểu các kĩ thuật kiểm thử
Nhóm th c hi nự ệNhóm th c hi nự ệ
Ph m Hoàng HàạPh m Hoàng Hàạ
Mai c KhiêmĐứMai c KhiêmĐứ
Nguy n ThanhễNguy n Thanhễ
LoanLoan
Khái quát nội dung trình bàyKhái quát nội dung trình bày
• Kiểm thử phần mềm ( KTPM ) là gì ?Kiểm thử phần mềm ( KTPM ) là gì ?
• Tại sao phải kiểm thử PM ?Tại sao phải kiểm thử PM ?
• Lịch sử của Kiểm thử phần mềmLịch sử của Kiểm thử phần mềm
• Khái quát về các kĩ thuật kiểm thửKhái quát về các kĩ thuật kiểm thử
• Các kĩ thuật kiểm thửCác kĩ thuật kiểm thử
• Kết luận và hỏi đápKết luận và hỏi đáp
Tại sao phải KTPM ?Tại sao phải KTPM ?
• Đảm bảo chất lượng phần mềm sau khiĐảm bảo chất lượng phần mềm sau khi
đưa ra sử dụngđưa ra sử dụng
• Hoàn thiện & nâng cấp khả năng phầnHoàn thiện & nâng cấp khả năng phần
mềmmềm
• Tránh rủi ro cho khách hàng và giảm bảoTránh rủi ro cho khách hàng và giảm bảo
trì, bảo hành cho người viết phần mềm.trì, bảo hành cho người viết phần mềm.
Kiểm thử phần mềmKiểm thử phần mềm
Kiểm thử phần mềm là công việc sau cùng trướcKiểm thử phần mềm là công việc sau cùng trước
khi đưa phần mềm ra thị trường (release) , kiểmkhi đưa phần mềm ra thị trường (release) , kiểm
thử được thực hiện thông qua các bài Test.thử được thực hiện thông qua các bài Test.
- Thực tế là áp dụng các phương pháp, chiến lược- Thực tế là áp dụng các phương pháp, chiến lược
cho các các tập giá trị cho đầu vào để xem kếtcho các các tập giá trị cho đầu vào để xem kết
quả đầu ra có như ý muốn hay không ?quả đầu ra có như ý muốn hay không ?
Lịch sử của kiểm thử phần mềmLịch sử của kiểm thử phần mềm
Khái quát các kĩ thuật KTPMKhái quát các kĩ thuật KTPM
• White Box TestingWhite Box Testing (Hộp trắng)(Hộp trắng)
• Black Box TestingBlack Box Testing ( Hộp đen )( Hộp đen )
• Grey box testing (H p xám)ộGrey box testing (H p xám)ộ
White Box TestingWhite Box Testing
Khái niệmKhái niệm
• Còn được gọi làCòn được gọi là clear box testing, glass boxclear box testing, glass box
testing, transparent box testing, or structuraltesting, transparent box testing, or structural
testing,testing, thường thiết kế cácthường thiết kế các tr ng h p ki m thườ ợ ể ửtr ng h p ki m thườ ợ ể ử
dựa vàodựa vào c u trúc bên trongấc u trúc bên trongấ của phần mềm.của phần mềm.
• WBT đòi hỏi kĩ thuật lập trình am hiểu cấu trúcWBT đòi hỏi kĩ thuật lập trình am hiểu cấu trúc
bên trong của phần mềm ( các đường, luồng dữbên trong của phần mềm ( các đường, luồng dữ
liệu, chức năng, kết quả ).liệu, chức năng, kết quả ).
• Phương thức :Phương thức : Chọn các đầu vào và xem các đầu raChọn các đầu vào và xem các đầu ra
White Box TestWhite Box Test
• Phụ thuộc vào các cài đặt hiện tại của hệPhụ thuộc vào các cài đặt hiện tại của hệ
thống và của phần mềm, nếu có sự thaythống và của phần mềm, nếu có sự thay
đổi thìđổi thì các bài test cũng cần thay đổi theo.các bài test cũng cần thay đổi theo.
• Được ứng dụng trong các kiểm tra ở cấpĐược ứng dụng trong các kiểm tra ở cấp
độđộ mô đun(điển hình)mô đun(điển hình),, tích hợp (có khảtích hợp (có khả
năng)năng) và hệ thốngvà hệ thống của quá trình test phầncủa quá trình test phần
mềmmềm..
White Box TestingWhite Box Testing
Đặc điểmĐặc điểm
• Kiểm thử luồng, lộ trìnhKiểm thử luồng, lộ trình (( Deriving Test CasesDeriving Test Cases))
• ++ Lộ trình cơ sởLộ trình cơ sở ((Basis path TestingBasis path Testing))
• Luồng điều khiển / Phạm viLuồng điều khiển / Phạm vi
• ((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
• ++ Phương thức -Phương thức - Method CoverageMethod Coverage
• ++ Câu lệnhCâu lệnh –– StatementStatement CovergeCoverge
• ++ Nhánh -Nhánh - BranchBranch CovergeCoverge
• ++ Điều kiệnĐiều kiện –– ConditionCondition ConverageConverage
• Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu ( Data Flow Test )( Data Flow Test )
• Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’ –– Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test
Flow Groaps RevisitedFlow Groaps Revisited
White Box TestingWhite Box Testing
Các kĩ thuậtCác kĩ thuật
• Basis Path Testing (Basis Path Testing ( Kiểm thử lộ trình cơ sởKiểm thử lộ trình cơ sở))
• Equivalence Partitioning / Boundary ValueEquivalence Partitioning / Boundary Value
( Phân vùng tương đương và Giá trị biên )( Phân vùng tương đương và Giá trị biên )
White Box TestingWhite Box Testing
Kiểm thử luồng, lộ trìnhKiểm thử luồng, lộ trình
(( Deriving Test CasesDeriving Test Cases))
• Kiểm tra lộ trình cơ sở :Kiểm tra lộ trình cơ sở :
• Là kĩ thuật kiểm thử mà phần mềmLà kĩ thuật kiểm thử mà phần mềm
được chia thành các lộ trìnhđược chia thành các lộ trình
• Đảm bảo các lộ trình độc lập qua một môĐảm bảo các lộ trình độc lập qua một mô
đun mã sẽ được kiểm thử đầy đủđun mã sẽ được kiểm thử đầy đủ
White Box TestingWhite Box Testing
Basis Path TestingBasis Path Testing
White Box TestingWhite Box Testing
Basis Path TestingBasis Path Testing
Một số khái niệmMột số khái niệm
• Đồ hình lộ trình :Đồ hình lộ trình : Bao gồm các hình, mũiBao gồm các hình, mũi
tên (cạnh), chỉ số, mô tả kháctên (cạnh), chỉ số, mô tả khác
• Độ phức tạp chu trình ( CyclomaticĐộ phức tạp chu trình ( Cyclomatic
Complexity ) :Complexity ) : Được tìm ra bởi chu trìnhĐược tìm ra bởi chu trình
McCabe, chỉ ra độ phức tạp lôgic của mộtMcCabe, chỉ ra độ phức tạp lôgic của một
chương trình.chương trình.
White Box TestingWhite Box Testing
Basis Path TestingBasis Path Testing
White Box TestingWhite Box Testing
Basis Path TestingBasis Path Testing
• Cách tạo kiểm thửCách tạo kiểm thử
• Sử dụng một đoạn code hoặc thiết kế làmSử dụng một đoạn code hoặc thiết kế làm
cơ sở để xây dựng lên đồ hình luồng.cơ sở để xây dựng lên đồ hình luồng.
• Đưa ra các chu trình lộ trình từ đồ hìnhĐưa ra các chu trình lộ trình từ đồ hình
vừa có được.vừa có được.
• Quyết định một lộ trình độc lập tuyến tínhQuyết định một lộ trình độc lập tuyến tính
• Kiểm tra tất các chu trình đã tạo.Kiểm tra tất các chu trình đã tạo.
White Box TestingWhite Box Testing
Basis Path TestingBasis Path Testing
• Là cách tạo ra các bộ giá trị kiểm thửLà cách tạo ra các bộ giá trị kiểm thử
để có thể xem được 100% các trườngđể có thể xem được 100% các trường
hợp có thể xảy ra với các thành phần củahợp có thể xảy ra với các thành phần của
một chương trình bao gồm :một chương trình bao gồm :
+ Các phương thức ( Method )+ Các phương thức ( Method )
+ Các câu lệnh (Statement )+ Các câu lệnh (Statement )
+ Các nhánh (branch)+ Các nhánh (branch)
+ Các điều kiện+ Các điều kiện
White Box TestingWhite Box Testing
Luồng điều khiển / GomLuồng điều khiển / Gom
((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
• Ví dụ :Ví dụ : Kiểm tra phương thức bằng các bộKiểm tra phương thức bằng các bộ
giá trị của hàm foo sau :giá trị của hàm foo sau :
• Bộ giá trị được chọn là foo(0,0,0,0,0)Bộ giá trị được chọn là foo(0,0,0,0,0)
White Box TestingWhite Box Testing
Luồng điều khiển / GomLuồng điều khiển / Gom
((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
• Với nhánh (branch )Với nhánh (branch )
IF ( a equals b AND c less than d ) THENIF ( a equals b AND c less than d ) THEN
    statement 1    statement 1
ELSEELSE
    statement 2    statement 2
END IFEND IF
• Chọn bộ giá trị a b c d sao cho có thểChọn bộ giá trị a b c d sao cho có thể
kiểm tra hết các nhánh rẽ .kiểm tra hết các nhánh rẽ .
• Ví dụ : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3)Ví dụ : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3)
White Box TestingWhite Box Testing
Luồng điều khiển / Phạm viLuồng điều khiển / Phạm vi
((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
• Kiểm tra sự khởi tạo, biến đổi và huỷ củaKiểm tra sự khởi tạo, biến đổi và huỷ của
các các luồng dữ liệu.các các luồng dữ liệu.
• Thường được phân tích qua đồ hình vàThường được phân tích qua đồ hình và
đặt ra các bộ giá trị thử và giá trị trả vềđặt ra các bộ giá trị thử và giá trị trả về
mong muốn dựa vào đồ hình đó.mong muốn dựa vào đồ hình đó.
White Box TestingWhite Box Testing
Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu
( Data Flow Test )( Data Flow Test )
• Một số trạng tháiMột số trạng thái
của biến dữ liệucủa biến dữ liệu
trong quá trình biếntrong quá trình biến
đốiđối
White Box TestingWhite Box Testing
Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu
( Data Flow Test )( Data Flow Test )
Ví dụVí dụ
• Hoá đơn thanhHoá đơn thanh
toán cho việctoán cho việc
sử dụng điệnsử dụng điện
Xét sự biếnXét sự biến
đổi luồngđổi luồng
dữ liệu của Billdữ liệu của Bill
White Box TestingWhite Box Testing
Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu
( Data Flow Test )( Data Flow Test )
White Box TestingWhite Box Testing
( Data Flow Test )( Data Flow Test )
White Box TestingWhite Box Testing
( Data Flow Test )( Data Flow Test )
• Quá trình biến đổi của billQuá trình biến đổi của bill
White Box TestingWhite Box Testing
( Data Flow Test )( Data Flow Test )
• Thiết kế bộ giá trị kiểm thử cho BillThiết kế bộ giá trị kiểm thử cho Bill
• Là trường hợp kiểm thử các trường hợpLà trường hợp kiểm thử các trường hợp
mà người lập trình cần đứng ở vị trí ngườimà người lập trình cần đứng ở vị trí người
dùng để nhập giá trịdùng để nhập giá trị
• Cụ thể là người dùng có thể nhập sốCụ thể là người dùng có thể nhập số
thay cho chữ, hoặc không nhập gì, tạo rathay cho chữ, hoặc không nhập gì, tạo ra
lỗi phép toán (divided by Zero )...lỗi phép toán (divided by Zero )...
White Box TestingWhite Box Testing
Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’
Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test
• Cách kiểm thửCách kiểm thử
• Tạo ra tất cả các trường hợp test màTạo ra tất cả các trường hợp test mà
người dùng thường mắc lỗi ( dựa vào kinhngười dùng thường mắc lỗi ( dựa vào kinh
nghiệm thực tế )nghiệm thực tế )
• Kiểm tra các lỗi toán học, số học, phạmKiểm tra các lỗi toán học, số học, phạm
vi biến, kiểu biến ....vi biến, kiểu biến ....
White Box TestingWhite Box Testing
Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’
Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test
• BLACKBOX TESTINGBLACKBOX TESTING
White Box TestingWhite Box Testing
Flow Groaps RevisitedFlow Groaps Revisited
Black Box TestingBlack Box Testing
• Black-box testingBlack-box testing sử dụng mô tả bên ngoàisử dụng mô tả bên ngoài
của phần mềm để kiểm thửcủa phần mềm để kiểm thử,, bao gồm các đặc tảbao gồm các đặc tả
(specifications), yêu cầu (requirements) và thiết kế ((specifications), yêu cầu (requirements) và thiết kế (designdesign) .) .
• Không có sự hiểu biết cấu trúc bên trong củaKhông có sự hiểu biết cấu trúc bên trong của
phần mềmphần mềm
• Các dạng đầu vào có dạng hàm hoặc không ,Các dạng đầu vào có dạng hàm hoặc không ,
hợp lệ và không không hợp lệ và biết trước đầuhợp lệ và không không hợp lệ và biết trước đầu
rara..
Black Box TestingBlack Box Testing
• Được sử dụng để kiểm thử phần mềmĐược sử dụng để kiểm thử phần mềm tạitại
mứcmức :: mô đun, tích hợp, hàm, hệ thống và chấpmô đun, tích hợp, hàm, hệ thống và chấp
nhậnnhận..
• - Lợi điểm của kiểm thử hộp đen là khả năng- Lợi điểm của kiểm thử hộp đen là khả năng
đơn giản hoá kiểm thử tại các mức độ đượcđơn giản hoá kiểm thử tại các mức độ được
đánh giá là khó kiểm thửđánh giá là khó kiểm thử
• - Yếu điểm là khó đánh giá còn bộ giá trị nào- Yếu điểm là khó đánh giá còn bộ giá trị nào
chưa được kiểm thử hay khôngchưa được kiểm thử hay không
Black Box TestingBlack Box Testing
Ví dụ minh hoạVí dụ minh hoạ
• Các kí thuật chính của kiểm thử hộp đen :Các kí thuật chính của kiểm thử hộp đen :
• ++ Decision TableDecision Table testingtesting
• + Pairwise testing+ Pairwise testing
• + State transition tables+ State transition tables
• ++ Tests of Customer RequirementTests of Customer Requirement
• ++ Equivalence partitioningEquivalence partitioning
• ++ Boundary value analysisBoundary value analysis
• ++ Failure Test CasesFailure Test Cases
Black Box TestingBlack Box Testing
• Giảm thiểu số trường hợp kiểm thửGiảm thiểu số trường hợp kiểm thử
• Phân vùng giá trị kiểm thửPhân vùng giá trị kiểm thử
White Box TestingWhite Box Testing
Khoảng giá trị tương đương – Phân tích giá trị biênKhoảng giá trị tương đương – Phân tích giá trị biên
• Decision Table TestingDecision Table Testing
• Là cách xây dựng một bộ các giá trị kiểmLà cách xây dựng một bộ các giá trị kiểm
thử đầy đủ không cần biết cấu trúc bênthử đầy đủ không cần biết cấu trúc bên
trong của phần mềm.trong của phần mềm.
• Bảng quyết định được xây dựng dựa vàoBảng quyết định được xây dựng dựa vào
• Trong đó :Trong đó :
• Condition : inputCondition : input
• Action : outputAction : output
Black Box TestingBlack Box Testing
Decision Table TestingDecision Table Testing
Black box testingBlack box testing
Pairwise testingPairwise testing
• Pairwise testing là cách phối hợp các đầuPairwise testing là cách phối hợp các đầu
vào để tạo ra bộ giá trị kiểm thửvào để tạo ra bộ giá trị kiểm thử
• Ở ví dụ này Bộ có thể chọn của X=1 | 2Ở ví dụ này Bộ có thể chọn của X=1 | 2
• Y= Q | R , Z= 5 | 6Y= Q | R , Z= 5 | 6
Black box testingBlack box testing
Pairwise TestingPairwise Testing
• Hạn chế :Hạn chế : số lượng giá trị của mỗi đầusố lượng giá trị của mỗi đầu
vào tăng tạo ra sự tăng nhanh trong cácvào tăng tạo ra sự tăng nhanh trong các
trường hợp thửtrường hợp thử
• Có thể gặp phải lỗi trong việc kết hợp cácCó thể gặp phải lỗi trong việc kết hợp các
giá trị đôi khi không xảy ragiá trị đôi khi không xảy ra
• Ưu điểm :Ưu điểm : Xét được hết các trường hợpXét được hết các trường hợp
đầu vào kể cả trường hợp ngẫu nhiên củađầu vào kể cả trường hợp ngẫu nhiên của
người dùngngười dùng
Black box TestingBlack box Testing
• Testing based on Customer RequirementsTesting based on Customer Requirements
• Dựa vào các yêu cầu của khách hàng đểDựa vào các yêu cầu của khách hàng để
tạo ra các bộ giá trị kiểm thử.tạo ra các bộ giá trị kiểm thử.
Black box TestingBlack box Testing
• State transition tables :State transition tables : Là bảng môLà bảng mô
tả sự chuyển trạng thái tương ứng với giátả sự chuyển trạng thái tương ứng với giá
trị đầu vào tương ứng.trị đầu vào tương ứng.
• Là sự kết hợp của kiểm thử hộp đen vàLà sự kết hợp của kiểm thử hộp đen và
kiểm thử hộp trắng khi mà người kiểm thửkiểm thử hộp trắng khi mà người kiểm thử
biết được một phần cấu trúc bên trongbiết được một phần cấu trúc bên trong
của phần mềmcủa phần mềm
• Như vậy không phải là KT hộp đenNhư vậy không phải là KT hộp đen
• Là dạng kiểm thử tốt và có sự kết hợpLà dạng kiểm thử tốt và có sự kết hợp
các kĩ thuật của cả kiểm thử hộp đen vàcác kĩ thuật của cả kiểm thử hộp đen và
hộp trắnghộp trắng
Grey Box TestingGrey Box Testing
Other testsOther tests
• Sanity testingSanity testing
• Smoke testingSmoke testing
• Software testingSoftware testing
• Stress testingStress testing
• Test automationTest automation
• Web Application Security ScannerWeb Application Security Scanner
• FuzzingFuzzing
• Acceptance testingAcceptance testing
• Sanwich TestingSanwich Testing
Sanity testingSanity testing
• Kiểm thử đúng đắn là kiểm thử lướt qua;Kiểm thử đúng đắn là kiểm thử lướt qua;
được thực hiện khi có đủ điều kiện nâng caođược thực hiện khi có đủ điều kiện nâng cao
ứng dụng nhờ việc hàm hoá đặc tả.ứng dụng nhờ việc hàm hoá đặc tả.
• Kiểm thử các thành phần thoái hoá của phầnKiểm thử các thành phần thoái hoá của phần
mềm.mềm.
• –– Bao gồm các kiểm thử vào vùng lõi của cácBao gồm các kiểm thử vào vùng lõi của các
hàm GUI cơ sở để xem kết nối dữ liệu, máy chủhàm GUI cơ sở để xem kết nối dữ liệu, máy chủ
ứng dụng, máy in , vv...ứng dụng, máy in , vv...
•
Smoke testingSmoke testing
• Smoke Testing xảy ra khi thành phần mớiSmoke Testing xảy ra khi thành phần mới
được thêm vào và được tích hợp vào phầnđược thêm vào và được tích hợp vào phần
code đã có của phần mềm. Nó đảm bảocode đã có của phần mềm. Nó đảm bảo
việc làm việc ăn khớp của khối code mớiviệc làm việc ăn khớp của khối code mới..
• Là bước đầu kiểm tra sau đó cần kiểmLà bước đầu kiểm tra sau đó cần kiểm
thử thêm các bằng các kĩ thuật khác .thử thêm các bằng các kĩ thuật khác .
Question of Everyone ?Question of Everyone ?
Thanks YOU !Thanks YOU !

Cac kythuatktpm

  • 1.
    Công nghệ phầnmềmCông nghệ phần mềm Đề tài :Đề tài : Tìm hiểu các kĩ thuật kiểm thửTìm hiểu các kĩ thuật kiểm thử Nhóm th c hi nự ệNhóm th c hi nự ệ Ph m Hoàng HàạPh m Hoàng Hàạ Mai c KhiêmĐứMai c KhiêmĐứ Nguy n ThanhễNguy n Thanhễ LoanLoan
  • 2.
    Khái quát nộidung trình bàyKhái quát nội dung trình bày • Kiểm thử phần mềm ( KTPM ) là gì ?Kiểm thử phần mềm ( KTPM ) là gì ? • Tại sao phải kiểm thử PM ?Tại sao phải kiểm thử PM ? • Lịch sử của Kiểm thử phần mềmLịch sử của Kiểm thử phần mềm • Khái quát về các kĩ thuật kiểm thửKhái quát về các kĩ thuật kiểm thử • Các kĩ thuật kiểm thửCác kĩ thuật kiểm thử • Kết luận và hỏi đápKết luận và hỏi đáp
  • 3.
    Tại sao phảiKTPM ?Tại sao phải KTPM ? • Đảm bảo chất lượng phần mềm sau khiĐảm bảo chất lượng phần mềm sau khi đưa ra sử dụngđưa ra sử dụng • Hoàn thiện & nâng cấp khả năng phầnHoàn thiện & nâng cấp khả năng phần mềmmềm • Tránh rủi ro cho khách hàng và giảm bảoTránh rủi ro cho khách hàng và giảm bảo trì, bảo hành cho người viết phần mềm.trì, bảo hành cho người viết phần mềm.
  • 4.
    Kiểm thử phầnmềmKiểm thử phần mềm Kiểm thử phần mềm là công việc sau cùng trướcKiểm thử phần mềm là công việc sau cùng trước khi đưa phần mềm ra thị trường (release) , kiểmkhi đưa phần mềm ra thị trường (release) , kiểm thử được thực hiện thông qua các bài Test.thử được thực hiện thông qua các bài Test. - Thực tế là áp dụng các phương pháp, chiến lược- Thực tế là áp dụng các phương pháp, chiến lược cho các các tập giá trị cho đầu vào để xem kếtcho các các tập giá trị cho đầu vào để xem kết quả đầu ra có như ý muốn hay không ?quả đầu ra có như ý muốn hay không ?
  • 5.
    Lịch sử củakiểm thử phần mềmLịch sử của kiểm thử phần mềm
  • 6.
    Khái quát cáckĩ thuật KTPMKhái quát các kĩ thuật KTPM • White Box TestingWhite Box Testing (Hộp trắng)(Hộp trắng) • Black Box TestingBlack Box Testing ( Hộp đen )( Hộp đen ) • Grey box testing (H p xám)ộGrey box testing (H p xám)ộ
  • 7.
    White Box TestingWhiteBox Testing Khái niệmKhái niệm • Còn được gọi làCòn được gọi là clear box testing, glass boxclear box testing, glass box testing, transparent box testing, or structuraltesting, transparent box testing, or structural testing,testing, thường thiết kế cácthường thiết kế các tr ng h p ki m thườ ợ ể ửtr ng h p ki m thườ ợ ể ử dựa vàodựa vào c u trúc bên trongấc u trúc bên trongấ của phần mềm.của phần mềm. • WBT đòi hỏi kĩ thuật lập trình am hiểu cấu trúcWBT đòi hỏi kĩ thuật lập trình am hiểu cấu trúc bên trong của phần mềm ( các đường, luồng dữbên trong của phần mềm ( các đường, luồng dữ liệu, chức năng, kết quả ).liệu, chức năng, kết quả ). • Phương thức :Phương thức : Chọn các đầu vào và xem các đầu raChọn các đầu vào và xem các đầu ra
  • 8.
  • 9.
    • Phụ thuộcvào các cài đặt hiện tại của hệPhụ thuộc vào các cài đặt hiện tại của hệ thống và của phần mềm, nếu có sự thaythống và của phần mềm, nếu có sự thay đổi thìđổi thì các bài test cũng cần thay đổi theo.các bài test cũng cần thay đổi theo. • Được ứng dụng trong các kiểm tra ở cấpĐược ứng dụng trong các kiểm tra ở cấp độđộ mô đun(điển hình)mô đun(điển hình),, tích hợp (có khảtích hợp (có khả năng)năng) và hệ thốngvà hệ thống của quá trình test phầncủa quá trình test phần mềmmềm.. White Box TestingWhite Box Testing Đặc điểmĐặc điểm
  • 10.
    • Kiểm thửluồng, lộ trìnhKiểm thử luồng, lộ trình (( Deriving Test CasesDeriving Test Cases)) • ++ Lộ trình cơ sởLộ trình cơ sở ((Basis path TestingBasis path Testing)) • Luồng điều khiển / Phạm viLuồng điều khiển / Phạm vi • ((Control-flow / CoveraControl-flow / Coveragge Testinge Testing)) • ++ Phương thức -Phương thức - Method CoverageMethod Coverage • ++ Câu lệnhCâu lệnh –– StatementStatement CovergeCoverge • ++ Nhánh -Nhánh - BranchBranch CovergeCoverge • ++ Điều kiệnĐiều kiện –– ConditionCondition ConverageConverage • Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu ( Data Flow Test )( Data Flow Test ) • Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’ –– Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test Flow Groaps RevisitedFlow Groaps Revisited White Box TestingWhite Box Testing Các kĩ thuậtCác kĩ thuật
  • 11.
    • Basis PathTesting (Basis Path Testing ( Kiểm thử lộ trình cơ sởKiểm thử lộ trình cơ sở)) • Equivalence Partitioning / Boundary ValueEquivalence Partitioning / Boundary Value ( Phân vùng tương đương và Giá trị biên )( Phân vùng tương đương và Giá trị biên ) White Box TestingWhite Box Testing Kiểm thử luồng, lộ trìnhKiểm thử luồng, lộ trình (( Deriving Test CasesDeriving Test Cases))
  • 12.
    • Kiểm tralộ trình cơ sở :Kiểm tra lộ trình cơ sở : • Là kĩ thuật kiểm thử mà phần mềmLà kĩ thuật kiểm thử mà phần mềm được chia thành các lộ trìnhđược chia thành các lộ trình • Đảm bảo các lộ trình độc lập qua một môĐảm bảo các lộ trình độc lập qua một mô đun mã sẽ được kiểm thử đầy đủđun mã sẽ được kiểm thử đầy đủ White Box TestingWhite Box Testing Basis Path TestingBasis Path Testing
  • 13.
    White Box TestingWhiteBox Testing Basis Path TestingBasis Path Testing
  • 14.
    Một số kháiniệmMột số khái niệm • Đồ hình lộ trình :Đồ hình lộ trình : Bao gồm các hình, mũiBao gồm các hình, mũi tên (cạnh), chỉ số, mô tả kháctên (cạnh), chỉ số, mô tả khác • Độ phức tạp chu trình ( CyclomaticĐộ phức tạp chu trình ( Cyclomatic Complexity ) :Complexity ) : Được tìm ra bởi chu trìnhĐược tìm ra bởi chu trình McCabe, chỉ ra độ phức tạp lôgic của mộtMcCabe, chỉ ra độ phức tạp lôgic của một chương trình.chương trình. White Box TestingWhite Box Testing Basis Path TestingBasis Path Testing
  • 15.
    White Box TestingWhiteBox Testing Basis Path TestingBasis Path Testing
  • 16.
    • Cách tạokiểm thửCách tạo kiểm thử • Sử dụng một đoạn code hoặc thiết kế làmSử dụng một đoạn code hoặc thiết kế làm cơ sở để xây dựng lên đồ hình luồng.cơ sở để xây dựng lên đồ hình luồng. • Đưa ra các chu trình lộ trình từ đồ hìnhĐưa ra các chu trình lộ trình từ đồ hình vừa có được.vừa có được. • Quyết định một lộ trình độc lập tuyến tínhQuyết định một lộ trình độc lập tuyến tính • Kiểm tra tất các chu trình đã tạo.Kiểm tra tất các chu trình đã tạo. White Box TestingWhite Box Testing Basis Path TestingBasis Path Testing
  • 17.
    • Là cáchtạo ra các bộ giá trị kiểm thửLà cách tạo ra các bộ giá trị kiểm thử để có thể xem được 100% các trườngđể có thể xem được 100% các trường hợp có thể xảy ra với các thành phần củahợp có thể xảy ra với các thành phần của một chương trình bao gồm :một chương trình bao gồm : + Các phương thức ( Method )+ Các phương thức ( Method ) + Các câu lệnh (Statement )+ Các câu lệnh (Statement ) + Các nhánh (branch)+ Các nhánh (branch) + Các điều kiện+ Các điều kiện White Box TestingWhite Box Testing Luồng điều khiển / GomLuồng điều khiển / Gom ((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
  • 18.
    • Ví dụ:Ví dụ : Kiểm tra phương thức bằng các bộKiểm tra phương thức bằng các bộ giá trị của hàm foo sau :giá trị của hàm foo sau : • Bộ giá trị được chọn là foo(0,0,0,0,0)Bộ giá trị được chọn là foo(0,0,0,0,0) White Box TestingWhite Box Testing Luồng điều khiển / GomLuồng điều khiển / Gom ((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
  • 19.
    • Với nhánh(branch )Với nhánh (branch ) IF ( a equals b AND c less than d ) THENIF ( a equals b AND c less than d ) THEN     statement 1    statement 1 ELSEELSE     statement 2    statement 2 END IFEND IF • Chọn bộ giá trị a b c d sao cho có thểChọn bộ giá trị a b c d sao cho có thể kiểm tra hết các nhánh rẽ .kiểm tra hết các nhánh rẽ . • Ví dụ : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3)Ví dụ : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3) White Box TestingWhite Box Testing Luồng điều khiển / Phạm viLuồng điều khiển / Phạm vi ((Control-flow / CoveraControl-flow / Coveragge Testinge Testing))
  • 20.
    • Kiểm trasự khởi tạo, biến đổi và huỷ củaKiểm tra sự khởi tạo, biến đổi và huỷ của các các luồng dữ liệu.các các luồng dữ liệu. • Thường được phân tích qua đồ hình vàThường được phân tích qua đồ hình và đặt ra các bộ giá trị thử và giá trị trả vềđặt ra các bộ giá trị thử và giá trị trả về mong muốn dựa vào đồ hình đó.mong muốn dựa vào đồ hình đó. White Box TestingWhite Box Testing Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu ( Data Flow Test )( Data Flow Test )
  • 21.
    • Một sốtrạng tháiMột số trạng thái của biến dữ liệucủa biến dữ liệu trong quá trình biếntrong quá trình biến đốiđối White Box TestingWhite Box Testing Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu ( Data Flow Test )( Data Flow Test )
  • 22.
    Ví dụVí dụ •Hoá đơn thanhHoá đơn thanh toán cho việctoán cho việc sử dụng điệnsử dụng điện Xét sự biếnXét sự biến đổi luồngđổi luồng dữ liệu của Billdữ liệu của Bill White Box TestingWhite Box Testing Kiểm thử luồng dữ liệuKiểm thử luồng dữ liệu ( Data Flow Test )( Data Flow Test )
  • 23.
    White Box TestingWhiteBox Testing ( Data Flow Test )( Data Flow Test )
  • 24.
    White Box TestingWhiteBox Testing ( Data Flow Test )( Data Flow Test ) • Quá trình biến đổi của billQuá trình biến đổi của bill
  • 25.
    White Box TestingWhiteBox Testing ( Data Flow Test )( Data Flow Test ) • Thiết kế bộ giá trị kiểm thử cho BillThiết kế bộ giá trị kiểm thử cho Bill
  • 26.
    • Là trườnghợp kiểm thử các trường hợpLà trường hợp kiểm thử các trường hợp mà người lập trình cần đứng ở vị trí ngườimà người lập trình cần đứng ở vị trí người dùng để nhập giá trịdùng để nhập giá trị • Cụ thể là người dùng có thể nhập sốCụ thể là người dùng có thể nhập số thay cho chữ, hoặc không nhập gì, tạo rathay cho chữ, hoặc không nhập gì, tạo ra lỗi phép toán (divided by Zero )...lỗi phép toán (divided by Zero )... White Box TestingWhite Box Testing Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’ Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test
  • 27.
    • Cách kiểmthửCách kiểm thử • Tạo ra tất cả các trường hợp test màTạo ra tất cả các trường hợp test mà người dùng thường mắc lỗi ( dựa vào kinhngười dùng thường mắc lỗi ( dựa vào kinh nghiệm thực tế )nghiệm thực tế ) • Kiểm tra các lỗi toán học, số học, phạmKiểm tra các lỗi toán học, số học, phạm vi biến, kiểu biến ....vi biến, kiểu biến .... White Box TestingWhite Box Testing Trường hợp hỏng ‘rác’Trường hợp hỏng ‘rác’ Failure ‘Dirty’ Case TestFailure ‘Dirty’ Case Test
  • 28.
    • BLACKBOX TESTINGBLACKBOXTESTING White Box TestingWhite Box Testing Flow Groaps RevisitedFlow Groaps Revisited
  • 29.
    Black Box TestingBlackBox Testing • Black-box testingBlack-box testing sử dụng mô tả bên ngoàisử dụng mô tả bên ngoài của phần mềm để kiểm thửcủa phần mềm để kiểm thử,, bao gồm các đặc tảbao gồm các đặc tả (specifications), yêu cầu (requirements) và thiết kế ((specifications), yêu cầu (requirements) và thiết kế (designdesign) .) . • Không có sự hiểu biết cấu trúc bên trong củaKhông có sự hiểu biết cấu trúc bên trong của phần mềmphần mềm • Các dạng đầu vào có dạng hàm hoặc không ,Các dạng đầu vào có dạng hàm hoặc không , hợp lệ và không không hợp lệ và biết trước đầuhợp lệ và không không hợp lệ và biết trước đầu rara..
  • 30.
  • 31.
    • Được sửdụng để kiểm thử phần mềmĐược sử dụng để kiểm thử phần mềm tạitại mứcmức :: mô đun, tích hợp, hàm, hệ thống và chấpmô đun, tích hợp, hàm, hệ thống và chấp nhậnnhận.. • - Lợi điểm của kiểm thử hộp đen là khả năng- Lợi điểm của kiểm thử hộp đen là khả năng đơn giản hoá kiểm thử tại các mức độ đượcđơn giản hoá kiểm thử tại các mức độ được đánh giá là khó kiểm thửđánh giá là khó kiểm thử • - Yếu điểm là khó đánh giá còn bộ giá trị nào- Yếu điểm là khó đánh giá còn bộ giá trị nào chưa được kiểm thử hay khôngchưa được kiểm thử hay không Black Box TestingBlack Box Testing
  • 32.
    Ví dụ minhhoạVí dụ minh hoạ
  • 33.
    • Các kíthuật chính của kiểm thử hộp đen :Các kí thuật chính của kiểm thử hộp đen : • ++ Decision TableDecision Table testingtesting • + Pairwise testing+ Pairwise testing • + State transition tables+ State transition tables • ++ Tests of Customer RequirementTests of Customer Requirement • ++ Equivalence partitioningEquivalence partitioning • ++ Boundary value analysisBoundary value analysis • ++ Failure Test CasesFailure Test Cases Black Box TestingBlack Box Testing
  • 34.
    • Giảm thiểusố trường hợp kiểm thửGiảm thiểu số trường hợp kiểm thử • Phân vùng giá trị kiểm thửPhân vùng giá trị kiểm thử White Box TestingWhite Box Testing Khoảng giá trị tương đương – Phân tích giá trị biênKhoảng giá trị tương đương – Phân tích giá trị biên
  • 35.
    • Decision TableTestingDecision Table Testing • Là cách xây dựng một bộ các giá trị kiểmLà cách xây dựng một bộ các giá trị kiểm thử đầy đủ không cần biết cấu trúc bênthử đầy đủ không cần biết cấu trúc bên trong của phần mềm.trong của phần mềm. • Bảng quyết định được xây dựng dựa vàoBảng quyết định được xây dựng dựa vào • Trong đó :Trong đó : • Condition : inputCondition : input • Action : outputAction : output Black Box TestingBlack Box Testing
  • 36.
  • 37.
    Black box testingBlackbox testing Pairwise testingPairwise testing • Pairwise testing là cách phối hợp các đầuPairwise testing là cách phối hợp các đầu vào để tạo ra bộ giá trị kiểm thửvào để tạo ra bộ giá trị kiểm thử • Ở ví dụ này Bộ có thể chọn của X=1 | 2Ở ví dụ này Bộ có thể chọn của X=1 | 2 • Y= Q | R , Z= 5 | 6Y= Q | R , Z= 5 | 6
  • 38.
    Black box testingBlackbox testing Pairwise TestingPairwise Testing • Hạn chế :Hạn chế : số lượng giá trị của mỗi đầusố lượng giá trị của mỗi đầu vào tăng tạo ra sự tăng nhanh trong cácvào tăng tạo ra sự tăng nhanh trong các trường hợp thửtrường hợp thử • Có thể gặp phải lỗi trong việc kết hợp cácCó thể gặp phải lỗi trong việc kết hợp các giá trị đôi khi không xảy ragiá trị đôi khi không xảy ra • Ưu điểm :Ưu điểm : Xét được hết các trường hợpXét được hết các trường hợp đầu vào kể cả trường hợp ngẫu nhiên củađầu vào kể cả trường hợp ngẫu nhiên của người dùngngười dùng
  • 39.
    Black box TestingBlackbox Testing • Testing based on Customer RequirementsTesting based on Customer Requirements • Dựa vào các yêu cầu của khách hàng đểDựa vào các yêu cầu của khách hàng để tạo ra các bộ giá trị kiểm thử.tạo ra các bộ giá trị kiểm thử.
  • 40.
    Black box TestingBlackbox Testing • State transition tables :State transition tables : Là bảng môLà bảng mô tả sự chuyển trạng thái tương ứng với giátả sự chuyển trạng thái tương ứng với giá trị đầu vào tương ứng.trị đầu vào tương ứng.
  • 41.
    • Là sựkết hợp của kiểm thử hộp đen vàLà sự kết hợp của kiểm thử hộp đen và kiểm thử hộp trắng khi mà người kiểm thửkiểm thử hộp trắng khi mà người kiểm thử biết được một phần cấu trúc bên trongbiết được một phần cấu trúc bên trong của phần mềmcủa phần mềm • Như vậy không phải là KT hộp đenNhư vậy không phải là KT hộp đen • Là dạng kiểm thử tốt và có sự kết hợpLà dạng kiểm thử tốt và có sự kết hợp các kĩ thuật của cả kiểm thử hộp đen vàcác kĩ thuật của cả kiểm thử hộp đen và hộp trắnghộp trắng Grey Box TestingGrey Box Testing
  • 42.
    Other testsOther tests •Sanity testingSanity testing • Smoke testingSmoke testing • Software testingSoftware testing • Stress testingStress testing • Test automationTest automation • Web Application Security ScannerWeb Application Security Scanner • FuzzingFuzzing • Acceptance testingAcceptance testing • Sanwich TestingSanwich Testing
  • 43.
    Sanity testingSanity testing •Kiểm thử đúng đắn là kiểm thử lướt qua;Kiểm thử đúng đắn là kiểm thử lướt qua; được thực hiện khi có đủ điều kiện nâng caođược thực hiện khi có đủ điều kiện nâng cao ứng dụng nhờ việc hàm hoá đặc tả.ứng dụng nhờ việc hàm hoá đặc tả. • Kiểm thử các thành phần thoái hoá của phầnKiểm thử các thành phần thoái hoá của phần mềm.mềm. • –– Bao gồm các kiểm thử vào vùng lõi của cácBao gồm các kiểm thử vào vùng lõi của các hàm GUI cơ sở để xem kết nối dữ liệu, máy chủhàm GUI cơ sở để xem kết nối dữ liệu, máy chủ ứng dụng, máy in , vv...ứng dụng, máy in , vv... •
  • 44.
    Smoke testingSmoke testing •Smoke Testing xảy ra khi thành phần mớiSmoke Testing xảy ra khi thành phần mới được thêm vào và được tích hợp vào phầnđược thêm vào và được tích hợp vào phần code đã có của phần mềm. Nó đảm bảocode đã có của phần mềm. Nó đảm bảo việc làm việc ăn khớp của khối code mớiviệc làm việc ăn khớp của khối code mới.. • Là bước đầu kiểm tra sau đó cần kiểmLà bước đầu kiểm tra sau đó cần kiểm thử thêm các bằng các kĩ thuật khác .thử thêm các bằng các kĩ thuật khác .
  • 45.
    Question of Everyone?Question of Everyone ?
  • 46.

Editor's Notes

  • #10 While it normally tests paths within a unit, it can also test paths between units during integration, and between subsystems during a system level test
  • #30 Black box testing
  • #44 Kiểm thử đúng đắn, sáng suốt