Chương 5-Kiểm thử

Chia sẻ: Pacific Ocean | Ngày: | Loại File: PDF | Số trang:13

0
93
lượt xem
46
download

Chương 5-Kiểm thử

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'chương 5-kiểm thử', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 5-Kiểm thử

  1. 14/9/2009 Ki m th ph n m m T ng quan — M c dù đư c t đ ng hoá m t ph n b i các công c , r t nhi u công đo n trong quá trình s n xu t ph n m m v n đư c th c hi n b i con ngư i Chương 5 — L i có th x y ra trong t t c các giai đo n: phân tích Ki m th yêu c u, thi t k , mã hoá — Do đó ph i ki m th chương trình trư c khi chính th c s d ng — Ki m th ph n m m là ho t đ ng th c thi chương trình v i m c đích tìm ra l i Kiêm th ph n m m – t ng quan Khái ni m — Có 2 ki u l i trong ng dung: M t s khái ni m — Không làm nh ng đi u ph i làm: l i b sót, thư ng — Ki m th h p đen (black-box) : xu t hi n các ng d ng m i phát tri n. — Ki m th các ch c năng c th c a ph n m m, — Làm nh ng đi u không c n làm: l i c a các l nh đã không quan tâm c u trúc bên trong cư trú trong các ng d ng bão trì. — D li u vào đư c t o theo thi t k đ sinh ra các — Có 2 lo i ki m th : output khác nhau, các k t qu đư c so sánh v i — Ki m th phát tri n (development test) : t ti n hành các k t qu th c t đ đánh giá m c đ thành — Đ m b o ch t lư ng (quantity assurance) và ki m tra công. ch p nh n (acceptance test): do bên ngoài ti n hành — Ba phương pháp chính: Phân ho ch cân b ng. Phân tích c c biên. Đoán l i 1
  2. 14/9/2009 Kiêm th ph n m m – khái ni m Kiêm th ph n m m – khái ni m — H p tr ng (white-box) : — Ki m th c u trúc đi u khi n bên trong chương trình. — H p đư c m ra và nhìn vào các logic đ c t c a ng d ng đ ki m tra nó làm vi c như th nào. — Có 3 phương pháp chính: — Ki m tra logic (logic test), — Ch ng minh toán h c (mathematical proof), — Phòng s ch (cleanroom test) M c tiêu Ki m th ph n m m – m c tiêu M c tiêu c a ki m th — Quá trình ki m th ph n m m là t t khi: — Tìm ra l i (n u có) v i chi phí th p nh t — Có kh năng tìm ra l i cao — Ki m th ph n m m giúp: — Không dư th a — Phát hi n đư c l i trong chương trình (n u có). — Bi t ch n l c: ch ki m nghi m nh ng ph n nào có — Ch ng minh đư c ph n m m ho t đ ng đúng như kh năng tìm ra l i đ c trưng đã thi t k — Không quá ph c t p cũng không quá đơn gi n — Ch ng minh đư c ph n m m đáp ng yêu c u c a user: Góp ph n ch ng minh ch t lư ng c a ph n — Chú ý: Ki m th ph n m m không kh ng đ nh đư c m m ph n m m không còn khi m khuy t, ch kh ng đ nh đư c ph n m m có l i 2
  3. 14/9/2009 Nguyên lý Test-case Các nguyên lý Trư ng h p ki m th (Test case) — Vi c ki m th nên hư ng v yêu c u c a khách hàng — Khái ni m test-case — D li u input — Nên đư c ho ch đ nh trư c m t th i gian dài. — Thao tác ki m nghi m — Áp d ng nguyên lý Pareto: 80% l i có nguyên nhân t — D li u output hay đáp ng mong đ i c a chương 20% các module : cô l p và ki m tra nh ng module kh trình nghi nh t. — Test-case cho ki m th black-box: ch y u d a vào — Không th ki m th tri t đ m t ph n m m. các yêu c u c th c a ch c năng ph n m m. — Nên đư c th c hi n b i nh ng đ i tư ng KHÔNG tham — Test-case cho ki m th white-box: ch y u d a vào gia vào quá trình phát tri n ph n m m c u trúc đi u khi n c a ph n m m Ki m th ph n m m - test-case Ki m th ph n m m - test-case Các đư ng đ c l p cơ b n Đ th dòng ch y — Ki m th white-box d a vào c u trúc đi u khi n c a — M i node hình tròn bi u di n m t ho c m t vài tác v thi t k th t c đ sinh các test-case v i tiêu chí (hơi khác so v i lưu đ thu t gi i) — T t c các đư ng th c thi đ c l p đư c th qua ít sequence if until while case nh t m t l n — Th các đi u ki n r nhánh c 2 nhánh true và false — Th qua vòng l p t i biên cũng như bên trong — Th qua c u trúc d li u đ đ m b o tính toàn v n c a nó — Ki m th các đư ng đ c l p cơ b n là m t trong nh ng phương cách ki m th white-box 3
  4. 14/9/2009 Ki m th ph n m m - test-case Ki m th ph n m m - test-case 1 procedure: DoSomething 1 1 2,3 1: do while x=0 2 2 2: if y=0 then 6 3: z=0; 4 4,5 3 4: elseif k=0 then 3 7 8 5: z=1; 6 5 6 4 6: else x=1; 9 7: endif; 7 7 8 5 9 10 endif; 8 8: enddo 10 11 9: end 9 11 Ki m th ph n m m - test-case Ki m th ph n m m - test-case — Ph i phân rã t t c các đi u ki n ph c tr thành Procedure AnalyzeTriangle các đi u ki n đơn — M i node mô t m t đi u ki n đơn đư c g i là 5 a=c predicate 4 a0 b a=b 10 b 8 a2=b2+c2 12 1 b=c x 9 y x 11 3 if a and b then y else x while a or b do x 4
  5. 14/9/2009 Ki m th ph n m m - test-case Ki m th ph n m m - test-case 1 — Đ i v i chương trình con Li t kê các đư ng đ c l p cơ b n DoSomething 2 — T node b t đ u đ n node k t thúc, các đư ng th c thi — T ng s đư ng : V = 3 + 1 = 4 cơ b n đư c li t kê theo m t th t nào đó đ đ m b o 4 — Đư ng 1: 1-9 3 r ng: đư ng đang li t kê ít nh t đi qua m t c nh chưa 6 5 đư c duy t qua b i các đư ng đã li t kê trư c đó — Đư ng 2: 1-2-3-8-1… — Đư ng 3: 1-2-4-5-7-8-1… 7 — T ng s đư ng th c thi cơ b n đ c l p nhau đư c tính b ng — Đư ng 4: 1-2-4-6-7-8-1… 8 — Chú ý: d u 3 ch m (…) mang ý — V = P + 1; trong đó P là s node phân nhánh nghĩa “không quan tâm”, t đó có (predicate) 9 th đi theo b t kỳ c nh nào b i vì các c nh sau đó đã đư c duy t qua r i Ki m th ph n m m - test-case Ki m th ph n m m - test-case — Đ i v i chương trình con AnalyzeTriangle Thi t l p các test-case — T ng s đư ng : V = 6 + 1 = 7 — Test-case : trư ng h p ki m th — Đư ng 1: 1-3-12 — Thi t l p m t test-case cho m i đư ng th c thi cơ b n — Đư ng 2: 1-2-3-12 — D a vào thu t gi i đ tìm ra m t d li u input, sau — Đư ng 3: 1-2-4-5-12 đó tính ra d li u output hay đáp ng mong đ i c a — Đư ng 4: 1-2-4-6-7-12 thu t gi i — Chú ý: có th không t o ra đư c test-case cho m t — Đư ng 5: 1-2-4-6-8-7-12 đư ng th c thi nào đó — Đư ng 6: 1-2-4-6-8-9-10-12 — Đư ng 7: 1-2-4-6-8-9-11-12 5
  6. 14/9/2009 Ki m th ph n m m - test-case Ki m th ph n m m - test-case — Sinh test-case cho chương trình con AnalyzeTriangle — Test-case cho đư ng 4: — Test-case cho đư ng 1: — Input: a = 7, b = 7, c = 4 — Output mong đ i: type = “Isosceles” — Input: a = 3, b = 2, c = 0 — Test-case cho đư ng 5: — Output mong đ i: type = “Error” — Input: a = 12, b = 9, c = 9 — Test-case cho đư ng 2: — Output mong đ i: type = “Isosceles” — Input: a = 17, b = 5, c = 4 — Test-case cho đư ng 6: — Output mong đ i: type = “Error” — Input: a = 5, b = 4, c = 3 — Test-case cho đư ng 3: — Output mong đ i: type = “Right” — Input: a = 6, b = 6, c = 6 — Test-case cho đư ng 7: — Output mong đ i: type = “Equilateral” — Input: a = 13, b = 11, c = 6 — Output mong đ i: type = “Scalene” Chi n thu t Ki m th ph n m m - chi n thu t Chi n thu t ki m th — Chi n thu t ki m th ph n m m tích h p các phương pháp t o ra test-case tr thành m t chu i các bư c có th t đ có th ki m th ph n m m thành công. — Bao g m các công vi c — L p k ho ch ki m nghi m — Sinh test-case — Th c hi n ki m th , thu th p k t q a và đánh giá 6
  7. 14/9/2009 Quy trình Ki m th ph n m m - quy trình Quy trình ki m th — Đơn v phát tri n ti n hành — Ki m th đơn v (Unit test) — Ki m th tích h p (Sub system integration test) — Ki m th h th ng (System test) — Khách hàng ti n hành — Đ m b o ch t lư ng và ki m th ch p thu n (Quanlity assurance & Acceptance test) Ki m th ph n m m - quy trình Ki m th ph n m m - quy trình Ki m th đơn v Phương pháp và test-case — Ti n hành t i nh ng giai đo n s m nh t. — Phương pháp: — Ti n hành ki m th trên t ng đơn v nh nh t c a — Ki m th h p đen ph n m m, đó là môđun mã ngu n, sau khi đã — Ki m th h p tr ng (n u c n) thi t k , mã hoá và biên d ch thành công — Thi t k các test-case — Có th ti n hành ki m th cùng lúc nhi u module. — Chu n b các test-case (s li u ki m th ) — Đư c th c hi n đ xem ch c năng c a môđun có — Là nhân t quan tr ng nh hư ng đ n k t qu th m chí tương ng v i đ c t môđun hay không. c ch t lư ng c a h th ng — L p tài li u thi t k trư ng h p ki m th và tích lũy d li u ki m th s r t có ích cho vi c c i ti n ph n m m. 7
  8. 14/9/2009 Ki m th ph n m m – quy trình Ki m th ph n m m - quy trình Ki m th tích h p Stub và driver — T ng module mã ngu n đã ho t đ ng đúng. Li u khi — M i môđun mã ngu n không ph i là m t chương trình k t h p chúng l i thành m t nhóm l n chúng có ho t hoàn ch nh và đôi khi ph i g i các module chưa đư c đ ng đúng không ? ki m nghi m khác do đó có th ph i thi t l p driver và/ho c stub — Ph i ti n hành ki m th tích h p đ phát hi n l i — Driver là m t chương trình chính có nhi m v nh n d liên quan đ n giao ti p gi a các module. li u ki m nghi m, chuy n d li u đó xu ng cho module — Trư c khi ti n hành ph i xác đ nh chính xác th t đ ki m tra và in ra các k t qu ki m tra tương ng. và th i gian các mô đun đư c k t n i. — Stub thay th các module đư c g i b i module đang ki m tra. Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình 8
  9. 14/9/2009 Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình Ki m th tăng d n — Môđun đã ki m th s móc n i liên ti p v i các môđun khác. — Có th phân 3 lo i — Ki m th t trên xu ng — Ki m th t dư i lên — Ki m th t h p Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình — Ki m th t trên xu ng — Ki m th theo th t t môđun cao đ n môđun th p — Đi u ki n là b n thân chương trình ph i đư c t o t thi t k có c u trúc — C n đ n stub — Thích h p cho vi c phát tri n h th ng m i 9
  10. 14/9/2009 Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình — Ki m th t dư i lên — Ki m th theo th t t môđun th p lên môđun cao — Dùng đ phát triên h th ng theo trình t các môđun th p đ n cao (l p trình t dư i lên) — Do có nhi u môđun th p do đó có th ti n hành ki m th đ ng th i trong giai đo n đ u — C n đ n driver — Thích h p v i vi c phát tri n m t phiên b n s a đ i c a h th ng đang có. Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình — Ki m th t h p — T h p ki m th t trên xu ng và t dư i lên — Ti n hành đ ng th i cho đ n khi đ t đ n làn ranh th a hi p đã đ nh s n — T n ít th i gian — C n đ ng th i c stub và driver 10
  11. 14/9/2009 Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình — Ki m th bigbang Ki m th h th ng — Ki m th đ ng th i trên m i môđun. Móc n i chúng — Ti n hành đ ki m ch ng các ch c năng c a ph n m m và ki m th toàn b đáp ng đư c nhu c u c a khách hàng v n đã đư c xác — Khó tìm l i trong giao di n các môđun đ nh trong văn b n đ c t yêu c u c a ph n m m — Không c n đ ng c stub và driver không? — Các thao tác giao di n ngư i dùng có đúng thi t k — Ch thích h p v i các chương trình nh không — Còn g i là ki m th toàn di n — Là ki m th cu i cùng đư c ti n c a t ch c phát tri n h th ng Ki m th ph n m m – quy trình Ki m th ph n m m – quy trình — Ki m th alpha — Áp d ng k thu t black-box — Đư c ti n hành ngay t i nơi s n xu t ph n m m. — Ki m th tính năng bao g m — Nhà phát tri n ph n m m s quan sát ngư i s d ng — Xem xét l i c u hình ph n m m s n ph m và ghi nh n l i nh ng l i phát sinh đ s a ch a. — Ki m nghi m alpha — Ki m th beta — Ki m nghi m beta — Ph n m m đư c ki m tra bên ngoài ph m vi c a đơn v s n xu t. — Khách hành tr c ti p s d ng và ghi nh n l i đ báo l i cho nhà phát tri n s a ch a. 11
  12. 14/9/2009 Ki m th ph n m m – quy trình Ki m th t bên ngoài — Các ki u ki m th h th ng B o đ m ch t lư ng và ki m th ch p nh n — Ki m th tích h p chương trình/h con — Ti n hành ki m tra b i cơ quan bên ngoài — Ki m th ch c năng — Có th do ngư i s d ng hay đ i di n — Ki m th hi u năng — Đánh giá khách quan v ng d ng — Ki m th v m hành — Tương t ki m th h th ng v m c đích nhưng đư c — Ki m th ph c h i h ng hóc ti n hành n m ngoài s đi u khi n c a trư ng d án — Ki m th t i — Ki m th ngo i l — Ki m th ch u đ ng G r i G r i -Brute force — Là phương pháp ph bi n nh t nhưng l i ít hi u qu — G r i là công vi c khó khăn và d gây tâm lý chán n n nh t cho vi c phát hi n nguyên nhân gây l i ph n m m. b i nguyên nhân gây ra l i nhi u khi l i mơ h : do timeout, do đ chính xác, do ch quan l p trình... — Tri t lý c a phương pháp này là: “Hãy đ máy tính tìm ra l i”. — Kh năng g r i g n như là b m sinh c a m i ngư i — Có 3 cách th c hi n: — L y d li u trong b nh đ xem xét. — Dùng run-time trace đ tìm l i. — Dùng l nh WRITE đ xu t d li u c n ki m tra ra màn hình. — Áp d ng phương pháp này khi t t c các phương pháp khác đ u th t b i. 12
  13. 14/9/2009 G r i - Lo i tr nguyên nhân G r i - Theo v t — Phương pháp này d a trên nguyên t c phân chia nh — Là m t phương pháp g l i khá ph bi n có th dùng phân. thành công trong các chương trình nh nhưng khó áp — Cách th c hi n: d ng cho đ i v i các chương trình r t l n. — Khi m t l i đư c phát hi n, c g ng đưa ra m t danh — Cách th c hi n: b t đ u t i dòng mã ngu n có tri u sách các nguyên nhân có th gây ra l i. ch ng l i th c hi n l n ngư c tr l i t ng dòng mã — Danh sách này đư c nghi m l i đ lo i b d n các ngu n cho đ n khi tìm th y dòng gây ra l i. nguyên nhân không đúng cho đ n khi tìm th y m t nguyên nhân kh nghi nh t. — Khi đó d li u ki m nghi m s đư c tinh ch l i đ ti p t c tìm l i. 13
Đồng bộ tài khoản