Bài giảng Công cụ kiểm thử phần mềm - Bài 8: Kiểm thử tự động - Trương Phước Lộc

Định nghĩa  Kiểm thử tự động (automated testing) là sử dụng công cụ để thực hiện tự động một phần hoặc toàn bộ quy trình kiểm thử và kiểm tra kết quả mà không cần sự can thiệp của con người Lợi ích  Tiết kiệm thời gian và công sức Giảm sự nhàm chán và sai xót  Nâng cao mức độ phủ của test suits Có thể sự dụng lại các bộ test case Tuy nhiên lợi ích của việc tự động hóa chỉ đạt được cao nhất khi nỗ lực cho việc tự động hóa không q

pdf61 trang | Chia sẻ: thanhle95 | Lượt xem: 407 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Công cụ kiểm thử phần mềm - Bài 8: Kiểm thử tự động - Trương Phước Lộc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài 8 – Kiểm thử tự động Công cụ kiểm thử phần mềm Bộ môn Công nghệ phần mềm Nội dung £  Kiểm thử tự động £  Tổng quan Selenium £  Selenium IDE £  Selenium WebDriver 2/4/15 Công cụ kiểm thử phần mềm 2 Đặt vấn đề £  Bạn là một tester giỏi, bạn thiết kế các testcase tốt và thực hiện cẩn thận chúng nhưng còn thời gian và tiền bạc thì sao? 2/4/15 Công cụ kiểm thử phần mềm 3 I  have  to  do  this   test  again.   Again   Again   and  again   How  about  my   girlfriend?   Định nghĩa £  Kiểm thử tự động (automated testing) là sử dụng công cụ để thực hiện tự động một phần hoặc toàn bộ quy trình kiểm thử và kiểm tra kết quả mà không cần sự can thiệp của con người 2/4/15 Công cụ kiểm thử phần mềm 4 Lợi ích £  Tiết kiệm thời gian và công sức £  Giảm sự nhàm chán và sai xót £  Nâng cao mức độ phủ của test suits £  Có thể sự dụng lại các bộ test case è Tuy nhiên lợi ích của việc tự động hóa chỉ đạt được cao nhất khi nỗ lực cho việc tự động hóa không quá lớn 2/4/15 Công cụ kiểm thử phần mềm 5 Ứng dụng £  Kiểm thử tự động thích hợp p Kiểm thử hồi qui (Regression testing) p Kiểm thử hướng dữ liệu (Data driven testing) p Kiểm thử bản địa hóa (Localization testing) ¡  Kiểm thử trên nhiều nền tảng ¡  Kiểm thử trên nhiều ngôn ngữ p Kiểm thử khả năng chịu tải (Load testing) 2/4/15 Công cụ kiểm thử phần mềm 6 Khó khăn £  Test scripts là mã nguồn £  Xác nhận (validation) 1 testcase là Pass hay Fail £  Một số tình huống cần sự can thiệp của con người (ví dụ như captcha) 2/4/15 Công cụ kiểm thử phần mềm 7 Các thành phần £  Test script p Dùng công cụ record and replay p Tự viết script £  Test data p CSDL p Xml, Cfv £  Test validation 2/4/15 Công cụ kiểm thử phần mềm 8 Một số công cụ kiểm thử tự động £  Functional test p QTP, Selenium, Windmill, £  Non-functional test p Load runner, CloudTest, Load Storm, 2/4/15 Công cụ kiểm thử phần mềm 9 Nội dung £  Kiểm thử tự động £  Tổng quan Selenium £  Selenium IDE £  Selenium WebDriver 2/4/15 Công cụ kiểm thử phần mềm 10 Tổng quan Selenium £  Selenium là công cụ p Mã nguồn mở p Kiểm thử tự động p Ứng dụng website 2/4/15 Công cụ kiểm thử phần mềm 11 Tổng quan Selenium £  Selenium có 4 thành phần p Selenium IDE p Selenium RC p Selenium WebDriver p Selenium Grid 2/4/15 Công cụ kiểm thử phần mềm 12 Nội dung £  Kiểm thử tự động £  Tổng quan Selenium £  Selenium IDE £  Selenium WebDriver 2/4/15 Công cụ kiểm thử phần mềm 13 Selenium IDE £  Plugin của Firefox £  Chức năng Record và Playback 2/4/15 Công cụ kiểm thử phần mềm 14 Selenium IDE £  Cài đặt 2/4/15 Công cụ kiểm thử phần mềm 15 Selenium IDE £  Chạy plugin 2/4/15 Công cụ kiểm thử phần mềm 16 Selenium IDE £  Giao diện chính 2/4/15 Công cụ kiểm thử phần mềm 17 2/4/15 Công cụ kiểm thử phần mềm 18 Selenium IDE £  Menu 2/4/15 Công cụ kiểm thử phần mềm 19 Selenium IDE £  Cấu hình 2/4/15 Công cụ kiểm thử phần mềm 20 Selenium IDE £  Thứ tự ưu tiên Locator 2/4/15 Công cụ kiểm thử phần mềm 21 Selenium IDE £  Thanh công cụ 2/4/15 Công cụ kiểm thử phần mềm 22 Tốc  độ  chạy  lại   Ghi  /  dừng  ghi   Chạy  toàn  bộ  Test  suite   Chạy  Test  case  hiện  tại   Tạm  dừng  /  chạy  =ếp   Chạy  từng  bước   Nhóm  các  bước  lại   Selenium IDE £  Ví dụ Record and Playback p Bước 1: ¡  Chạy Selenium IDE ¡  Nhập Base Url: p Bước 2: ¡  Trong Firefox nhập Url 2/4/15 Công cụ kiểm thử phần mềm 23 Selenium IDE £  Ví dụ Record and Playback p Bước 3: ¡  Phải chuột trên khoảng trống trong trang ¡  Chọn “Show Available Commands” ¡  Chọn “assertTitle exact:Welcome: Mercury Tours” 2/4/15 Công cụ kiểm thử phần mềm 24 Selenium IDE £  Ví dụ Record and Playback p  Bước 4: ¡  Nhập “User name”: invalidUN ¡  Nhập “Password”: invalidUN p  Bước 5: ¡  Bấm vào button “Sign-in” 2/4/15 Công cụ kiểm thử phần mềm 25 Selenium IDE £  Ví dụ Record and Playback p Bước 6: ¡  Phải chuột trên khoảng trống trong trang ¡  Chọn “Show Available Commands” ¡  Chọn “assertTitle exact:Sign-on: Mercury Tours” p Bước 7: ¡  Bấm nút dừng quay p Bước 8: ¡  Bấm nút chạy lại test 2/4/15 Công cụ kiểm thử phần mềm 26 Selenium IDE £  3 loại command p  Action ¡  Thao tác trực tiếp thành phần của trang web ¡  Ví dụ: click, type p  Accessors ¡  Cho phép lưu các giá trị vào các biến p  Assertions ¡  Kiểm tra một điều kiện được thỏa ¡  3 loại §  Assert: khi bị fail sẽ dừng test §  Verify: khi bi fail sẽ ghi nhận và chạy tiếp §  Waitfor: nếu điều kiện đúng trong thời gian chờ thì pass 2/4/15 Công cụ kiểm thử phần mềm 27 Selenium IDE £  Các command thông dụng 2/4/15 Công cụ kiểm thử phần mềm 28 Command   SL  tham  số   Giải  thích   open   0  –  2   Mở  1  trang  theo  url   click/clickAndWait   1   Click  vào  1  thành  phần   type/typeKeys   2   Nhập  1  chuỗi  ký  tự   verifyTitle/assertTitle   1   Kiểm  tra  =êu  đề   verifyTextPresent   1   Kiểm  tra  có  1  đoạn  text   verifyElementPresent   1   Kiểm  tra  có  1  thành  phần   verifyTable   2   Kiểm  tra  1  table   waitForPageToLoad   1   Chờ  cho  đến  khi  trang  được  tải  xong   waitForElementPresent   1   Chờ  cho  đến  khi  1  thành  phần  xuất  hiện   Selenium IDE £  Các loại Locator p  ID p  Name p  Link Text p  CSS Selector ¡  Tag and ID ¡  Tag and class ¡  Tag and attribute ¡  Tag, class, and attribute ¡  Inner text p  DOM (Document Object Model) ¡  getElementById ¡  getElementsByName ¡  dom:name ¡  dom:index p  XPath 2/4/15   Công  cụ  kiểm  thử  phần  mềm   29   Selenium IDE £  Xác định bằng ID p Target: id=id of the element 2/4/15 Công cụ kiểm thử phần mềm 30 Selenium IDE £  Xác định bằng Name p Target: name=name of the element 2/4/15 Công cụ kiểm thử phần mềm 31 Selenium IDE £  Xác định bằng Name có filter p Target: name=name_of_the_element filter=value_of_filter 2/4/15 Công cụ kiểm thử phần mềm 32 Selenium IDE £  Xác định bằng Link Text p Target: link=link_text 2/4/15 Công cụ kiểm thử phần mềm 33 Selenium IDE £  Xác định bằng CSS – Tag và ID p Target: css=tag#id 2/4/15 Công cụ kiểm thử phần mềm 34 Selenium IDE £  Xác định bằng CSS – Tag và Class p Target: tag.class 2/4/15 Công cụ kiểm thử phần mềm 35 Selenium IDE £  Xác định bằng CSS – Inner Text p Target: css=tag:contains(“inner text”) 2/4/15 Công cụ kiểm thử phần mềm 36 Selenium IDE £  Tóm tắt các Locator 2/4/15 Công cụ kiểm thử phần mềm 37 Method   Target  Syntax   Example   By  ID   id=  id_of_the_element   id=email   By  Name   name=name_of_the_element   name=username   By  Name  Using  Filters   name=name_of_the_element  filte r=value_of_filter   name=tripType  value=oneway   By  Link  Text   link=link_text   link=REGISTER   Tag  and  ID   css=tag#id   css=input#email   Tag  and  Class   css=tag.class   css=input.inputext   Tag  and  Atribute   css=tag[a7ribute=value]   css=input[name=lastName]   Tag,  Class,  and  Atribute   css=tag.class[a7ribute=value]   css=input.inputext[tabindex=1]   Selenium IDE £  verifyElementPresent p True nếu thành phần có tồn tại p False nếu thành phần không tồn tại £  verifyElementNotPresent p True nếu thành phần không tồn tại p False nếu thành phần tồn tại 2/4/15 Công cụ kiểm thử phần mềm 38 Selenium IDE £  verifyTextPresent p True nếu đoạn text có trong trang web p False nếu đoạn text không có trong trang web £  verifyTextNotPresent p True nếu đoạn text không có trong trang web p False nếu đoạn text có trong trang web 2/4/15 Công cụ kiểm thử phần mềm 39 Selenium IDE £  verifyElementPositionLeft p Kiểm tra vị trí trái của 1 thành phần £  verifyElementPositionTop p Kiểm tra vị trí trên của 1 thành phần 2/4/15 Công cụ kiểm thử phần mềm 40 Selenium IDE £  andWait commands p Ví dụ ¡  clickAndWait ¡  typeAndWait ¡  selectAndWait p Chờ cho đến khi trang tải xong mới thực hiện bước tiếp theo 2/4/15 Công cụ kiểm thử phần mềm 41 Selenium IDE £  waitFor commands p Ví dụ ¡  waitForTitle ¡  waitForTextPresent ¡  waitForAlert p Chờ cho đến khi điều kiện được thực thi mới qua bước tiếp theo 2/4/15 Công cụ kiểm thử phần mềm 42 Selenium IDE 2/4/15 Công cụ kiểm thử phần mềm 43 Selenium IDE £  Lưu giá trị vào biến 2/4/15 Công cụ kiểm thử phần mềm 44 Selenium IDE £  Alerts và Pop-up 2/4/15 Công cụ kiểm thử phần mềm 45 assertAlert   assertNotAlert   Kiểm  tra  chuỗi  trong  alert   assertAlertPresent   assertAlertNotPresent   Kiểm  tra  có  alert  hay  không   storeAlert   Lưu  chuỗi  trong  alert   storeAlertPresent   Trả  về  True  khi  có  alert  và  False  khi  không  có  alert   verifyAlert   verifyNotAlert   Kiểm  tra  chuỗi  trong  alert   verifyAlertPresent   verifyAlertNotPresent   Kiểm  tra  có  alert  hay  không   Nội dung £  Kiểm thử tự động £  Tổng quan Selenium £  Selenium IDE £  Selenium WebDriver 2/4/15 Công cụ kiểm thử phần mềm 46 Selenium WebDriver £  Sử dụng ngôn ngữ lập trình để tạo các script p  Sử dụng điều kiện rẽ nhánh p  Sử dụng vòng lặp £  Các ngôn ngữ hỗ trợ p  Java p  .Net p  PHP p  Python p  Perl p  Ruby 2/4/15 Công cụ kiểm thử phần mềm 47 Selenium WebDriver £  Các trình duyệt hỗ trợ 2/4/15 Công cụ kiểm thử phần mềm 48 Selenium WebDriver £  Các trình duyệt hỗ trợ 2/4/15 Công cụ kiểm thử phần mềm 49 Trình  duyệt   Tên  Driver  Server   Chi  chú   HTMLUnit   (none)   Không  cần  driver   Firefox   (none)   Không  cần  driver   Internet  Explorer   Internet  Explorer  Driver  Server   Có  2  phiên  bản  32  and  64-­‐bit   Chrome   ChromeDriver   Opera   OperaDriver   PhantomJS   GhostDriver   Safari   SafariDriver   Selenium WebDriver £  WebDriver vs RC 2/4/15 Công cụ kiểm thử phần mềm 50 Selenium WebDriver £  Ví dụ WebDriver với C# p Bước 1: download Selenium C# Client Driver p Bước 2: cài đặt NUnit 2/4/15 Công cụ kiểm thử phần mềm 51 Selenium WebDriver £  Ví dụ WebDriver với C# p Bước 3: dùng Selenium ghi lại các bước test p Bước 4: Export Test Case As à C# / NUnit / WebDriver 2/4/15 Công cụ kiểm thử phần mềm 52 Selenium WebDriver £  Ví dụ WebDriver với C# p Bước 5: tạo dự án ¡  Tạo dự án Class Library, ngôn ngữ C# ¡  Sao chép mã nguồn đã export vào dự án ¡  Thêm các Reference 2/4/15 Công cụ kiểm thử phần mềm 53 Selenium WebDriver £  Ví dụ WebDriver với C# p Lập trình test case 2/4/15 Công cụ kiểm thử phần mềm 54 Selenium WebDriver £  Ví dụ WebDriver với C# p Chạy trên trình duyệt Firefox 2/4/15 Công cụ kiểm thử phần mềm 55 Selenium WebDriver £  Ví dụ WebDriver với C# p Chạy trên trình duyệt Chrome 2/4/15 Công cụ kiểm thử phần mềm 56 Selenium WebDriver £  Ví dụ WebDriver với C# p Chạy nhiều testcases trên cùng 1 script 2/4/15 Công cụ kiểm thử phần mềm 57 Selenium WebDriver £  Ví dụ WebDriver với C# p Chạy nhiều testcases trên cùng 1 script 2/4/15 Công cụ kiểm thử phần mềm 58 Selenium WebDriver £  Ví dụ WebDriver với C# p Chạy nhiều testcases từ database 2/4/15 Công cụ kiểm thử phần mềm 59 Selenium WebDriver £  Download các browser p  Chrome diver: chromedriver_win_26.0.1383.0.zip https://code.google.com/p/chromedriver/downloads/ list p  IE driver: IEDriverServer_Win32_2.32.3.zip https://code.google.com/p/selenium/downloads/list p  Opera driver https://code.google.com/p/selenium/wiki/ OperaDriver p  Safari driver https://code.google.com/p/selenium/wiki/SafariDriver 2/4/15 Công cụ kiểm thử phần mềm 60 Thảo luận 2/4/15 61 Công cụ kiểm thử phần mềm