You are on page 1of 46

Công nghӋ phҫn mӅm

ĐӅ tài : ` 
    

î   
J

`
 `
ëhái quát nӝi dung trình bày

‡ ëiӇm thӱ phҫn mӅm ( ë  ) là gì ?


‡ i sao phҧi kiӇm thӱ  ?
‡ Lӏch sӱ cӫa ëiӇm thӱ phҫn mӅm
‡ ëhái quát vӅ các kĩ thuұt kiӇm thӱ
‡ Các kĩ thuұt kiӇm thӱ
‡ ët luұn và hӓi đáp
i sao phҧi ë  ?

‡ Đҧm bҧo chҩt lưӧng phҫn mӅm sau khi


đưa ra sӱ dөng
‡ Hoàn thiӋn & nâng cҩp khҧ năng phҫn
mӅm
‡ ránh rӫi ro cho khách hàng và giҧm bҧo
trì, bҧo hành cho ngưӡi vit phҫn mӅm.
ëiӇm thӱ phҫn mӅm

ëiӇ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Ӈm
thӱ đưӧc thӵc hiӋn thông qua các bài est.

- hӵc t là áp dөng các phương pháp, chin lưӧc


cho các các tұp giá trӏ cho đҫu vào đӇ xem kt
quҧ đҫu ra có như ý muӕn hay không ?
Lӏch sӱ cӫa kiӇm thӱ phҫn mӅm
ëhái quát các kĩ thuұt ë 

‡ È !"` #  (Hӝp trҳng)

‡ !$ !"` #  ( Hӝp đen )

‡ %& '" # ()*"+


Èhite Box esting
ë
 

‡ Còn đưӧc gӑi là clear box testing, glass box


testing, transparent box testing, or structural
testing, thưӡng thit k các › 
›
dӵa vào › ›  cӫa phҫn mӅm.

‡ ÈB đò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ӳ
liӋu, chӭc năng, kt quҧ ).

‡ › Chӑn các đҫu vào và xem các đҫu ra


Èhite Box est
Èhite Box esting
„   

‡ hө thuӝc vào các cài đһt hiӋn ti cӫa hӋ


thӕng và cӫa phҫn mӅm, nu có sӵ thay
đәi thì các bài test cũng cҫn thay đәi theo.
‡ Đưӧc ӭng dөng trong các kiӇm tra ӣ cҩp
đӝ mô đun(điӇn hình)
hình),, tích hӧp (có khҧ
năng) và hӋ thӕng cӫa quá trình test phҫn
mӅm..
mӅm
Èhite Box esting
c
  
‡ ëiӇm thӱ luӗng, lӝ trình ( Deriving est Cases)
Cases)
‡ + Lӝ trình cơ sӣ (Basis path esting)
esting)

‡ Luӗng điӅu khiӇn / hm vi


‡ (Control
Control--flow / Covera
Coveragge esting
esting))
‡ + hương thӭc - ethod Coverage
‡ + Câu lӋnh ± Statement Coverge
‡ + Nhánh - Branch Coverge
‡ + ĐiӅu kiӋn ± Condition Converage

‡ ëiӇm thӱ luӗng dӳ liӋu ( Data Flow est )


‡ rưӡng hӧp hӓng µrác¶ ± Failure µDirty¶ Case est
‡ Flow Groaps Revisited
Èhite Box esting
ëiӇm thӱ luӗng, lӝ trình
( Deriving est Cases)
Cases)

‡ Basis ath esting ( ëiӇm thӱ lӝ trình cơ sӣ)

‡ Equivalence artitioning / Boundary Value


( hân vùng tương đương và Giá trӏ biên )
Èhite Box esting
Basis ath esting

‡ ëiӇm tra lӝ trình cơ sӣ :


‡ Là kĩ thuұt kiӇm thӱ mà phҫn mӅm
đưӧc chia thành các lӝ trình
‡ Đҧm bҧo các lӝ trình đӝc lұp qua mӝt mô
đun mã sӁ đưӧc kiӇm thӱ đҫy đӫ
Èhite Box esting
Basis ath esting
Èhite Box esting
Basis ath esting

¦ 
 
‡ „ ›  Bao gӗm các hình, mũi
tên (cnh), chӍ sӕ, mô tҧ khác
‡ „››  ›

 !"
›# Đưӧc tìm ra bӣi chu trình
cCabe, chӍ ra đӝ phӭc tp lôgic cӫa mӝt
chương trình.
Èhite Box esting
Basis ath esting
Èhite Box esting
Basis ath esting

‡ c
    
‡ Sӱ dөng mӝt đon code hoһc thit k làm
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
vӯa có đưӧc.
‡ Quyt đӏnh mӝt lӝ trình đӝc lұp tuyn tính
‡ ëiӇm tra tҩt các chu trình đã to.
Èhite Box esting
Luӗng điӅu khiӇn / Gom
(Control
Control--flow / Covera
Coveragge esting)
esting)

‡ Là cách to ra các bӝ giá trӏ kiӇm thӱ đӇ


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ӫa mӝt
chương trình bao gӗm :
+ Các phương thӭc ( ethod )
+ Các câu lӋnh (Statement )
+ Các nhánh (branch)
+ Các điӅu kiӋn
Èhite Box esting
Luӗng điӅu khiӇn / Gom
(Control
Control--flow / Covera
Coveragge esting)
esting)

‡ «  ëiӇm tra phương thӭc bҵng các bӝ


giá trӏ cӫa hàm foo sau :

‡ Bӝ giá trӏ đưӧc chӑn là foo(0,0,0,0,0)


Èhite Box esting
Luӗng điӅu khiӇn / hm vi
(Control
Control--flow / Covera
Coveragge esting)
esting)

‡ Vӟi nhánh (branch )


IF ( a equals b AND c less than d ) HEN
statement 1
ELSE
statement 2
END IF

‡ Chӑn bӝ giá trӏ a b c d sao cho có thӇ kiӇm


tra ht các nhánh rӁ .
‡ Ví dө : (a,b,c,d) = (1, 1, 2, 6) & (1,2,3,3)
Èhite Box esting
ëiӇm thӱ luӗng dӳ liӋu
( Data Flow est )

‡ ëiӇm tra sӵ khӣi to, bin đәi và huӹ cӫa


các các luӗng dӳ liӋu.
‡ hưӡng đưӧc phân tích qua đӗ hình và
đһt ra các bӝ giá trӏ thӱ và giá trӏ trҧ vӅ
mong muӕn dӵa vào đӗ hình đó.
Èhite Box esting
ëiӇm thӱ luӗng dӳ liӋu
( Data Flow est )

‡ ӝt sӕ trng thái


cӫa bin dӳ liӋu
trong quá trình bin
đӕi
Èhite Box esting
ëiӇm thӱ luӗng dӳ liӋu
( Data Flow est )
« 
‡ Hoá đơn thanh
toán cho viӋc
sӱ dөng điӋn

¼ Ó t sӵ bin
đәi luӗng
dӳ liӋu cӫa Bill
Èhite Box esting
( Data Flow est )
Èhite Box esting
( Data Flow est )
‡ Quá trình bin đәi cӫa bill
Èhite Box esting
( Data Flow est )

‡ hit k bӝ giá trӏ kiӇm thӱ cho Bill


Èhite Box esting
rưӡng hӧp hӓng µrác¶
Failure µDirty¶ Case est

‡ Là 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ưӡi
dùng đӇ nhұp giá trӏ
‡ Cө thӇ là ngưӡi dùng có thӇ nhұp sӕ
thay cho chӳ, hoһc không nhұp gì, to ra
lӛi ph p toán (divided by Zero )...
Èhite Box esting
rưӡng hӧp hӓng µrác¶
Failure µDirty¶ Case est

‡ c
    
‡ 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 kinh
nghiӋm thӵc t )
‡ ëiӇm tra các lӛi toán hӑc, sӕ hӑc, phm
vi bin, kiӇu bin ....
Èhite Box esting
Flow Groaps Revisited

‡ ß cëßî
Black Box esting

‡ !$
!$ ,,'" #  sӱ dөng mô tҧ bên ngoài
cӫa phҫn mӅm đӇ kiӇm thӱ,
thӱ, bao gӗm các đһc tҧ
(specifications), yêu cҫu (requirements) và thit k ((design
design)) .

‡ ëhông có sӵ hiӇu bit cҩu trúc bên trong cӫa


phҫn mӅm

‡ Các dng đҫu vào có dng hàm hoһc không ,


hӧp lӋ và không không hӧp lӋ và bit trưӟc đҫu
ra.
ra.
Black Box esting
Black Box esting

‡ Đưӧc sӱ dөng đӇ kiӇm thӱ phҫn mӅm ti mӭc


: mô đun, tích hӧp, hàm, hӋ thӕng và chҩp nhұn.
nhұn.

‡ - Lӧi điӇm cӫa kiӇm thӱ hӝp đen là khҧ năng


đơn giҧn hoá kiӇm thӱ ti các mӭc đӝ đưӧc
đánh giá là khó kiӇm thӱ

‡ - Yu điӇm là khó đánh giá còn bӝ giá trӏ nào


chưa đưӧc kiӇm thӱ hay không
Ví dө minh ho
Black Box esting

‡ Các kí thuұt chính cӫa kiӇm thӱ hӝp đen :


‡ + Decision able testing
‡ + airwise testing
‡ + State transition tables
‡ + ests of Customer Requirement
‡ + Equivalence partitioning
‡ + Boundary value analysis
‡ + Failure est Cases
Èhite Box esting
ëhoҧng giá trӏ tương đương ± hân tích giá trӏ biên

‡ Giҧm thiӇu sӕ trưӡng hӧp kiӇm thӱ


‡ hân vùng giá trӏ kiӇm thӱ
Black Box esting
‡ w     !
‡ Là cách xây dӵng mӝt bӝ các giá trӏ kiӇm
thӱ đҫy đӫ không cҫn bit cҩu trúc bên
trong cӫa phҫn mӅm.
‡ Bҧng quyt đӏnh đưӧc xây dӵng dӵa vào
‡ rong đó :
‡ Condition : input
‡ Action : output
Decision able esting
Black box testing
airwise testing

‡ airwise testing là cách phӕi hӧp các đҫu


vào đӇ to ra bӝ giá trӏ kiӇm thӱ

‡ Ӣ ví dө này Bӝ có thӇ chӑn cӫa Ó=1 | 2


‡ Y= Q | R , Z= 5 | 6
Black box testing
airwise esting
‡ x  " sӕ lưӧng giá trӏ cӫa mӛi đҫu
vào tăng to ra sӵ tăng nhanh trong các
trưӡng hӧp thӱ
‡ Có thӇ gһp phҧi lӛi trong viӋc kt hӧp các
giá trӏ đôi khi không xҧy ra
‡ #   Ó t đưӧc ht các trưӡng hӧp
đҫu vào kӇ cҧ trưӡng hӧp ngүu nhiên cӫa
ngưӡi dùng
Black box esting
‡ esting based on Customer Requirements

‡ Dӵa vào các yêu cҫu cӫa khách hàng đӇ


to ra các bӝ giá trӏ kiӇm thӱ.
Black box esting

‡ כ ›!› $
›
› !$ Là bҧng mô
tҧ sӵ chuyӇn trng thái tương ӭng vӟi giá
trӏ đҫu vào tương ӭng.
Grey Box esting

‡ Là sӵ kt 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ӱ
bit đưӧc mӝt phҫn cҩu trúc bên trong cӫa
phҫn mӅm
‡ Như vұy không phҧi là ë hӝp đen
‡ Là dng kiӇm thӱ tӕt và có sӵ kt hӧp
các kĩ thuұt cӫa cҧ kiӇm thӱ hӝp đen và
hӝp trҳng
/ther tests
‡ Sanity testing
‡ Smoke testing
‡ Software testing
‡ Stress testing
‡ est automation
‡ Èeb Application Security Scanner
‡ Fuzzing
‡ Acceptance testing
‡ Sanwich esting
Sanity testing
‡ ëiӇ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
ӭng dөng nhӡ viӋc hàm hoá đһc tҧ.
‡ ëiӇm thӱ các thành phҫn thoái hoá cӫa phҫn
mӅm.

‡ ± Bao gӗm các kiӇm thӱ vào vùng lõi cӫa các
hàm GUI cơ sӣ đӇ xem kt nӕi dӳ liӋu, máy chӫ
ӭng dөng, máy in , vv...
‡
Smoke testing

‡ ×  !%!$›
"&  
›'( )

*› +'+'*›,+'(
-!*./0 ( 1 23/*& &
 6
-! )
.
+
4' +
45 )0  6
-! )
.
‡ Là 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 .
Question of Everyone ?
hanks Y/U !

You might also like