1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiểm thử sản phẩm thương mại điện tử trên nền wordpress sử dụng công cụ selenium

80 1,1K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 2,23 MB

Nội dung

Khi mà kiểm thử phần mềm vẫn tiêu tốn một lượng lớn thời gian, kinh phí và nhân lực trong một dự án phần mềm thì song song với kiểm thử truyền thống thủ công, sự ra đời của các công cụ h

Trang 1

em trong suốt thời gian thực hiện đồ án.

Em xin cũng xin gửi lời cảm ơn chân thành đến gia đình, bạn bè và các anh chị đồng nghiệp tại Trung tâm nghiên cứu và phát triển ứng dụng di động - Trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên đã hết lòng hỗ trợ em trong thời gian thực hiện đồ án

Thái Nguyên, ngày 15 tháng 05 năm 2016

Sinh viên

Đinh Thị Thắm

Trang 2

LỜI CAM ĐOAN

Tôi Đinh Thị Thắm xin cam đoan:

 Đồ án tốt nghiệp là thành quả từ sự nghiên cứu hoàn toàn thực tế trên cơ

sở các số liệu thực tế và được thực hiện theo hướng dẫn của giáo viên hướng dẫn

 Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng tôi, không sao chép theo bất cứ đồ án tương tự nào

 Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài liệu trong báo cáo và danh mục tài liệu tham khảo

 Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, tôi xin hoàn toàn chịu trách nhiệm

Thái Nguyên, ngày 15 tháng 05 năm 2016

Sinh viên

Đinh Thi Thắm

Trang 3

1.1.6 Mô hình chữ V trong kiểm thử phần mềm 14

1.1.7 Nguyên tắc trong kiểm thử phần mềm 15

1.2 Phần mềm mã nguồn mở WordPress 16

1.2.1 WordPress là gì? 16

1.2.2 Những thành tựu của WordPress 16

1.2.3 Ưu, nhược điểm của WordPress 17

1.2.4 Kiểm thử theme WordPress 18

CHƯƠNG 2 KIỂM THỬ ỨNG DỤNG WEBSITE SỬ DỤNG CÔNG CỤ KIỂM THỬ

TỰ ĐỘNG 21

2.1 Kiểm thử ứng dụng website 21

2.1.1 Sự khác biệt giữa kiểm thử website và kiểm thử phần mềm 212.1.2 Các đặc thù của kiểm thử website 21

Trang 4

2.2 Khảo sát các công cụ kiểm thử ứng dụng website 24

3.4 Xây dựng test case 50

3.5 Thực thi các test case bằng công cụ Selenium 52

3.6 Kết quả thực hiện các test case của chức năng đăng kí 52

3.7 Báo lỗi lên công cụ quản lí dự án Taiga.io 55

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 59

TÀI LIỆU THAM KHẢO 61

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1 Các cấp độ kiểm thử phần mềm 11

Hình 1.2 Mô hình chữ V trong kiểm thử phần mềm 14

Hình 1.3 Logo của WordPress 16

Hình 1.4 Plugin Theme Check 18

Hình 1.5 Các lỗi bỏ qua trong Theme Check 19

Hình 1.6 Plugin Theme Mentor 19

Hình 1.7 Plugin Debug Bar 20

Hình 2.1 Tải Selenium IDE 29

Hình 2.2 Cài đặt Selenium IDE 30

Hình 2.3 Giao diện Selenium IDE 30

Hình 2.4 Các icon của Selenium IDE 31

Hình 2.5 Nhập website muốn kiểm tra 33

Hình 2.6 Các lệnh có sẵn của Selenium IDE 34

Hình 2.7 Tải Java SDK và Java SE 36

Hình 2.8 Giao diện của Eclipse 37

Hình 2.9 Download Selemnium WebDriver với Java 37

Hình 2.10 Tạo một project Java mới 38

Hình 2.11 Nhập các thư viện Selenium 38

Hình 2.12 Export test case sang ngôn ngữ bậc cao 41

Hình 2.13 Kết quả chạy với TestNG trong cửa sổ Results 41Hình 2.14 Thư mục test-output 42

Hình 2.15 Kết quả của file index.html 42

Hình 3.1 Giao diện trang Flaton 43

Hình 3.2 Test case của chức năng đăng kí (1) 52

Hình 3.3 Test case của chức năng đăng kí (2) 52

Trang 6

Hình 3.4 Kết quả chạy với TestNG của cả package 54

Hình 3.5 Kết quả chạy cả package trong file index.html 55

Hình 3.6 Lỗi do Theme Check phát hiện 56

Hình 3.7 Lỗi do Debug Bar phát hiện 58

Hình 3.8 Các lỗi được đưa lên công cụ quản lí dự án Taiga.io 58

MỞ ĐẦU

 Lí do chọn đề tài

Hiện nay ngành công nghệ thông tin ngày càng phát triển không chỉ trên thế giới nói chung mà còn ở Việt Nam nói riêng Song song bên việc xây dựng và phát triển các sản phẩm công nghệ thì việc đảm bảo chất lượng sản phẩm cũng là khâu sống còn cho dự án Chính vì vậy kiểm thử phần mềm ngày càng được quan tâm

kê năm 2011 của công ty LogiGear), trong khi tỷ lệ này theo chuẩn quốc tế là 3:1

Ngày nay, tự động hóa đang được nghiên cứu và ứng dụng trong nhiều lĩnh vực trong đó công nghệ phần mềm nói chung và kiểm thử phần mềm nói riêng cũng không ngoại lệ Khi mà kiểm thử phần mềm vẫn tiêu tốn một lượng lớn thời gian, kinh phí và nhân lực trong một dự án phần mềm thì song song với kiểm thử truyền thống thủ công, sự ra đời của các công cụ hỗ trợ kiểm thử tự động như Quick Test Professional, Nunit, Junit, Load Runner, JMetter (thường dùng trong kiểm thử hiệu năng) là tất yếu Selenium là một công cụ kiểm thử các ứng dụng web có khá nhiều ưu điểm như có thể kiểm thử trên nhiều trình duyệt, hỗ trợ nhiều

Trang 7

ngôn ngữ lập trình, giao tiếp được với các công cụ kiểm thử khác như Junit, testNG (với Java) hay Nunit (với C#), và ưu điểm đặc biệt của công cụ này là nó là một bộ mã nguồn mở, do đó các tổ chức sẽ không tốn kinh phí mua bản quyền Tuy chưa được ứng dụng nhiều trong các tổ chức ở Việt Nam, song với những ưu điểm trên, Selenium hứa hẹn sẽ ngày càng phát triển và trở lên thông dụng hơn trong các tổ chức phát triển phần mềm ở nước ta Với mong muốn có cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và tiếp cận được với công cụ kiểm thử tự động Selenium để làm tiền đề cho định hướng tương lai khi tốt nghiệp đại học sẽ

trở thành một kỹ sư kiểm thử phần mềm, cá nhân em lựa chọn để tài “Kiểm thử sản phẩm thương mại điện tử trên nền WordPress sử dụng công cụ Selenium”

làm đề tài cho đồ án tốt nghiệp đại học của mình Trong khuôn khổ đồ án, do thời gian và kinh nghiệm thực tế còn hạn chế nên có những phần thực hiện chưa được tốt, em rất mong nhận được sự góp ý của thầy cô và các bạn

 Mục tiêu nghiên cứu

 Có cái nhìn đúng đắn và sâu sắc hơn về các vấn đề cơ bản kiểm thử phần mềm và phần mềm mã nguồn mở WordPress

 Hiểu rõ về các thành phần của bộ công cụ Selenium

 Nắm được cách thức sử dụng của hai công cụ là Selenium IDE và Selenium WebDriver

 Ứng dụng các kiến thức kiểm thử phần mềm và kiến thức về Selenium

để viết kịch bản kiểm thử cho một ứng dụng cụ thể

 Bố cục nội dung của đồ án

Đồ án được chia thành ba chương với nội dung như sau:

 Mở đầu: Chương này trình bày về lý do chọn đề tài, mục tiêu nghiên

cứu đồ án và bố cục nội dung của đồ án

 Chương 1: Tổng quan về kiểm thử phần mềm và phần mềm mã nguồn mở WordPress: Chương này trình bày những kiến thức cơ bản về kiểm thử

Trang 8

phần mềm như các nguyên tắc kiểm thử, các phương pháp kiểm thử, các giai đoạn kiểm thử phần mềm và tổng quan về phần mềm mã nguồn mở WordPress

 Chương 2: Kiểm thử ứng dụng website sử dụng công cụ kiểm thử tự động: Chương này trình bày tổng quan về bộ công cụ Selenium, đi sâu vào các

thao tác với Selenium IDE và Selenium WebDriver

 Chương 3: Kiểm thử sản phẩm thương mại điện tử trên nền WordPress sử dụng công cụ Selenium: Chương này trình bày kịch bản kiểm thử

viết cho một số chức năng cơ bản của ứng dụng web

http://demo.roadthemes.com/flaton/ và thử nghiệm một số trường hợp kiểm thử tự động viết bằng Selenium IDE và Selenium WedDriver

 Kết luận: Chương này đưa ra những kết quả đồ án đạt được, những

thiếu sót chưa thực hiện được và hướng phát triển đề tài trong tương lai

CHƯƠNG 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM, KIỂM THỬ TỰ ĐỘNG

VÀ PHẦN MỀM MÃ NGUỒN MỞ WORDPRESS

1.1 Tổng quan về kiểm thử phần mềm

1.1.1 Khái niệm về kiểm thử phần mềm

Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó (Theo Bảng chú giải thuật ngữ chuẩn IEEE của Thuật ngữ kỹ nghệ phần mềm-IEEE Standard Glossary of Software Engineering Terminology)

Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi (Theo “The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm).Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ

Trang 9

phần mềm ấy Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau (Theo Bách khoa toàn thư mở Wikipedia).

Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ thứ gì không mong muốn Đây là một pha quan trọng trong quá trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới

đã đáp ứng yêu cầu đặt ra hay chưa

1.1.2 Mục đích của kiểm thử phần mềm.

 Tìm ra nhiều lỗi bằng việc đưa ra các dòng thời gian

 Chứng minh được sản phẩm hoàn thành có những chức năng hay ứng dụng giống với bản đặc tả yêu cầu

 Tạo ra các test case có chất lượng cao, thực thi hiệu quả…



Trang 10

1.1.3 Các phương pháp kiểm thử

 Kiểm thử tĩnh( Static testing): Là phương pháp thử phần mềm đòi hỏi

phải duyệt lại các yêu cầu và các đặc tả bằng tay, thông qua việc sử dụng giấy, bút

để kiểm tra logic, lần từng chi tiết mà không cần chạy chương trình Kiểu kiểm thử này thường được sử dụng bởi chuyên viên thiết kế người mà viết mã lệnh một mình

 Kiểm thử động (Dynamic testing): Kiểm thử động kiểm tra cách thức

hoạt động động của mã lệnh, tức là kiểm tra sự phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian Trong kiểm thử động, phần mềm phải thực sự được biên dịch và chạy Kiểm thử động thực sự bao gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu ra có như mong muốn hay không Các phương pháp kiểm thử động gồm có kiểm thử Unit – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử hệ thống – System Tests, và Kiểm thử chấp nhận sản phẩm – Acceptance Tests

1.1.4 Chiến lược kiểm thử

Trong chiến lược kiểm thử, chúng ta có ba chiến lược kiểm thử hay dùng nhất là: kiểm thử hộp đen, kiểm thử hộp trắng, và kiểm thử hộp xám

1.1.4.1 Kiểm thử hộp đen - Black box

Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng dữ liệu, hay hướng vào/ra Kiểm thử hộp đen xem chương trình như là một “hộp đen” Mục đích của bạn là hoàn toàn không quan tâm về cách cư xử

và cấu trúc bên trong của chương trình Thay vào đó, tập trung vào tìm các trường hợp mà chương trình không thực hiện theo các đặc tả của nó

Theo hướng tiếp cận này, dữ liệu kiểm tra được lấy từ các đặc tả

Các phương pháp kiểm thử hộp đen

 Phân lớp tương đương - Equivalence partitioning

Trang 11

 Phân tích giá trị biên - Boundary values analysis.

 Kiểm thử mọi cặp - All pairs testing

 Kiểm thử dựa trên mô hình - Model based testing

 Kiểm thử thăm dò - Exploratory testing

 Kiểm thử dựa trên đặc tả - Specification base testing

 Bảng quyết định - Decision table

 Biểu đồ Usecase

 Biểu đồ chuyển trạng thái - State Transition Diagram

Ưu, nhược điểm

Kiểm thử hộp đen không có mối liên quan nào tới mã lệnh và kiểm thử viên chỉ rất đơn giản tam niệm là: một mã lệnh phải có lỗi Sử dụng nguyên tắc “Hãy đòi hỏi và bạn sẽ được nhận”, những kiểm thử viên hộp đen tìm ra lỗi mà những lập trình viên không tìm ra Đó là lý do mà có nhiều trường hợp mà một kiểm thử viên hộp đen viết rất nhiều ca kiểm thử để kiểm tra một thứ gì đó mà đáng lẽ có thể chỉ cần kiểm tra bằng một ca kiểm thử duy nhất, và hoặc một số phần của chương trình không được kiểm tra chút nào

Do vậy, kiểm thử hộp đen có ưu điểm của “một sự đánh giá khách quan”, mặt khác nó lại có nhược điểm của “thăm dò mù”

1.1.4.2 Kiểm thử hộp trắng – White box

Là một chiến lược kiểm thử khác, trái ngược hoàn toàn với kiểm thử hộp đen, kiểm thử hộp trắng hay kiểm thử hướng logic cho phép bạn khảo sát cấu trúc bên trong của chương trình Chiến lược này xuất phát từ dữ liệu kiểm thử bằng sự kiểm thử tính logic của chương trình Kiểm thử viên sẽ truy cập vào cấu trúc dữ liệu và giải thuật bên trong chương trình (và cả mã lệnh thực hiện chúng)

Các phương pháp kiểm thử hộp trắng.

 Kiểm thử giao diện lập trình ứng dụng – API testing (application programming interface): là phương pháp kiểm thử của ứng dụng sử dụng các API

Trang 12

công khai và riêng tư.

 Bao phủ mã lệnh – Code coverage: tạo các kiểm tra để đáp ứng một số tiểu chuẩn về bao phủ mã lệnh

 Các phương pháp gán lỗi – Fault injection

 Các phương pháp kiểm thử hoán chuyển – Mutation testing methods

 Kiểm thử tĩnh - Static testing

1.1.4.3 Kiểm thử hộp xám – Gray box testing

Kiểm thử hộp xám đòi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải thuật bên trong cho những mục đích thiết kế các ca kiểm thử, nhưng là kiểm thử ở mức người sử dụng hay mức hộp đen Việc thao tác tới dữ liệu đầu vào và định dạng dữ liệu đầu ra là không rõ ràng, giống như một chiếc “hộp xám”, bởi vì đầu vào và đầu ra rõ ràng là ở bên ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống được kiểm tra Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp – Intergartion testing giữa 2 modun mã lệnh được viết bởi hai chuyên viên thiết kế khác nhau, trong đó chỉ giao diện là được đưa ra để kiểm thử Kiểm thử hộp xám

có thể cũng bao gồm cả thiết kế đối chiếu để quyết định, ví dụ, giá trị biên hay

thông báo lỗi.1.1.5 Các cấp độ kiểm thử phần mềm

Kiểm thử phần mềm gồm có các cấp độ: Kiểm thử đơn vị, Kiểm thử tích hợp, Kiểm thử hệ thống và Kiểm thử chấp nhận sản phẩm

Trang 13

Hình 1.1 Các cấp độ kiểm thử phần mềm

1.1.5.1 Kiểm thử đơn vị - Unit Test

 Định nghĩa

Một đơn vị là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được Ví dụ, các hàm (Function), thủ tục (Procedure), lớp (Class) hay phương thức (Method) đều có thể được xem là Unit

Unit Test thường do lập trình viên thực hiện Công đoạn này cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ phát triển phần mềm Thông thường, Unit Test đòi hỏi kiểm thử viên có kiến thức về thiết kế

và code của chương trình

 Mục đích.

 Đảm bảo thông tin được xử lý và xuất ra là chính xác

 Trong mối tương quan với dữ liệu nhập và chứa năng của Unit

 Đòi hỏi tất cả các nhánh bên trong phải được kiểm tra phát hiện nhánh sinh lỗi (nhánh đó thường là câu lệnh được thực thi trong một Unit)

 Phát hiện ra các vấn đề tiềm ẩn hoặc các lỗi ký thuật

 Yêu cầu.

Trang 14

 Muốn làm được Unit testing thì phải chuẩn bị trước các ca kiểm thử (Test case) hoặc các kịch bản kiểm thử (Test Script) trong đó phải ghi rõ dữ liệu nhập vào, các bước thực hiện và dữ liệu mong chờ đầu ra của từng testcase.

 Các test case hay script phải được giữ lại để tái sử dụng

1.1.5.2 Kiểm thử tích hợp – Intergration test

Integration test là kết hợp các thành phần của một ứng dụng và kiểm thử như một ứng dụng đã hoàn thành Trong khi Unit Test kiểm tra các thành phần và Unit riêng lẻ thì Intgration Test kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa chúng

Có 4 loại kiểm thử trong Integration Test:

 Kiểm thử cấu trúc (Structure Test): Tương tự White Box Test, kiểm

thử cấu trúc nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng và chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình chẳng hạn các câu lệnh và nhánh bên trong

 Kiểm thử chức năng (Functional Test): Tương tự Black Box Test,

kiểm thử chức năng chỉ chú trọng đến chức năng của chương trình, mà không quan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trình theo yêu cầu

1.1.5.3 Kiểm thử hệ thống – System test

Mục đích System Test là kiểm thử thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không

Đòi hỏi nhiều công sức, thời gian và tính chính xác, khách quan, System Test thường được thực hiện bởi một nhóm kiểm thử viên hoàn toàn độc lập với nhóm phát triển dự án Bản thân System Test lại gồm nhiều loại kiểm thử khác

Trang 15

nhau, phổ biến nhất gồm:

 Kiểm thử chức năng (Functional Test): Bảo đảm các hành vi của hệ

thống thỏa mãn đúng yêu cầu thiết kế

 Kiểm thử hiệu năng (Performance Test): Bảo đảm tối ưu việc phân

bổ tài nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng câu truy vấn

 Kiểm thử khả năng chịu tải (Stress Test hay Load Test): Bảo đảm hệ

thống vận hành đúng dưới áp lực cao

 Kiểm thử cấu hình (Configuration Test).

 Kiểm thử bảo mật (Security Test): Bảo đảm tính toàn vẹn, bảo mật

của dữ liệu và của hệ thống

 Kiểm thử khả năng phục hồi (Recovery Test): Bảo đảm hệ thống có

khả năng khôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu, đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến

Kết luận: Không nhất thiết phải thực hiện tất cả các kiểm thử trên mà phụ

thuộc vào yêu cầu hệ thống, tùy vào khả năng và thời gian của dự án, khi lập kế hoạch thì người quản lý sẽ quy định kiểm thử theo những loại nào

1.1.5.4 Kiểm thử chấp nhận – Acceptance test

Thông thường, sau giai đoạn System Test là Acceptance Test, được khách hàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện) Mục đích của Acceptance Test là để chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm (và trả tiền thanh toán hợp đồng) Với Alpha Test, người dùng kiểm thử phần mềm ngay tại nơi phát triển phần mềm, lập trình viên sẽ ghi nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa.Với Beta Test, phần mềm sẽ được gửi tới cho người dùng để kiểm thử ngay trong môi trường thực, lỗi hoặc phản hồi cũng sẽ gửi ngược lại cho lập trình viên sửa chữa Nguyên tắc kiểm thử phần mềm

1.1.5.5 Một số cấp độ kiểm thử khác

Ngoài các cấp độ trên, còn một số cấp độ kiểm thử khác như:

Kiểm thử hồi quy – Regression Testing

Theo chuẩn IEEE610.12-90, kiểm thử hồi quy là “sự kiểm tra lại có lựa chọn của một hệ thống hay thành phần để xác minh là những sự thay đổi không gây ra những hậu quả không mong muốn…” Trên thực tế, quan niệm này là chỉ ra rằng phần mềm mà đã qua được các kiểm tra trước đó vẫn có thể được kiểm tra lại

Trang 16

Kiểm thử tính đúng – Correctness testing

Tính đúng đắn là yêu cầu tối thiểu của phần mềm, là mục đích chủ yếu của kiểm thử Kiểm thử tính đúng sẽ cần một kiểu người đáng tin nào đó, để chỉ ra cách hoạt động đúng đắn từ cách hoạt động sai lầm Kiểm thử viên có thể biết hoặc không biết các chi tiết bên trong của các modun phần mềm được kiểm thử, ví dụ luồng điều khiển, luồng dữ liệu, … Do đó, hoặc là quan điểm hộp trắng, hoặc là quan điểm hộp đen có thể được thực hiện trong kiểm thử phần mềm

1.1.6 Mô hình chữ V trong kiểm thử phần mềm

Hình 1.2 Mô hình chữ V trong kiểm thử phần mềmCác bước tiến hành của mô hình chữ V

 Sau khi đã có yêu cầu của khách hàng ta thực hiện đồng thời việc thiết

kế hệ thống và bản kiểm thử cho người dùng

 Khi hoàn thành được bản thiết kế hệ thống, ta vừa thực hiện bảng kiểm thử hệ thống (system testing) và vừa làm thiết kế kiến trúc phần mềm

Trang 17

 Sau khi có được thiết kế kiến trúc ta chuyển sang thiết kế các module, làm bản thiết kế các unit test đồng thời bắt đầu coding.

 Unit test, integration test, system test và acceptance testing được thực hiện lần lượt dựa trên các thiết kế đã thực hiện sẵn



Trang 18

Ưu điểm trong mô hình chữ V

 Có thể làm 1 số việc song song Ví dụ: Nếu làm yêu cầu đúng thì có thể làm song song với việc thiết kế test

 Đạt được phần mềm chất lượng, các pha tương thích với nhau, hỗ trợ cho nhau

 Các hoạt động kiểm thử được chú trọng và thực hiện song song với các hoạt động liên quan đến đặc tả yêu cầu và thiết kế

Nhược điểm trong mô hình chữ V

 Đòi hỏi tất cả yêu cầu phần mềm phải được xác định rõ ràng ngay từ đầu dự án

 Pha sau thực chỉ được thực hiện khi pha trước kết thúc, không thể quay ngược trở lại pha trước

1.1.7 Nguyên tắc trong kiểm thử phần mềm

Để kiểm thử đạt hiệu quả thì khi tiến hành kiểm thử phần mềm cần phải tuân thủ một số quy tắc sau:

Quy tắc 1: Một phần quan trọng của một ca kiểm thử là định nghĩa của đầu

ra hay kết quả mong muốn

Quy tắc 2: Lập trình viên nên tránh tự kiểm tra chương trình của mình Quy tắc 3: Nhóm lập trình không nên kiểm thử chương trình của chính họ Quy tắc 4: Kiểm tra thấu đáo mọi kết quả của mỗi kiểm tra

Quy tắc 5: Các ca kiểm thử phải được viết cho các trạng thái đầu vào

không hợp lệ và không mong muốn, cũng như cho các đầu vào hợp lệ và mong muốn

Quy tắc 6: Khảo sát một chương trình để xem liệu chương trình có thực

hiện cái mà nó cần thực hiện chỉ là một phần, phần còn lại là xem liệu chương trình có thực hiện cái mà nó không cần phải thực hiện hay không

Trang 19

Quy tắc 7: Tránh các ca kiểm thử bâng quơ trừ khi chương trình thực sự là

một chương trình bâng quơ

Quy tắc 8: Không dự kiến kết quả của kiểm thử theo giả thiết ngầm là

không tìm thấy lỗi

Quy tắc 9: Xác suất tồn tại lỗi trong một đoạn chương trình là tương ứng

với số lỗi đã tìm thấy trong đoạn đó

Quy tắc 10: Kiểm thử là một nhiệm vụ cực kỳ sáng tạo và có tính thử thách

trí tuệ

1.2 Phần mềm mã nguồn mở WordPress

1.2.1 WordPress là gì?

Hình 1.3 Logo của WordPress

 WordPress là phần mềm mã nguồn mở được cung cấp miễn phí, sử dụng ngôn ngữ lập trình PHP và hệ cơ sở dữ liệu MySQL

 WordPress là một dạng phần mềm mã nguồn mở, là hậu duệ chính thức của b2/cafelog, được phát triển bởi Michel Valdrighi Cái tên WordPress được đề xuất bởi Christine Selleck, một người bạn của nhà phát triển chính Matt Mullenweg

 WordPress viết bằng PHP, sử dụng hệ quản trị cơ sở dữ liệu MySQL,

Trang 20

chạy tốt trên PHP5, hầu hết mọi host (dịch vụ lưu trữ trực tuyến) có PHP đều hỗ trợ WordPress Nhiều host (Godaddy, Host Gator, … ) còn có chức năng tự động cài đặt WordPress.

 WordPress để dăng tải thông tin trên mạng, có chức năng như mọi website khác, có thể làm site tin tức , đánh giá, bán hàng, … thậm chí là mạng xã hội

1.2.2 Những thành tựu của WordPress

WordPress có những thành tựu rất vượt bậc và là một mã nguồn CMS mở phổ biến nhất hành tinh:

 Trên thế giới, có khoảng 25 bài viết được đăng lên các website sử dụng WordPress mỗi giây

 Số lượng website làm bằng WordPress chiếm 23% tổng số lượng website trên thế giới

 Trong số 100% các website sử dụng mã nguồn CMS, WordPress chiếm 60%

 Hiện nay có tới khoảng 25% website trong danh sách 100 website lớn nhất thế giới sử dụng mã nguồn WordPress Ví dụ như trang tạp chí TechCrunch, Mashable, CNN, BBC America, Variety, Sony Music, MTV News, Bata, Quartz,…

 Phiên bản WordPress 4.0 đạt hơn 16 triệu lượt tải chỉ sau khoảng hai tháng

 WordPress đã được dịch sang 52 ngôn ngữ khác nhau Tuy nhiên lại chưa có phiên bản tiếng Việt chính thức, nhưng bạn có thể Việt hóa dễ dàng bằng cách tìm bài trên blog với từ khóa “Việt hóa WordPress“

 Có hơn 80 chương trình họp mặt về WordPress được tổ chức vào năm 2014

 Mã nguồn WordPress hiện đang có khoảng 785 lập trình viên cùng hợp

Trang 21

tác phát triển.

 Chỉ tính các giao diện (hay còn gọi là theme) miễn phí trên thư viện WordPress.org thì đã có hơn 2.700 themes khác nhau

1.2.3 Ưu, nhược điểm của WordPress

1.2.3.1 Ưu điểm của WordPress

 Nhiều plugin hỗ trợ, hầu như mọi ý tưởng đều đã có plugin hỗ trợ

 Nhiều theme có sẵn, hầu như là nhiều nhất trong các CMS hiện nay Bao gồm các theme miễn phí và theme trả phí rất chuyên nghiệp

 Dễ tùy biến, nếu bạn là người đã có kiến thức sẵn về PHP, CSS, HTML thì điều này rất dễ dàng

 Nhiều cộng đồng hỗ trợ và hướng dẫn, đơn cử là như ThachPham.Com của mình đây

 Có thể làm được nhiều thể loại website, từ blog cá nhân đến các trang thương mại điện tử

 Dễ cài đặt

 Nhẹ và hao tốn ít tài nguyên máy chủ

 Các Theme Framework hiện có sẽ giúp bạn tự thiết kế giao diện WordPress dễ dàng

 Dễ sử dụng và quản lý

1.2.3.2 Nhược điểm của WordPress

 Nhiều khái niệm khó hiểu nếu bạn mới bắt đầu

 Muốn tùy biến WordPress, bạn phải có kiến thức lập trình web căn bản nhất

 Các theme đẹp đa phần là phải trả phí Và plugin cũng vậy

 Quá nhiều hàm có sẵn gây mệt mỏi với người lập trình

1.2.4 Kiểm thử theme WordPress

Kiểm thử một website thương mại trên nền tảng WordPress cũng tương tự như trên các nền tảng khác, đều thực hiện theo quy trình kiểm thử phần mềm nói chung Ngoài ra, WordPress hỗ trợ một số Plugin có sẵn để kiểm tra tự động về mã nguồn hay cấu trúc bên trong giúp cho việc kiểm thử trên WordPress hiệu quả,

Trang 23

Hình 1.5 Các lỗi bỏ qua trong Theme CheckCác lỗi này xảy ra không phải do mã nguồn mà có thể do phiên bản của mã nguồn hay hệ điều hành của máy.

Để sử dụng plugin này, chọn Appearance -> Theme Mentor -> chọn theme muốn kiểm tra -> Do the twist!

Trang 24

Hình 1.6 Plugin Theme MentorSau khi thực hiện kiểm tra mã nguồn, nó sẽ hiển thị các lời khuyên sử dụng các thẻ, các lệnh và truy vấn đúng chuẩn.

 Debug bar

 Thêm một danh sách gỡ rối vào thanh admin để thể hiện truy vấn, bộ nhớ cache và thông tin gỡ rối giúp đỡ khác

 Đây là plugin phải có cho các nhà phát triển

 Khi WP_DEBUG bị kích hoạt nó cũng theo dõi các cảnh báo PHP và các thông báo để chúng dễ dàng tìm thấy hơn

 Khi SAVEQUERIES bị kích hoạt thì các truy vấn mysql bị theo dõi và hiển thị

Trang 25

 Thêm một lệnh PHP/MySQL với plugin Debug Bar Console.

Plugin này sẽ hiển thị trong các post và page, khi phát hiện có lỗi nó sẽ hiện màu đỏ, khi chọn vào nó sẽ mở ra một trang hiển thị cho ta biết đó là lỗi gì

Hình 1.7 Plugin Debug Bar

Trang 26

CHƯƠNG 2 KIỂM THỬ ỨNG DỤNG WEBSITE SỬ DỤNG CÔNG CỤ

KIỂM THỬ TỰ ĐỘNG

2.1 Kiểm thử ứng dụng website

Kiểm thử ứng dụng website là một trường hợp trong kiểm thử phần mềm Gần như những gì phần mềm truyền thống làm được thì ứng dụng website cũng có thể làm được Và cho đến nay, các ứng dụng website đóng vai trò quyết định trong thương mại điện tử và trao đổi thông tin Muốn tạo ra được ứng dụng web có hiệu năng cao, đáng tin cậy thì sau khâu tạo dựng, cần phải kiểm thử ứng dụng đó một cách tỉ mỉ, cẩn thận và chặt chẽ

2.1.1 Sự khác biệt giữa kiểm thử website và kiểm thử phần mềm

Về mặt bản chất, các ứng dụng website cũng là phần mềm, nên các loại kiểm thử áp dụng cho phần mềm cũng được áp dụng khi kiểm thử ứng dụng website Tuy nhiên, người kiểm thử cũng không thể áp dụng một cách cứng nhắc các phương pháp đó, mà cần phải linh hoạt, biến nó trở nên phù hợp, thích ứng với kiểm thử ứng dụng web

Các phương pháp kiểm thử phần mềm thông thường là các kỹ thuật tập trung vào đánh giá các chức năng yêu cầu của ứng dụng Một ứng dụng website thường có rất nhiều nhóm người sử dụng với nhiều nền tảng khác nhau (hệ điều hành, trình duyệt …), người ta cũng rất khó có thể đoán được số lượng người sử dụng một ứng dụng website là bao nhiêu, rồi thời gian hồi đáp yêu cầu của người

sử dụng đối với ứng dụng là một trong những yếu tố mang tính quyết định thành bại của ứng dụng dẫn đến việc kiểm thử ứng dụng website sẽ có những khác biệt nhất định so với kiểm thử phần mềm truyền thống Trong đó, kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử bảo mật là những loại kiểm thử mà ứng dụng website cần chú trọng

Trang 27

2.1.2 Các đặc thù của kiểm thử website

2.1.2.1 Kiểm thử chức năng

Việc kiểm thử chức năng yêu cầu tester thực hiện test tất cả các link trong trang web, định dạng được sử dụng trong các trang web để gửi và nhận các thông tin cần thiết từ người dùng Ngoài ra còn có kết nối cơ sở dữ liệu, kiểm tra cookies

và xác minh HTML/CSS

 Kiểm tra các liên kết (links) bao gồm kiểm tra liên kết ngoài trang web, liên kết nội bộ, liên kết tới các vị trí trong cùng trang, liên kết sử dụng để gửi email tới admin hoặc người dùng khác trong trang…

 Kiểm tra form của các trang: form là phần cơ bản của các trang web, nên cần được kiểm tra một cách kỹ càng, bao gồm các yêu cầu sau:

 Không nhập gì vào các trường bắt buộc thì sao?

 Giá trị mặc định của các trường là gì?

 Nhập đầu vào không đúng validate của các trường thì sao?

 Thao tác trên các trường: xem, nhập, lưu, sửa, xóa …

 Kết nối cơ sở dữ liệu: yêu cầu kiểm tra tính toàn vẹn của dữ liệu khi tạo, sửa, xóa form…hoặc bất cứ chức năng nào có liên quan tới cơ sở dữ liệu Khi truy vấn cơ sở dữ liệu thì kết quả trả về có tương ứng với kết quả nhìn thấy được trên giao diện không, dữ liệu có được lấy và cập nhật chính xác không?

 Kiểm thử cookies: cookies là các tệp được tạo bởi trang web đã truy cập để lưu trữ thông tin duyệt web, như các tùy chọn trang web hoặc thông tin đăng nhập của người dùng Người dùng có thể tùy chỉnh trên trình duyệt nhằm quản lý cookies, thực hiện các thao tác cho phép lưu, hoặc xóa, hoặc chặn…để kiểm tra các tính năng lưu hoặc không lưu trạng thái đăng nhập, tính năng bảo mật của ứng dụng web

 Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi developer thực hiện tối ưu hóa trang web cho các công cụ tìm kiếm, chủ yếu liên quan tới lỗi cú pháp HTML Tester sẽ kiểm tra xem trang web có được nhận diện

Trang 28

bởi các công cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…).

2.1.2.2 Kiểm thử tính khả dụng

Tính khả dụng của trang web được định nghĩa là trang web dễ sử dụng, có hướng dẫn sử dụng rõ ràng, rành mạch, mỗi trang đều có menu chính và menu này phải nhất quán Tester cần lưu ý những điều này Ngoài ra, khi kiểm thử tính khả dụng, tester còn cần thực hiện kiểm thử các điều khiển chuyển hướng (như button, text box, text link, bread crum…), nội dung của trang web phải dễ hiểu và thân thiện với người sử dụng Không có lỗi chính tả, không khó để đọc chữ, hình ảnh được sắp xếp gọn gàng, hợp lý

2.1.2.3 Kiểm thử giao diện

Các giao diện chính bao gồm:

 Giao diện web server và server ứng dụng

 Giao diện server ứng dụng và giao diện server dữ liệu

Kiểm tra tất cả các tương tác giữa các server Nếu server dữ liệu hoặc web server trả lại bất kỳ báo lỗi nào cho bất kỳ truy vấn nào từ server ứng dụng thì ngay lập tức server ứng dụng phải nhận được và cho hiển thị cảnh báo tới người dùng Kiểm tra các trường hợp giao dịch bị ngắt đột ngột do người dùng, hoặc kết nối tới server bị gián đoạn, bị khởi động lại…

2.1.2.4 Kiểm thử khả năng tương thích

 Tương thích với trình duyệt (trên máy tính và điện thoại di động):

Người dùng khác nhau có thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói quen…của họ Cần phải kiểm tra ứng dụng web trên càng nhiều trình duyệt càng tốt (IE, Firefox, Chrome, Safari, Opera…) để kiểm tra sự tương thích Kiểm tra trên cả các phiên bản khác nhau của trình duyệt Kiểm tra trên cả trình duyệt của thiết bị điện thoại thông minh Nếu ứng dụng chạy tốt hơn, hoặc có ưu tiên tương thích hơn với trình duyệt nào đó thì cần có thông báo tới người dùng

 Tương thích với hệ điều hành: một số chức năng của ứng dụng có thể

không tương thích với một số hệ điều hành, hoặc có những lưu ý khác khi sử dụng,

Trang 29

điều này cần phải được kiểm tra kỹ và thông báo cho người dùng được biết.

 Tương thích với các thiết bị ngoại vi (máy in…): khi người dùng có

lệnh in trang thì phải đảm bảo tính chính xác của fonts, cỡ chữ, cỡ giấy…mà người dùng đã chọn

2.1.2.5 Kiểm thử hiệu năng

 Kiểm thử tải: kiểm thử hiệu năng của ứng dụng với các tốc độ kết nối mạng khác nhau Kiểm thử khi có nhiều người dùng cùng truy cập hoặc cùng yêu cầu một trang xem hệ thống có thể duy trì hoạt động được không? Hoặc kiểm thử khi người dùng tải lên hoặc tải xuống một số lượng dữ liệu đặc biệt lớn…

 Kiểm thử áp lực: tức là việc đẩy hệ thống ra ngoài giới hạn của nó, thử làm gián đoạn trang web bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thống phản ứng như thế nào và phục hồi như thế nào

2.1.2.6 Kiểm thử bảo mật

Một số case cho kiểm thử bảo mật web như sau:

 Gõ trực tiếp url vào thanh địa chỉ của trình duyệt mà không qua đăng nhập Các trang nội bộ phải không được mở

 Sau khi đăng nhập và mở các trang nội bộ, thay đổi url trực tiếp bằng cách đổi tham số ID của trang tới trang thuộc quyền người dùng đã đăng nhập khác Truy cập phải bị từ chối bởi người dùng này không thể xem trang thống kê của người dùng khác

 Thử các giá trị đầu vào không hợp lệ trong các trường username, password Hệ thống phải báo lỗi

 Các thư mục web, các tệp tin không được truy nhập trực tiếp mà không

có tùy chọn “Download”

 Kiểm tra CAPTCHA cho các đăng nhập tự động

 Tất cả các phiên giao dịch, các thông báo lỗi, các hành vi cố gắng xâm phạm an ninh phải ghi trong log và lưu tại web server

Trang 30

2.2 Khảo sát các công cụ kiểm thử ứng dụng website

2.2.1 Quicktest professional

Quicktest professional (QTP) là một test tool dùng để kiểm tra chức năng

và cho phép thực hiện kiểm tra hồi quy một các tự động Đây cũng là một công cụ ứng dụng phương pháp Keywork-driven-một kỹ thuật scripting trong kiểm thử tự động hiện đại cho phép kiểm thử viên bổ sung test case bằng cách tạo file mô tả cho nó mà không cần chỉnh sửa hay bổ sung bất cứ script nào

 Thực hiện kiểm thử tự động nhiều trình duyệt cùng một lúc

 Quản lý các điều kiện kiểm thử, xử lý ngoại lệ, cho phép kiểm thử hướng dữ liệu tốt

Nhược điểm

 Không thể nhận ra các đối tượng đã được người dùng tùy chỉnh và một

số đối tượng phức tạp khác

 Chỉ chạy trên môi trường WindowX

 Mất phí nên công cụ này không được sử dụng rộng rãi

2.2.2 Apache Jmeter

Apache Jmeter là một ứng dụng mã nguồn mở, phát triển hoàn toàn trên Java, được thiết kế để kiểm thử ứng dụng web Ứng dụng được sử dụng để kiểm tra hiệu năng cả tĩnh và động (files, Servlets, Perl, scripts, Java Objects, Data Bases and Queries, FTP Servers …)

Ưu điểm

 Kiểm tra tải và kiểm tra hiệu năng theo nhiều kiểu khác nhau: Web

Trang 31

-HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail - POP3(S) and IMAP(S).

 Rất nhẹ, không cần cài đặt, miễn phí

 Nền tảng xử lý đa luồng cho phép mô phỏng nhiều mẫu bởi nhiều thread của các chức năng khác nhau trên các thread group khác nhau

 Dễ dàng thêm các plugin và tạo các báo cáo phù hợp yêu cầu

 Được hỗ trợ mạnh bởi cộng đồng open source

Nhược điểm

 Sun’s JRE phải được cài đặt

 Chỉ sử dụng được với ứng dụng web

 Kết quả Stress testing có thể khó xác định chính xác

 Khó khăn khi thực hiện các kịch bản kiểm thử phức tạp

 Controller: cho phép tạo các script và chạy thông qua một lịch đặt sẵn

 Results and Analysis: cho phép tổng hợp kết quả và phân tích chi tiết kết quả kiểm thử

Ưu điểm

 Không cần cài đặt ở trên máy chủ của ứng dụng cần kiểm tra

 Sử dụng ngôn ngữ Ansi C là ngôn ngữ lập trình mặc định

 Khả năng giám sát và phân tích tốt, với các biểu đồ dễ hiểu

 Hỗ trợ tất cả các giao thức

Trang 32

 Dễ dàng Recording và tạo các script

 Tài liệu hướng dẫn kĩ càng và chi tiết

Nhược điểm

 Tốn chi phí để mua bản quyền

 Kích cỡ file cài đặt rất lớn, chiếm nhiều phần cứng, thích hợp trên Windows

 Giới hạn số user có thể chạy

2.2.4 Web link Validator (WLV)

Web link Validator là một công cụ giúp Webmasters tự đông hóa việc kiểm tra trang web của họ đề tìm kiếm các liên kết bị hỏng Ví dụ như các file bị missing và việc load các pages rất là chậm Có thể truy cập tới các tài nguyên qua giao thức HTTPS và các pages đã được bảo vệ bởi mật khâu WLV có thể làm việc thông qua proxy server

Ưu điểm và một số tính năng

 Site Quality: Giúp quản trị web tự động hóa quá trình xác nhận các trang web và kiểm tra các lỗi Web link Validator là không giới hạn kiểm tra liên kết, và cho biết các lỗi trong mã HTML, tải chậm, outdated và các trang nhỏ

 Link Checker: Khả năng kiểm tra trên một triệu liên kết đến tới các files local cũng như các liên kết đến từ bên ngoài HTTP, HTTPS và FTP các nguồn lực giúp quản trị web có thể tạo và bảo trì một cách dễ dàng

 Spell Checker: Không giới hạn về khả năng có thể đọc được ngôn ngữ HTML, WLV giúp webmaster có thể kiểm soát cả ngôn ngữ của đời thường( ngôn ngữ con người) Hỗ trợ tìm và kiểm tra việc sai chính tả trong Tiếng Anh và qua hơn 20 ngôn ngữ khác

 Server-based and Web-based Authentications (Việc xác thực trên server-base và Web base) WLV làm việc ở khắp mọi nơi Các pages được bảo vệ một cách an toàn, việc xác thực web-base và proxy của server ko thực sự là vấn đề

Trang 33

 HTML / CSV Reports: Sau khi thực hiện các phân tích chuyên sâu, web liên kết Validator trả về báo cáo hoàn toàn rõ ràng với các định dạng HTML / CSV Sức manh của filter(bộ lọc) cho phép quản trị web dễ quản lý và nắm bắt , có thể dành nhiều thời gian cho những tác vụ quan trọng khác.

 Dễ sử dụng: WLV cần phải có các site phân tích hữu ích cho Webmaster, như là Site Admin, và Web developer

Nhược điểm

 Ứng dung này là mất phí, bạn chỉ có thể sử dụng phiên bản dùng thử trong 30 ngày

 Bạn cần có hiểu biết về thiết kế web để có thể sử dụng tốt công cụ này

 Ứng dụng này chỉ có phiên bản Tiếng Anh

2.2.5 Selenium

Selenium là một công cụ kiểm thử phần mề tự động được phát triển bởi ThoughtWorks năm 2014 với tên gọi JavaScript test runner Đến năm 2007, tác giả Jason Huggins rời khỏi ThoughtWork và gia nhập Selenium team – một phần của Google và phát triển thành Selenium như hiện nay Selenium là một công cụ kiểm thử phần mềm tự động mã ngườn mở cho ứng dụng web mạnh nhất hiện nay với cấu trúc gồm bốn phần:

 Selenium IDE (Integrated development enviroment): là một công cụ cho phép ghi (record) và phát lại một test script, đây là một add-on hỗ trợ FireFox Chúng ta chỉ có thể record trên trình duyệt FireFox nhưng bù lại nó có thể playback trên các trình duyệt khác như IE, Chrome…

 Selenium Grid: là một hệ thống hỗ trợ người dùng thực thi các test script trên nhiều trình duyệt một các song song mà không cần phải chỉnh sửa test script

 Selenium Remote Control, Selenium WebDriver: là hai thư viện cho phép người lập trình test script trên các ngôn ngữ lập trình khác nhau như Puthon, Java, PHP, C#, Ruby… Trong khuôn khổ bài nghiên cứu em xin trình bày cụ thể

Trang 34

 Hầu hết các hệ điều hành như Windows, Mac, Linux.

 Cho phép ghi âm, chụp ảnh, chỉnh sửa và kiểm tra gỡ lỗi

 Hỗ trợ hầu hết các ngôn ngữ lập trình: html, java, net, perl, ruby …

 Tính năng chính trong Selenium 2.0 là tích hợp Webdriver API, Webdriver được thiết kế để mang lại một giao diện lập trình đơn giản và giải quyết một số hạn chế của Selenium-RC API

 Selenium Webdriver cho phép sử dụng một trong số các ngôn ngữ lập trình như HTML, Java, net, php, ruby… để tạo kịch bản test kết hợp với các điều kiện vòng lặp khiến cho test script trở nên chính xác hơn

 Selenium webdriver được phát triển tốt hơn để hỗ trợ cho các trang web động

 Mục đích của webdriver là hỗ trợ cho các vấn đề kiểm thử web-app hiện nay

Nhược điểm

Bên cạnh những ưu điểm trên Selenium WebDriver có nhược điểm là mã nguồn của nó không chạy trên Selenium Grid nên khi muốn thực hiện test case với các WebDriver trên nhiều trình duyệt khác nhau thì phải cấu hình thêm

2.3 Đề xuất

Từ sự khảo sát một số công cụ kiểm thử cho ứng dụng web ở trên, tôi thấy công cụ Selenium WebDriver có nhiều ưu điểm nổi bật so với các công cụ khác Với bài toán được đặt ra trong đồ án, kiểm thử website thương mại điện tử Flaton

Trang 35

trên nền WordPress trong thời gian một tuần, tôi đề xuất sử dụng phương pháp kiểm thử thủ công kết hợp sử dụng các công cụ kiểm thử tự động

Với một website nhiều chức năng như Flaton sẽ sinh ra nhiều trường hợp kiểm thử và việc thực hiện từng trường hợp kiểm thử sẽ mất nhiều thời gian, do đó tôi đề xuất sử dụng công cụ Selenium IDE để ghi lại các test case và sử dụng Selenium WebDriver để thực hiện các test case Ngoài ra, để kiểm thử hiệu năng của website, tôi sẽ kết hợp sử dụng công cụ Apache Jmeter

Mặc dù hiện nay có nhiều công cụ kiểm thử tự động ra đời và có nhiều ưu điểm nổi bật, hỗ trợ mạnh mẽ trong quá trình kiểm thử phần mềm, song kiểm thử thủ công vẫn là phương pháp kiểm thử không thể thay thế vì trong nhiều trường hợp công cụ tự động không thể sử dụng được như kiểm thử giao diện, kiểm thử khả năng tùy biến trong theme Cho dù có áp dụng kiểm thử tự động vào giai đoạn nào của dự án thì vẫn cần có người thực hiện kiểm thử thủ công nhằm đảm bảo giảm tối đa những lỗi không thể lường trước trong bất kỳ kịch bản nào

2.4 Hướng dẫn sử dụng Selenium IDE và Selenium WebDriver

2.4.1 Selenium IDE

2.4.1.1 Cài đặt Selenium IDE

Bước 1: Vào trang http://seleniumhq.org/download để download Selenium IDE

Bước 2: Tại phần Selenium IDE chọn from addons.mozilla.org để thêm tiện ích

Trang 36

Hình 2.1 Tải Selenium IDEBước 3: Sau khi trang Add-on của Firefox mở ra, chọn Add to Firefox.Bước 4: Có một thông bảo hiện ra xác nhận cài đặt Selenium IDE vào trình duyệt, nếu bạn chấp nhận chọn Cài đặt và khởi động lại trình duyệt.

Trang 37

Hình 2.2 Cài đặt Selenium IDE

Và đây là giao diện của Selenium IDE

Trang 38

Hình 2.3 Giao diện Selenium IDE

Trang 39

2.4.1.2 Các icon của Selenium IDE

Phần này giải thích một số ký hiệu và thành phần của Selenium IDE

Hình 2.4 Các icon của Selenium IDEGiải thích một số ký hiệu:

 Base URL: Đây là nơi điền URL của ứng dụng eb được tiến hành kiểm thử

 Thanh trượt : Đây là thanh trượt nằm dưới nhãn trên màn hình Dùng để điều chỉnh tốc độ nhanh/chậm khi chạy test case

 Nút : Chạy tất cả các test case

 Nút : Chỉ chạy test case được chọn

Trang 40

 Nút : Tạm dừng một test case đang chạy

 Nút : Bỏ qua một test case khi nó đã bị tạm dừng

 Nút : Nút thu được sử dụng để thu các test case qua những thao tác

bạn tác động đến trang web cần kiểm thử

 Nút : Áp dụng quy tắc cuộn lên

 Nút : Bật hoặc tắt các lịch trình kiểm thử

 Textbox Command: Dòng lệnh

 Text box Target: Kết quả mong đợi của dòng lệnh

 Text box Value: Giá trị đầu vào của dòng lệnh

Bảng Selenium sẽ lưu lại các lệnh, kết quả mong đợi và giá trị đầu vào của các lệnh Nếu click vào tab Source, ta có thể thấy Selenium IDE lưu trữ các test case có dạng HTML:

 Log: Hiển thị thông báo lỗi và các bước được thực thi trong quá trình chạy một test case tự động

 Reference: Thẻ tham chiếu

 UI-Element và Rollup: Tính năng nâng cao của Selenium IDE

2.4.1.3 Các thao tác thực hiện kiểm thử tự động với Selenium

Ngày đăng: 23/04/2017, 10:24

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Glenford J. Myers, 2004, The Art of Software Testing, Second Edition, John Wiley and Sons, Inc Sách, tạp chí
Tiêu đề: The Art of Software Testing
[2] Roger S.Pressman, 1982, Software Engineering - A Practitioner’s Approach, Sixth Edition, Ph.D, McGraw-Hill, Inc Sách, tạp chí
Tiêu đề: Software Engineering - A Practitioner’s Approach
[3] RoGer S.Pressman, 2000, Kỹ nghệ phần mềm, do Ngô Trung Việt Dịch, Tập 3, NXB Giáo dục Sách, tạp chí
Tiêu đề: Kỹ nghệ phần mềm
Nhà XB: NXB Giáo dục
[4] Phạm Thị Trang, 2009, Thiết kế test-case trong kiểm thử phần mềm, Báo cáo thực tập chuyên ngành, Trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên Sách, tạp chí
Tiêu đề: Thiết kế test-case trong kiểm thử phần mềm
[5] Bộ môn Công nghệ phần mềm, 2012, Bài giảng Công nghệ phần mềm, Trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên Sách, tạp chí
Tiêu đề: Bài giảng Công nghệ phần mềm
[6] D.Burns, 2010, Selenium 1.0 Testing Tools Beginner's Guide, Birmingham-Mumbai Sách, tạp chí
Tiêu đề: Selenium 1.0 Testing Tools Beginner's Guide
[7] Serie Học WordPress cơ bản. (05/01/2013). Retrieved from http://thachpham.com/series/hoc-wordpress-co-ban Link
[8] Theme Unit Test. (09/02/2014). Retrieved from https://codex.wordpress.org/Theme_Unit_Test Link
[9] Admin. (12/05/2013 ). Cách tạo test case, testsuite đơn giản với Selenium IDE. Retrieved from http://testerviet.com.vn/diendan/showthread.php?t=650 Link
[10] Vu.the.linh. (01/10/2014). Playlist hướng dẫn học Selenium IDE cơ bản và nâng cao. Retrieved from http://www.testingvn.com/viewtopic.php?f=33&t=23443 Link
[11] Selenium Beginer. (07/08/2014). Retrieved from http://www.tabaolan.com/categories/newbie/ Link
[12] Học kiểm thử tự động Selenium bài 1. (20/03/2015). Retrieved from Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w