1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu selenium và ứng dụng trong kiểm thử website

67 4 0

Đ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

Tiêu đề Nghiên Cứu Selenium WebDriver Và Ứng Dụng Trong Kiểm Thử Ứng Dụng Web
Tác giả Nguyễn Thùy Nhung
Người hướng dẫn TS. Phan Thanh Đức
Trường học Học viện Ngân hàng
Chuyên ngành Hệ thống thông tin quản lý
Thể loại báo cáo chuyên đề thực tập
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 67
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

đã ra đời.Trong đó, Selenium là một công cụ kiểm thử tự động cho các ứng dụng Web, có thể kiểmthử trên nhiều trình duyệt, hỗ trợ nhiều ngôn ngữ lập trình, giao tiếp được với các công cụk

Trang 1

TÊN SINH VIÊNNGUYỄN THÙY NHUNG

HÀ NỘI, NĂM 2020

Trang 2

HỌC VIỆN NGÂN HÀNG

KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

BÁO CÁO CHUYÊN ĐỀ THỰC TẬP

TÊN ĐỀ TÀI NGHIÊN CỨU SELENIUM WEBDRIVER VÀ ÁP DỤNG TRONG KIỂM THỬ ỨNG DỤNG WEB

Giáo viên hướng dẫn: TS.Phan Thanh Đức

Sinh viên thực hiện: Nguyễn Thùy Nhung

Trang 3

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành nhất tới TS Phan Thanh Đức – Giảng viên Khoa Hệthống thông tin Quản lý – Học viện Ngân hàng Thầy đã luôn tạo điều kiện và tận tìnhhướng dẫn, giúp đỡ em hoàn thành bài chuyên đề tốt nghiệp này

Em xin chân thành cảm ơn Ban lãnh đạo công ty Episerver đã tạo điều kiện thuận lợicho em tìm hiểu thực tiễn trong suốt quá trình thực tập tại công ty Đặc biệt cảm ơn các anhchị hướng dẫn trực tiếp đã chỉ dạy cho em rất nhiều kiến thức mới mẻ và thực tế, khôngnhững áp dụng được vào đề tài chuyên đề tốt nghiệp mà còn phục vụ cho công việc thực tiễnsau này khi ra trường

Cuối cùng em xin gửi lời cảm ơn đến toàn thể thầy cô trường Học viện Ngân hàng, đặcbiệt là các thầy cô Khoa Hệ thống thông tin Quản lý đã giảng dạy và truyền đạt tận tình cho

em những kiến thức bổ ích trong những năm học tập tại trường

Em xin chân thành cảm ơn!

Hà Nội, Ngày Tháng 06 Năm 2020

Sinh viên thực hiện

Nguyễn Thùy Nhung

Trang 4

LỜI CAM ĐOAN

Em xin cam đoan đề tài: “Nghiên cứu Selenium WebDriver và áp dụng trong kiểm thử ứng dụng Web” được trình bày trong báo cáo tốt nghiệp là do em thực hiện dưới sự

hướng dẫn và chỉ bảo của Ts.Phan Thanh Đức

Tất cả tài liệu tham khảo khảo trong dự án đều được sự cho phép của các bên liênquan và ghi một cách rõ ràng trong danh mục tài liệu tham khảo của báo cáo tốt nghiệp.Trong báo cáo, không có việc sao chép tài liệu, công trình nghiên cứu của người khác màkhông chỉ rõ về tài liệu tham khảo

Hà Nội, Tháng 6 Năm 2020 Sinh viên thực hiện

Nguyễn Thùy Nhung

NHẬN XÉT

Trang 5

(Của cơ quan thực tập)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Hà Nội, ngày tháng 05 năm 2020 Người nhận xét

(Ký tên, đóng dấu)

Trang 6

NHẬN XÉT (Của giáo viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Kết luận : ………… ………

Hà Nội, ngày tháng 05 năm 2020 Giáo viên hướng dẫn

(Ký tên)

Trang 7

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BÀI TOÁN VÀ CƠ SỞ PHƯƠNG PHÁP LUẬN 3

1.1 Giới thiệu đơn vị thực tập 3

1.1.1 Sự hình thành và phát triển 3

1.1.2 Các giải pháp công ty Episerver hiện đang cung cấp cho khách hàng 3

1.2 Giới thiệu bài toán 5

1.3 Cơ sở phương pháp luận kiểm thử Website 5

1.3.1 Khái quát về kiểm thử Website 5

1.3.2 Đặc điểm về chất lượng của một Website 7

1.3.3 Quy trình kiểm thử một ứng dụng Web 8

1.3.4 Các mức độ nghiêm trọng của lỗi 12

1.3.5 Mô hình đại diện ứng dụng Web 13

1.4 Giới thiệu công cụ kiểm thự tự động Selenium 18

1.4.1 Kiểm thử tự động 18

1.4.2 Một số công cụ kiểm thử tự động hỗ trợ kiểm thử ứng dụng Website 20

1.4.3 Công cụ kiểm thử tự động Selenium 21

1.5 Selenium WebDriver 22

1.5.1 Tổng quan về đối tượng UI(Locators) 24

1.5.2 Các hàm xử lý chung trong Selenium WebDriver 24

CHƯƠNG 2: TRIỂN KHAI HỆ THỐNG THỰC TẾ 27

2.1 Bài toán thử nghiệm 27

Trang 8

2.1.1 Hoàn cảnh ra đời của bài toán 27

2.1.2 Giới thiệu website ShopDemoQA 27

2.2 Thiết kế các testcase cho các chức năng chính 28

2.2.1 Chức năng đăng ký 28

2.2.2 Chức năng đăng nhập hệ thống 31

2.2.3 Chức năng Search 33

2.2.4 Chức năng thêm sản phẩm vào giỏ hàng 34

2.2.5 Chức năng đặt hàng 35

2.2.6 Chức năng thêm sản phẩm vào mục yêu thích 38

2.3 Hướng giải quyết bài toán 39

2.3.1 Các yêu cầu về công nghệ 39

2.3.2 Hướng thực thi kiểm thử hệ thống 39

CHƯƠNG 3: THỰC NGHIỆM HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ 45

3.1 Thực thi kiểm thử tự động Website với Selenium WebDriver 45

3.1.1 Chức năng đăng ký 45

3.1.2 Chức năng đăng nhập 48

3.1.3 Chức năng tìm kiếm sản phẩm 49

3.1.4 Chức năng thêm sản phẩm vào giỏ hàng 52

3.1.5 Chức năng đặt hàng 53

3.1.6 Chức năng thêm sản phẩm vào danh sách yêu thích 54

3.2 Đánh giá kết quả kiểm thử 54

3.3 Hướng phát triển tiếp theo của công cụ kiểm thử tự động 56

KẾT LUẬN 57

Trang 9

DANH MỤC HÌNH V

Hình 1 1: Các giải pháp của công ty Episerver 4

Hình 1 2: Quy trình kiểm thử ứng dụng Web 9

Hình 1 3: Phân loại mức độ nghiêm trọng của lỗi 13

Hình 1 4: Mô hình meta của một ứng dụng Web 14

Y Hình 2 1: Website ShopDemoQA 28

Hình 2 2: Các package hỗ trợ test 41

Hình 3 1: Chức năng đăng ký tài khoản mới 45

Hình 3 2: Dữ liệu kiểm thử chức năng đăng ký 46

Hình 3 3: Kết quả đầu ra của chức năng đăng ký tài khoản 47

Hình 3 4: Chức năng đăng nhập tài khoản 48

Hình 3 5: Dữ liệu kiểm thử chức năng đăng nhập 49

Hình 3 6: Kết quả đầu ra của chức năng đăng nhập 49

Hình 3 7: Dữ liệu kiểm thử chức năng tìm kiếm 50

Hình 3 8: Kết quả đầu ra của chức năng tìm kiếm 51

Hình 3 9: Giỏ hàng 52

Hình 3 10: Chức năng đặt hàng 53

DANH MỤC BẢNG BIỂU

Trang 10

Bảng 1 1: So sánh ưu nhược điểm của kiểm thử thủ công và kiểm thử tự động 20

Y Bảng 2 1: Test case chức năng đăng ký 31

Bảng 2 2: Test case chức năng đăng nhập hệ thống 33

Bảng 2 3: Test case chức năng tìm kiếm 34

Bảng 2 4: Test case chức năng thêm sản phẩm vào giỏ hàng 35

Bảng 2 5: Test case chức năng đặt hàng 38

Bảng 2 6: Test case chức năng thêm sản phẩm vào mục yêu thích 39

Bảng 3 1: Kết quả test chức năng đăng ký tài khoản mới 47

Bảng 3 2: Kết quả test chức năng đăng nhập 49

Bảng 3 3: Kết quả test chức năng tìm kiếm 51

Bảng 3 4: Kết quả test chức năng thêm sản phẩm và giỏ hàng 53

Bảng 3 5: Kết quả test chức năng đặt hàng 54

Bảng 3 6: Kết quả test chức năng thêm sản phẩm vào danh dách yêu thích 54

Bảng 3 7: Kết kiểm thử chức năng 55

Trang 11

MỞ ĐẦU

Các ứng dụng Web càng ngày càng phát triển mạnh mẽ nhằm đáp ứng tối đa nhữngnhu cầu của người dùng và dần trở thành nền tảng kết nối thông tin thiết yếu trong nhiềudoanh nghiệp, đóng vai trò quyết định của thương mại điện tử, trao đổi thông tin Để có thểđạt được điều này, các ứng dụng Web cần phải có hiệu năng cao, đáng tin cậy,… Việc đưa ramột ứng dụng Web hoàn hảo cho những người đang và sẽ sử dụng ứng dụng đã trở thànhmột thách thức chính trong đảm bảo chất lượng phần mềm Sự phức tạp, tính linh hoạt và sựphụ thuộc của các ứng dụng vào một dịch vụ với nhiều người sử dụng trên các nền tảng khácnhau (hệ điều hành, trình duyệt,…) là một thách thức mà các nhà phát triển website phải đốimặt Điều này dẫn tới việc kiểm thử ứng dụng Web trở nên thiết yếu đối với các dự án phầnmềm và cần phải có những phương pháp đặc biệt khác với phần mềm truyền thống

Trong khi đó, để tạo ra sản phẩm công nghệ thông tin hay phần mềm có chất lượngthì hoạt động kiểm thử phần mềm đóng vai trò quan trọng Tuy nhiên, kiểm thử thủ công lạichiếm đến hơn 40% thời gian, kinh phí và nguồn nhân lực phát triển dự án phần mềm Dovậy, một loạt các công cụ hỗ trợ kiểm thử đơn vị (như TestNG, JUnit, NUnit, TagUnit,JBehave,…), kiểm thử chức năng (như Selenium, Quicktest professional, IBM RationalFunctional tester,…), kiểm thử hiệu năng (như Jmeter, OpenSTA, Load runner, ) đã ra đời.Trong đó, Selenium là một công cụ kiểm thử tự động cho các ứng dụng Web, có thể kiểmthử trên nhiều trình duyệt, hỗ trợ nhiều 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à đặc biệt công cụ này làmột bộ mã nguồn mở, do đó các tổ chức không cần tốn kinh phí mua bản quyền

Xuất phát từ thực tế đó, em đã chọn đề tài: “Nghiên cứu Selenium WebDriver và áp dụng trong kiểm thử ứng dụng Web” với mong muốn có đựợ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àmtiề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ầnmềm

Trang 12

Mục tiêu chuyên đề được thực hiện nhằm mục đích tìm hiểu về kiểm thử phần mềm,kiểm thử tự động phần mềm, đặc biệt là kiểm thử các ứng dụng Web và các công cụ kiểmthử tự động Chuyên đề tập trung nghiên cứu vai trò, phương pháp cũng như ứng dụng củaSelenium WebDriver trong việc kiểm thử ứng dụng Web Từ đó, thực hiện phân tích, xâydựng các test case cho các chức năng của một website; sử dụng ngôn ngữ lập trình C# tạocác test script từ các test case để kiểm tra khả năng thực hiện đúng và đủ của từng chứcnăng Kết quả kiểm thử góp phần đánh giá được chất lượng của Website đó

Với mục đặt ra như trên, những nội dung và kết quả chính của chuyên đề được trìnhbày trong ba phần như sau:

Chương 1: Giới thiệu tổng quan về bài toán và cơ sở phương pháp luận Chương 1giới thiệu tổng quan về kiểm thử phần mềm, nêu lên vai trò kiểm thử trong quá trình pháttriển dự án phần mềm và quy trình kiểm thử phần mềm tự động Đồng thời tập trung tìmhiểu việc kiểm thử tự động ứng dụng Web, các bước kiểm thử và lựa chọn công cụ kiểm thửphù hợp – Selenium WebDriver Từ đó đi sâu vào tìm hiểu công cụ Selenium WebDriver vềvai trò, ưu nhược điểm cũng như các đặc trưng và các câu lệnh mà công cụ hỗ trợ

Chương 2: Triển khai hệ thống thực tế Chương 2 tập trung xây dựng kịch bản kiểmthử Từ đó tìm ra hướng giải quyết bài toán và ứng dụng kiểm thử trên công cụ selenium

Chương 3: Thực nghiệm và đánh giá kết quả áp dụng các kiến thức đã trình bày vàobài toán cụ thể: Sử dụng công cụ kiểm thử tự động Selenium WebDriver để kiểm thử tựđộng các chức năng đã phân tích

Trang 13

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BÀI TOÁN VÀ CƠ SỞ PHƯƠNG

PHÁP LUẬN 1.1 Giới thiệu đơn vị thực tập

1.1.1 Sự hình thành và phát triển

Episerver được thành lập vào năm 1994 tại Stockholm, Thụy Điển, bởi Mikael Runhem.Sau đó được gọi là Elektropost Stockholm AB, công ty tập trung vào thư viện tử dựa trêninternet Elektropost Stockholm AB đã mở rộng để cung cấp công nghệ xây dựng trang web

và giới thiệu phiên bản đầu tiên của nền tảng EPiServer CMS vào năm 1997

Năm 2002, phiên bản đầu tiên của EPiServer CMS đã được dựa trên Microsoft‘s NETFramework, EPiServer CMS 4.0, đã được đưa ra Vào năm 2007, phiên bản EPiServer CMSdựa trên NET thứ hai đã được ra mắt, phiên bản 5

Công ty đã kết hợp phần mềm của mình vào Đám mây trải nghiệm kỹ thuật số Episerver

và vào tháng 6 năm 2015, Episerver đã ra mắt phiên bản chính đầu tiên của nền tảng củamình sau khi sáp nhập Ektron.Vào tháng 11 năm 2015, công ty đã đổi thương hiệu cho chínhmình, thay đổi EPiServer thành Episerver, và bao gồm cả tên rút gọn là Epi

Vào tháng 8 năm 2016, Episerver đã mua lại Peerius, một công ty cá nhân hóa thươngmại có trụ sở tại London ở Anh Thương hiệu hiện được tích hợp hoàn toàn dưới dạngEpiPersonalization vào Nền tảng Episerver

1.1.2 Các giải pháp công ty Episerver hiện đang cung cấp cho khách hàng

Trang 14

Hình 1 1: Các giải pháp của công ty Episerver

Episerver CMS: Cung cấp các khả năng quản lý nội dung web mạnh mẽ, bao gồm giaodiện người dùng trực quan, các tính năng đa xuất bản và phê duyệt và API linh hoạt với cácheadless options

Episerver Commerce: Kết hợp các khả năng thương mại điện tử mạnh mẽ với giao diệnngười dùng quản lý nội dung web trực quan và API linh hoạt để tùy chỉnh và mở rộng

Episerver Campaign: Cung cấp giải pháp quản lý chiến dịch đa kênh mạnh mẽ để tạo

và quản lý trực quan nội dung chiến dịch, bao gồm email, SMS và phân tích chiến dịch.Episerver Personalization: bao gồm theo dõi, đề xuất sản phẩm / nội dung được cánhân hóa và kết quả tìm kiếm, kích hoạt tin nhắn tự động và trực quan hóa phân tích dữ liệu

hồ sơ

Episerver Find: Mở rộng các tính năng tìm kiếm cho Episerver và cho phép bạn xâydựng bộ lọc cá nhân hóa nâng cao và điều hướng theo khía cạnh, dựa trên hành vi của kháchtruy cập trang web và API thông thạo

Trang 15

Episerver Social API: Là API thời gian thực dựa trên các dịch vụ vi mô với các dịch vụ

mở rộng để mô hình hóa và quản lý nội dung do người dùng tạo như xếp hạng và nhận xét.Integrations & add-ons: Cho phép bạn mở rộng nền tảng trong nhiều lĩnh vực như phântích, tự động hóa tiếp thị, thanh toán, dịch thuật

Digital Experience Cloud Service: Chạy giải pháp Episerver của bạn trong EpiserverDigital Experience Cloud Service cho tốc độ truy cập cao, bảo mật mạnh mẽ và dịch vụđược quản lý với sự hỗ trợ của chuyên gia cùng khả năng tự phục vụ

1.2 Giới thiệu bài toán

Đề tài “Nghiên cứu Selenium WebDriver và áp dụng trong kiểm thử ứng dụng Web” nhằm nghiên cứu làm rõ tính năng, ưu nhược điểm của công cụ Selenium trong kiểm

thử website

Với việc chọn đề tài “Nghiên cứu Selenium WebDriver và áp dụng trong kiểm thử ứng dụng Web” hi vọng sẽ giải quyết phần nào những khó khăn đang gặp phải trong

việc kiểm thử phần mềm tại công ty Episerver

1.3 Cơ sở phương pháp luận kiểm thử Website

1.3.1 Khái quát về kiểm thử Website

Hiện nay, với sự phổ biến rộng rãi của Internet, đòi hỏi yêu cầu ngày càng cao đối vớicác trang web, ứng dụng web Khi ngày càng có nhiều tổ chức khai thác Worl Wide Web(WWW) để cung cấp dịch vụ của họ và được số lượng khách hàng và người dùng lớn ưuthích Từ đó yêu cầu các ứng dụng Web phải có chất lượng cao đáp ứng các yêu cầu về bảomật, khả năng mở rộng, độ tin cậy, và khả năng truy cập tăng lên đều đặn Trong bối cảnhnhư vậy, việc kiểm tra các ứng dụng Web để xác minh chất lượng của chúng đã trở thànhmột vấn đề quan trọng

Một ứng dụng Web có thể được coi là một hệ thống phân tán, với máy chủ của kháchhàng hoặc kiến trúc đa tầng, bao gồm các đặc điểm sau:

Trang 16

 Nó có thể được truy cập đồng thời bởi một số lượng lớn người dùng được phânphối trên toàn thế giới

 Nó chạy trên các môi trường thực thi phức tạp, không đồng nhất, bao gồm các phần cứng khác nhau, các kết nối mạng, hệ điều hành, máy chủ Web và trình duyệt Web khác nhau

 Nó có một bản chất cực kỳ không đồng nhất phụ thuộc vào sự đa dạng lớn của các thành phần, phần mềm Các thành phần này có thể được xây dựng bởi các công nghệ khác nhau (nghĩa là các ngôn ngữ và mô hình lập trình khác nhau)

và có thể có tính chất khác nhau (tức là các thành phần mới được tạo ra từ đầu,các thành phần kế thừa, các thành phần hypermedia, COTS, v.v.)

 Nó có thể tạo các thành phầ, phần mềm trong thời gian chạy theo đầu vào của người dùng và trạng thái máy chủ

Mỗi đặc điểm được mô tả trong danh sách trên tạo ra các khía cạnh và quan điểm thửnghiệm Ví dụ, các giải pháp hiệu quả cần được xác định để thực hiện kiểm tra hiệu năng vàtính khả dụng để xác minh hành vi của ứng dụng Web khi được truy cập đồng thời bởi một

số lượng lớn người dùng Ngoài ra, vì người dùng có thể sử dụng các trình duyệt có khảnăng hiển thị nội dung Web khác nhau, các ứng dụng Web phải được kiểm tra để đảm bảorằng ứng dụng được mong đợi của hành vi sử dụng các trình duyệt, hệ điều hành và phầnmềm trung gian khác nhau Một tính năng quan trọng khác của ứng dụng Web cần đượckiểm tra cụ thể là bảo mật và khả năng được bảo vệ khỏi sự truy cập trái phép Các côngnghệ khác nhau được sử dụng để triển khai các thành phần ứng dụng Web ảnh hưởng đếntính linh hoạt và chi phí thiết lập môi trường thử nghiệm cần thiết để kiểm tra từng thànhphần Ngoài ra, các cơ chế khác nhau được sử dụng để tích hợp các thành phần phân phốitạo ra các mức dữ liệu khớp nối và dữ liệu liên thành phần khác nhau, ảnh hưởng đến chi phí

để được kiểm tra hiệu quả Đối với sự xuất hiện của các thành phần phần mềm được tạođộng, vấn đề ở đây là để đối phó với khó khăn trong việc tạo và chạy lại các điều kiện tương

tự đã tạo ra từng thành phần Cuối cùng, kiểm tra ứng dụng Web cũng cần tính đến các lỗitrong ứng dụng, các dịch vụ, chức năng cần thiết của ứng dụng, để xác minh tính hợp lệ của

Trang 17

hành vi ứng dụng với các yêu cầu chức năng được chỉ định Xem xét rằng các thành phầncủa ứng dụng Web thường được hỗ trợ bởi các cơ chế điều hướng được triển khai bởi cácliên kết siêu văn bản, một hoạt động xác minh cụ thể cũng cần được đưa ra để kiểm tra tínhtích hợp liên kết, để đảm bảo rằng không có thành phần không thể truy cập hoặc liên kếtđang chờ xử lý bị hỏng được bao gồm trong ứng dụng.

1.3.2 Đặc điểm về chất lượng của một Website

Trước đây, kiểm thử phần mềm là lĩnh vực độc quyền của các ứng dụng desktop Tuynhiên, giờ đây nó đã trở thành một thuật ngữ bao gồm một loạt các nền tảng từ ứng dụngdesktop, ứng dụng trên điện thoại thông minh, máy tính bảng cho đến ứng dụng chạy trênnền Web Mỗi loại ứng dụng lại có những đặc trưng riêng về chất lượng, độ tin cậy, chứcnăng, môi trường cài đặt, yêu cầu người dùng, v.v kéo theo việc kiểm thử trên từng loại ứngdụng sẽ khác nhau Chính vì vậy, một chuyên gia về kiểm thử ứng dụng trên điện thoạithông minh hay ứng dụng desktop chưa chắc đã làm tốt công việc kiểm thử với ứng dụngtrên nền Web Những sự khác biệt có thể kể đến sau đây:

• Ứng dụng trên nền Web sử dụng trên nhiều trình duyệt, không biết trước môi trườngduyệt Web của người dùng: Một ứng dụng Web chạy tốt trên trình duyệt Google Chromenhưng trên Mozilla Firefox hay Safari thì có thể không như ý muốn Đó là do mỗi trìnhduyệt được xây dựng trên kiến trúc khác nhau Ngay cả khi hiện tại các trình duyệt đều đang

cố gắng đưa ra chuẩn chung để dễ dàng hơn cho người lập trình, nhưng sự khác biệt khi khởichạy ứng dụng trên nhiều trình duyệt khác nhau vẫn gây ra nhiều lo lắng cho lập trình viên

và người làm kiểm thử Đó là lý do chúng ta không khó bắt gặp những ứng dụng chạy trênnền Web ghi chú thích “Website chạy (tương thích) tốt nhất trên trình duyệt X v.v ” Tuynhiên, cách làm này không thật sự hiệu quả khi người dùng muốn sử dụng ứng dụng Webcủa chúng ta lại phải cài đặt trình duyệt được khuyến nghị Để tránh cho sự bất tiện này đòihỏi người làm kiểm thử phải triển khai ca kiểm thử trên nhiều trình duyệt khác nhau, kiểmtra độ tương thích và tìm ra những lỗi để lập trình viên đưa ra sự thay đổi cho phù hợp vớimọi trình duyệt

Trang 18

• Ứng dụng trên nền Web thường có lượng truy cập lớn, nhiều người sử dụng trêncùng một thời điểm: Với những ứng dụng Web có lượng người truy cập trung bình hoặc ítthì điều này không xảy ra vấn đề gì nghiêm trọng Nhưng với những ứng dụng chạy trên nềnWeb có lượng người truy cập lớn, thực hiện nhiều thao tác truy vấn dữ liệu cùng lúc có thể

sẽ dẫn tới việc server bị quá tải Kiểm thử hộp trắng phát huy hiệu quả rất cao trong trườnghợp này Việc kiểm thử mã nguồn chương trình sẽ giúp loại bỏ được những dòng lệnh khônghợp lý, gây tiêu tốn tài nguyên hệ thống và giúp cho ứng dụng Web có thể đáp ứng đượclượng truy cập lớn cùng lúc tốt hơn Công việc này cũng chính là kiểm thử hiệu năng, độchịu lỗi của chương trình phần mềm

• Sự phụ thuộc vào tốc độ và sự ổn định của đường truyền Internet: Đa số các ứngdụng Web đều cần sử dụng mạng Internet để tải các dữ liệu về, sau đó hiển thị lên trìnhduyệt Nếu tốc độ đường truyền ổn định, việc duyệt Web không gây khó khăn gì Tuy nhiêntrên thực tế, tốc độ cũng như sự ổn định về đường truyền của người dùng là rất khó đoánbiết, mỗi khu vực lại có sự khác nhau về đường truyền gây ảnh hưởng tới sự vận hành củaứng dụng Web Chưa kể tới việc mạng có thể mất kết nối đột ngột khi đang thực hiện thaotác truy vấn sẽ dẫn tới những hậu quả rất khó lường nếu kiểm thử không tốt ở các trườnghợp này, điển hình như các ứng dụng cho ngân hàng, hệ thống ERP, phần mềm phục vụ kếtoán, v.v…

• Sự cần thiết của SEO Web: Đối với rất nhiều ứng dụng trên nền Web việc tối ưuSEO là một yêu cầu bắt buộc Người sở hữu các website đều muốn website được thăng thứhạng cao trên các máy tìm kiếm như Google, Bing, v.v giúp ứng dụng Web của mình đượcnhiều người biết tới Đây là một điểm mạnh giúp quảng bá ứng dụng trên nền Web dễ dànghơn so với ứng dụng di động hay ứng dụng desktop Trong thực thế, ngoài kiểm thử chứcnăng, hiệu năng, giao diện cho ứng dụng Web, kiểm thử viên còn phải chú trọng tới việckiểm tra tối ưu SEO cho ứng dụng Tuy nhiên việc tối ưu SEO lại không hề dễ dàng khi cácmáy tìm kiếm thường xuyên thay đổi thuật toán Ngoài ra, nó còn liên quan tới chất lượngnội dung của ứng dụng Web để được máy tìm kiếm chú ý đến

1.3.3 Quy trình kiểm thử một ứng dụng Web

Trang 19

Kiểm thử phần mềm/ứng dụng bao gồm nhiều giai đoạn với sự phối hợp của nhiềubên liên quan chứ không chỉ là một hoạt động đơn lẻ Chính vì thế, cần có quy trình kiểmthử phần mềm để làm rõ các công đoạn, các bước kiểm thử, người chịu trách nhiệm và khinào việc kiểm thử được tiến hành trong toàn bộ quy trình phát triển phần mềm Nói cáchkhác, quy trình kiểm thử phần mềm chính là chuỗi các hoạt động được tiến hành để thựchiện việc kiểm thử Các giai đoạn trong quy trình kiểm thử phần mềm được biểu diễn tổngquát bằng sơ đồ sau:

Hình 1 2: Quy trình kiểm thử ứng dụng Web

• Phân tích yêu cầu: Nhóm kiểm thử sẽ tương tác với các bên liên quan để hiểu rõ những yêucầu cụ thể cần cho việc kiểm thử Các yêu cầu có thể là chức năng (xác định phần mềm cầnphải làm những gì) hoặc phi chức năng (hiệu năng, tính bảo mật hệ thống, màu sắc, v.v.)

➢ Hoạt động cụ thể:

▪ Xác định loại kiểm thử sẽ thực hiện

▪ Tổng hợp chi tiết về và mức độ tập trung thứ tự ưu tiên

▪ Chuẩn bị RTM (Requirement Traceability Matrix – một tài liệu dưới dạng bảng sử dụng đểtheo dõi các yêu cầu của khách hang và kiểm tra xem các yêu cầu này đã được đáp ứng đầy

đủ hay chưa)

▪ Xác định môi trường kiểm thử

Trang 20

▪ Phân tích khả năng sử dụng kiểm thử tự động

➢ Tài liệu sử dụng:

▪ RTM

▪ Báo cáo về khả năng sử dụng kiểm thử tự động (nếu cần)

• Lên kế hoạch kiểm thử: Còn được gọi bằng tên khác là lên chiến lược thử nghiệm Ở giaiđoạn này, trưởng nhóm kiểm thử sẽ dự toán chi phí cho dự án cũng như chuẩn bị kế hoạchkiểm thử

➢ Hoạt động cụ thể:

▪ Lựa chọn công cụ kiểm thử (test tool)

▪ Lên kế hoạch về nhân sự và ấn định vai trò trách nhiệm cho từng người trong nhóm

▪ Phổ biến cho mọi người trong nhóm kiểm thử về yêu cầu dự án

▪ Xác minh, kiểm tra lại các ca kiểm thử

▪ Tạo dữ liệu kiểm thử

➢ Tài liệu sử dụng:

▪ Ca kiểm thử

Trang 21

▪ Dữ liệu kiểm thử

• Cài đặt môi trường kiểm thử: Môi trường kiểm thử quyết định bởi các điều kiện phần cứng

và phần mềm trong từng dự án Thiết lập môi trường kiểm thử có thể thực hiện song songvới giai đoạn sinh ca kiểm thử và là một tiêu chí quan trọng trong quá trình kiểm thử Tuynhiên, nhóm kiểm thử có thể không cần tham gia vào giai đoạn này nếu đã có các bên liênquan khác hỗ trợ, nhiệm vụ của nhóm kiểm thử chỉ là yêu cầu môi trường kiểm thử cần thiết ➢ Hoạt động cụ thể:

▪ Hiểu được kiến trúc yêu cầu, thiết lập môi trường và chuẩn bị danh sách yêu cầu về phầncứng và phần mềm cho môi trường thử nghiệm

▪ Thiết lập môi trường kiểm thử

• Thực hiện kiểm thử: Nhóm kiểm thử thực hiện kiểm thử theo kế hoạch và danh sách cakiểm thử đã chuẩn bị từ giai đoạn trước Các lỗi phát hiện ở giai đoạn này sẽ được thông báolại cho nhóm phát triển phần mềm để chỉnh sửa và thực hiện kiểm thử lại

➢ Hoạt động cụ thể:

▪ Thực hiện kiểm thử theo kế hoạch

▪ Làm tài liệu về kết quả kiểm thử, cập nhật lại các lỗi trong ca kiểm thử

▪ Kiểm thử lại các lỗi đã được chỉnh sửa ▪ Kiểm tra để đóng lỗi ➢ Tài liệu sử dụng: ▪ Cakiểm thử (cập nhật kết quả)

▪ Báo cáo lỗi

• Đóng chu trình kiểm thử: Nhóm kiểm thử sẽ họp, thảo luận và phân tích những bài học rút

ra sau quá trình kiểm thử, đưa ra chiến lược cho những lần kiểm thử kế tiếp hoặc chia sẻkinh nghiệm cho những dự án tương tự

➢ Hoạt động cụ thể:

Trang 22

▪ Đánh giá việc hoàn thành quy trình kiểm thử dựa vào thời gian, mức độ bao phủ, chi phí vàchất lượng.

▪ Chuẩn bị dữ liệu dựa trên các tiêu chí trên

▪ Chuẩn bị báo cáo kết thúc kiểm thử

▪ Báo cáo chất lượng sản phẩm cho khách hàng

▪ Phân tích kết quả kiểm thử để tìm ra sự phân bố lỗi theo loại và mức độ nghiêm trọng ➢Tài liệu sử dụng:

▪ Báo cáo kết thúc kiểm thử

1.3.4 Các mức độ nghiêm trọng của lỗi

Chương trình một khi đã xuất hiện lỗi đều kéo theo những hệ luỵ nghiêm trọng Mộttrong những cách phân loại mức độ nghiêm trọng của lỗi thường được sử dụng là dựa trêntần suất xuất hiện: chỉ một lần, thỉnh thoảng, xuất hiện lại hay lặp đi lặp lại nhiều lần Việcphân loại mức độ nghiêm trọng của lỗi sẽ giúp kiểm thử viên cũng như lập trình viên ý thứcđược đâu là lỗi cần được giải quyết trước, nhằm giảm thiểu tối đa những tổn thất về chi phí

và nâng cao chất lượng cho sản phẩm phần mềm Hình 1.3 dưới đây minh hoạ các mức độnghiêm trọng của lỗi dựa trên độ nghiêm trọng và hậu quả

Trang 23

Hình 1 3: Phân loại mức độ nghiêm trọng của lỗi

1.3.5 Mô hình đại diện ứng dụng Web

Trong kiểm thử phần mềm cần có các mô hình đại diện cho các khái niệm thiết yếu

và mối quan hệ giữa các mục đang được đang được kiểm tra Các mô hình có thể hỗ trợ lựachọn các trường hợp thử nghiệm hiệu quả vì các mô hình có thể được sử dụng để thể hiệnhành vi cần thiết hoặc tập trung vào các khía cạnh của cấu trúc ứng dụng được cho là thiếusót Đối với các ứng dụng Web, các mô hình thể hiện hành vi hoặc cấu trúc đã được cungcấp bởi một số phương pháp phát triển ứng dụng Web, mở rộng các mô hình phần mềmtruyền thống để thể hiện rõ ràng các đặc điểm phần mềm liên quan đến Web Ví dụ về những

mô hình như vậy bao gồm Mô hình dữ liệu quản lý mối quan hệ (RMDM) được sử dụng bởiPhương pháp quản lý mối quan hệ (RMM) trong đó sử dụng các sơ đồ dựa trên mối quan hệthực thể để mô tả các đối tượng và điều hướng cơ chế của các ứng dụng Web Các phươngpháp khác, như Object Định hướng Hypermedia (OOH) ích hợp hướng đối tượng truyềnthống các mô hình với chế độ xem điều hướng và chế độ xem trình bày của ứng dụng.Phương pháp của Mô hình thiết kế Hypermedia hướng đối tượng (OOHDM) cho phép xâydựng các ứng dụng Web tùy chỉnh bằng cách áp dụng các nguyên thủy hướng đối tượng đểxây dựng ứng dụng khái niệm, mô hình điều hướng, và giao diện

Trang 24

Mô hình meta của một ứng dụng Web sử dụng sơ đồ UML với nhiều loại lớp và đạidiện một số loại thành phần của ứng dụng Web và mối quan hệ của chúng Một ứng dụngWeb có thể được mô hình hóa bằng mô hình sơ đồ lớp UML được khởi tạo từ mô hình meta.

Hình 1 4: Mô hình meta của một ứng dụng Web

1.3.6 Công việc chính khi kiểm thử ứng dụng Web

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

Kiểm thử chức năng yêu cầu kiểm thử viên thực hiện kiểm thử tất cả các link trongtrang Web, định dạng được sử dụng trong các trang Web để gửi và nhận các thông tin cầnthiết từ người dùng Ngoài ra còn có kết nối cơ sở dữ liệu, kiểm tra cookie và xác minhHTML/CSS, v.v

 Kiểm thử giao diện:

Trang 25

Trước khi lập trình viên bắt tay vào xây dựng mã nguồn sẽ luôn có một bảnthiết kế UI quy định giao diện của ứng dụng Web Mỗi thành phần textbox,button, image, link và bố cục trên ứng dụng Web đều được chỉ ra một cách cụ thểtrong tài liệu này Bản thiết kế UI thường sẽ kèm theo file PSD – bản vẽ giao diệncủa ứng dụng Web sử dụng phần mềm Photoshop để lập trình viên dễ dàng xâydựng cũng như khách hàng có thể biết trước ứng dụng của mình sẽ hiển thị ra sao.Đây cũng là tài liệu không thể thiếu cho kiểm thử viên so sánh, đối chiếu giữathiết kế và nội dung thực tế của ứng dụng hiển thị trên trình duyệt.

 Kiểm thử các liên kết và menu:

Trong một ứng dụng Web có 2 loại liên kết: liên kết nội bộ (internallink) và liên kết ngoại bộ (external link) Cả 2 loại liên kết trên đều cần đượckiểm tra xem chúng có hoạt động không? Có trỏ đến địa chỉ mong muốnkhông? Cần đảm bảo rằng các liên kết không tự trỏ đến vị trí của chính nó.Ngoài ra cũng cần xem xét thuộc tính “target” của các liên kết xem chúng cóhoạt động đúng như bản thiết kế yêu cầu hay không

 Kiểm thử các form nhập dữ liệu:

Cần đảm bảo các trường nhập liệu được thiết kế đúng kiểu loại, có bộlọc kiểm tra tính đúng đắn của dữ liệu nhập vào (validation) trước khi gửi đi(submit) tránh việc hacker có thể tận dụng lỗ hổng SQL Injection từ chính cácform nhập liệu trên ứng dụng Web Ngoài ra cũng cần đảm bảo sự toàn vẹn dữliệu trong quá trình truyền tải thông tin từ trình duyệt tới server, nhất là đối vớicác ứng dụng thương mại điện tử, ngân hàng, v.v

 Kiểm thử lỗi cú pháp HTML/CSS:

Ở bước tiếp theo, người kiểm thử cần xác định các thẻ CSS bị lỗi hoặccác thuộc tính, id, class được viết trong thẻ HTML không hợp lệ hoặc khôngthuộc bất kỳ thẻ CSS nào

Trang 26

 Kiểm thử cookie và session:

Kiểm thử các ứng dụng đăng nhập trong phiên bằng cách cho phép và

vô hiệu hóa các tập tin cookie Có thể thử đưa lỗi vào ứng dụng Web bằngcách sử dụng một tên miền không phù hợp như cố tình truyền sai, thiếu tham

số, v.v Ngoài ra, cần kiểm tra khả năng bảo mật của ứng dụng Web bằng cáchxóa các tập tin cookie có chọn lọc khi kiểm thử

 Kiểm thử nội dung đa ngôn ngữ:

Bước kiểm thử này đặc biệt cần thiết với những ứng dụng Web hỗ trợ

đa ngôn ngữ để đảm bảo thông tin khi dịch sang các ngôn ngữ khác nhau luônđược sát nghĩa, không bị tràn dòng khi dịch, các yếu tố về chính tả được tuânthủ

 Kiểm thử cơ sở dữ liệu (database):

Kiểm tra kết nối tới cơ sở dữ liệu và các lỗi truy vấn có thể gặp phải,đảm bảo dữ liệu được cung cấp chính xác khi các chức năng xem thông tin,thêm, sửa, xoá, v.v hoạt động

 Kiểm thử khả năng sử dụng

 Kiểm thử nội dung:

Chúng ta cần đảm bảo nội dung trong ứng dụng được sắp xếp hợp lý và

dễ hiểu với người dùng, không mắc các lỗi chính tả, các hình ảnh hiển thịchính xác về vị trí, kích thước Ngoài ra cũng cần chú trọng tới màu sắc, fontchữ phù hợp với mọi đối tượng sử dụng

 Kiểm thử lôgíc các liên kết và hướng dẫn:

Đối với người dùng lần đầu tiên truy cập một ứng dụng Web, họ luôngặp những khó khăn nhất định trong việc sử dụng Vì vậy cần kiểm tra xemcác hướng dẫn, liên kết, thông báo đã được bố trí đầy đủ trên ứng dụng hay

Trang 27

chưa? Tuy nhiên, việc xuất hiện quá nhiều hướng dẫn, thông báo ở mọi nơitrên ứng dụng cũng khiến người dùng rối mắt, không thoải mái khi sử dụng.Tốt nhất nên đảm bảo các hướng dẫn, thông báo đưa ra hết sức ngắn gọnnhưng đủ ý ngay tại nơi người dùng có thể gặp khó khăn khi sử dụng.

 Kiểm thử văn hoá khu vực và đối tượng sử dụng:

Điều này bắt nguồn từ đặc điểm riêng của từng lĩnh vực (ví dụ y khoathường dùng màu sáng để thể hiện sự sạch sẽ), hoặc văn hóa riêng từng khuvực (người châu Á thường chuộng tông màu nóng và thiết kế cầu kỳ hơn châuÂu)

Thêm vào đó, trong quá trình kiểm thử phải luôn bảo đảm rằng chuẩnthiết kế ứng dụng Web của mình có thể được tìm thấy phổ biến ở nhiều ứngdụng Web khác cùng loại Ví dụ như button Đăng nhập, Đăng xuất thườngnằm ở góc trên bên phải và menu chính luôn nằm ở trên cho tất cả trang Webcon Nếu một ứng dụng Web trong lĩnh vực khoa học lại trình bày bằng fontchữ cách điệu lòe loẹt, tiêu đề chạy ngang dọc, hoặc một ứng dụng Web dànhcho trẻ em lại chỉ dùng 2 tông màu đen trắng buồn tẻ thi nên góp ý với bộ phậnthiết kế

 Kiểm thử sự tương thích

Một ứng dụng Web thường hỗ trợ nhiều thiết bị, môi trường khác nhau Vì vậy kiểmthử độ tương thích của ứng dụng Web là một điều không dễ dàng khi công nghệ củacác nền tảng thay đổi quá nhanh chóng

 Kiểm thử tương thích theo thiết bị, hệ điều hành:

Khó có ứng dụng Web nào chạy hoàn hảo trên tất cả các môi trường, vìvậy người kiểm thử cần đặt ưu tiên cho những môi trường cần hỗ trợ để tiếtkiệm thời gian cho việc kiểm thử Có hai điều cần lưu tâm nhất khi kiểm thửkhả năng tương thích của ứng dụng với thiết bị, đó là: khung hình và khả năng

hỗ trợ của thiết bị với các phiên bản HTML Người kiểm thử cần truy cập tất

Trang 28

cả các nội dung trên từng loại thiết bị, có thể xoay ngang, dọc màn hình (đốivới thiết bị di động, máy tính bảng) để xem ứng dụng Web được hiển thị nhưthế nào, chạy thử từng chức năng trên ứng dụng để đảm bảo chúng hoạt độngnhư mong muốn.

 Kiểm thử tương thích với trình duyệt:

Cần chạy thử ứng dụng trên một số trình duyệt phổ biến hiện nay như

IE, Chrome, Firefox, Opera, Safari, v.v để đảm bảo hoạt động chính xác trêncác trình duyệt khác nhau

Kiểm tra hoạt động các chức năng của ứng dụng khi thực hiện cài đặt,cấu hình bảo mật cho trình duyệt

Mỗi trình duyệt lại có nhiều phiên bản cập nhật khác nhau, cần kiểm tra

sự nhất quán của ứng dụng khi chạy trên các phiên bản đó

Kiểm tra hoạt động của ứng dụng khi bật/tắt flash, cookie, java, v.v

 Kiểm thử hiệu suất

 Kiểm thử khả năng tải (Load test):

Ở bước này cần xác định thời gian thực thi cho các hành động tươngứng với các chức năng trên ứng dụng Công việc này cần được thực hiện ởnhiều thời điểm khác nhau (giờ cao điểm/thấp điểm) để có những đánh giákhách quan nhất về khả năng tải của ứng dụng

 Kiểm thử độ chịu lỗi (Stress test):

Công việc này chính là kiểm tra sức chịu đựng của ứng dụng Web khi

có lượng truy cập cao từ phía người dùng Trong thực tế đó có thể là nhu cầu

sử dụng thực sự của người dùng đối với ứng dụng hoặc khi máy chủ bị tấncông dưới dạng Ddos Nói cách khác, người kiểm thử cần trả lời câu hỏi: Sốlượng người truy cập cùng lúc là bao nhiêu sẽ đánh sập hệ thống? Hay đơngiản hơn là khi lượng người truy cập tăng lên ở các mức khác nhau, ứng dụngcòn hoạt động ổn định hay không? Trả lời được các câu hỏi trên sẽ giúp cho

Trang 29

ứng dụng Web khi đưa vào hoạt động tránh được những rủi ro không đáng có

và lường trước những nguy cơ có thể xảy ra

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

Ứng dụng Web là một trong những loại ứng dụng có nguy cơ bị tấn công caonhất Vì vậy, ngoài việc đảm bảo ứng dụng chạy đúng, ổn định cần phải kiểm tranghiêm ngặt khả năng bảo mật của ứng dụng Các công việc cần làm có thể kể đếnnhư: Kiểm tra độ tin cậy của việc phân quyền sử dụng trên ứng dụng Đưa lỗi vàobằng cách truyền các tham số không hợp lệ trên URL hay trong các form nhập liệu

Lỗ hổng SQL Injection được khai thác mạnh nhất thông qua các thành phần trên.Kiểm tra khả năng truy cập trái phép đối với những thư mục bị cấm trên máy chủ củaứng dụng Kiểm tra hoạt động các bộ lọc (validation) khi sử dụng chức năng uploadtệp tin, thư mục của ứng dụng (nếu có) Kiểm tra độ xác thực khi nhập CAPTCHAtrong ứng dụng (nếu có)

1.4 Giới thiệu công cụ kiểm thự tự động Selenium

1.4.1 Kiểm thử tự động

Kiểm thử tự động là thực hiện kiểm thử phần mềm một cách tự động các bước trongmột kịch bản kiểm thử bằng một chương trình đặc biệt với rất ít hoặc không có sự tương táccủa con người, giúp cho người thực hiện việc kiểm thử phần mềm không phải lặp đi lặp lạicác bước nhàm chán Công cụ kiểm thử tự động có thể lấy dữ liệu từ file bên ngoài (Excel,csv…) nhập vào ứng dụng, so sánh kết quả mong đợi với kết quả thực tế và xuất ra báo cáokết quả kiểm thử Kiểm thử tự động sẽ được sử dụng khi dự án không đủ tài nguyên (thờigian, nhân lực và chi phí), phải thực hiện kiểm thử hồi quy khi sản phẩm được sửa đổi hoặcnâng cấp và cần kiểm thử lại các tính năng đã thực hiện tốt trước đó, kiểm tra khả năng vậnhành của sản phẩm trong các môi trường đặc biệt (đo tốc độ xử lý trung bình ứng với mỗiyêu cầu, xác định khả năng chịu tải tối đa, kiểm tra các cơ chế an ninh và an toàn, )

Ưu điểm của kiểm thử tự động và kiểm thử thủ công:

Trang 30

Kiểm thử Điểm mạnh Điểm yếu

Thủ công - Cho phép tester thực

hiện việc kiểm thửkhám phá

- Thích hợp kiểm tra

sản phầm lần đầutiên

- Giảm được chi phí

ngắn hạn

- Tốn thời gian Đối

với mỗi lần release, người kiểm thử vẫn phải thực hiện lại một tập hợp các test case đã chạy dẫn đến sự mệt mỏi và lãng phí effort

trường hợp phải test nhiều lần cho một case, có tính ổn định

và tin cậy cao hơn

so với kiểm thử thủ công

- Có thể thực hiện các

thao tác lặp đi lặp lại(nhập dữ liệu, click, check kết quả…) giúp tester không phải làm những việcgây nhàm chán và

- Kiểm thử thủ công

là không thể thay thế vì người ta không thể tự động hóa mọi thứ

Bảng 1 1: So sánh ưu nhược điểm của kiểm thử thủ công và kiểm thử tự động

1.4.2 Một số công cụ kiểm thử tự động hỗ trợ kiểm thử ứng dụng Website

 Ranorex: Công cụ kiểm thử tự động cho các ứng dụng Web, desktop và di động Chỉ với một tài khoản, người dùng có thể sử dụng Ranorex để kiểm thử cho 3 loại ứng

Trang 31

dụng kể trên Việc tích hợp này sẽ giúp rút ngắn thời gian khi kiểm thử ứng dụng được thiết kế chạy trên nhiều nền tảng khác nhau Tuy nhiên, bản trả phí của Ranorex khá đắt, lên tới 3500$/năm.

 WebLoad: Cho phép thực hiện kiểm thử khả năng chịu tải và độ chịu lỗi của ứng dụng Web bằng cách sử dụng Ajax, Adobe Flex, NET, Oracle Forms, HTML5 và nhiều công nghệ khác Điểm mạnh của WebLoad là là dễ sử dụng với các tính năng như cho phép ghi/phát lại dựa trên DOM, tương quan tự động và ngôn ngữ kịch bản Javascript Công cụ này hỗ trợ thử nghiệm hiệu suất quy mô lớn với các kịch bản phức tạp và đưa ra những phân tích rõ ràng

 Apache Jmeter: Đây là một công cụ phát triển trên mã nguồn mở Apache Jmeter được coi như một công cụ kiểm thử hiệu năng, có khả năng tích hợp với kế hoạch kiểm thử Ngoài việc kiểm thử hiệu năng, Apache JMeter còn có thể sử dụng để kiểm tra các chức năng của ứng dụng Web

 Selenium: Là một trong những công cụ kiểm thử tự động ứng dụng Web mạnh mẽ nhất hiện nay Selenium script có thể chạy trên hầu hết các trình duyệt hiện nay như

IE, Chrome, Firefox, Safari, Opera và các hệ điều hành phổ biến như Windows, Mac, Linux Trong thực tế, người ta thường sử dụng Selenium dưới dạng Add-on tích hợp trong trình duyệt Firefox, kết hợp cùng với Firebug để kiểm thử ứng dụng Web một cách hiệu quả nhất Tuy chỉ có thể ghi lại (Record) hành động trên trình duyệt

Firefox, nhưng có thể phát lại (Playback) trên nhiều trình duyệt phổ biến khác Vì là công cụ mã nguồn mở nên Selenium có ưu thế lớn so với các công cụ kiểm thử tự động khác: có cộng đồng hỗ trợ mạnh mẽ và không phải trả phí bản quyền Công cụ này hỗ trợ khá nhiều ngôn ngữ lập trình Web phổ biến hiện nay Ngoài ra, Selenium được phát triển bởi Selenium team từ Google nên người dùng hoàn toàn yên tâm về chất lượng và độ tin cậy của Selenium

1.4.3 Công cụ kiểm thử tự động Selenium

 Khái quát về Selenium

Trang 32

Selenium là một công cụ hỗ trợ kiểm thử tự động cho các ứng dụng Web Selenium

hỗ trợ kiểm thử trên hầu hết các trình duyệt phổ biến hiện nay như Firefox, InternetExplorer, Safari, Google Chorme … cũng như các hệ điều hành chủ yếu như Windows,Linux, Mac, Selenium cũng hỗ trợ một số lớn các ngôn ngữ lập trình Web phổ biến hiệnnay như C#, Java, Perl, PHP, Python, Ruby, Công cụ này có thể kết hợp thêm với một sốcông cụ khác như Junit và TestNG

Selenium cho phép người dùng mô phỏng các hoạt đọng phổ biến được thực hiển bởingười dùng cuối: nhập văn bản vào các trường dữ liệu, chọn giá trị thả xuống và nhấp vàoliên kết trong trang web… Selenium cũng cung cấp nhiều điều khiển khác như di chuột, thựcthi các TestScript tùy ý

 Các thành phần của Selenium

Selenium là một bộ công cụ hỗ trợ kiểm thử tự động các tính năng của ứng dụng trênnền Web, bao gồm 4 thành phần: Selenium IDE, Selenium Grid, Selenium 1.0 ( haySelenium Remote Control – Selenium RC) và Selenium 2.0 ( hay Selenium WebDriver).Mỗi loại có một vai trò cụ thể trong việc hỗ trợ sự phát triển của tự động hóa kiểm thử ứngdụng web

Selenium IDE được phát triển dưới hình thức add-on của Firefox Chúng ta chỉ có thể

Record trên trình duyệt FireFox, nhƣng bù lại, chúng ta có thể Playback trên các trình duyệnkhác nhƣ là IE, Chrome… Selenium có thể sinh code tự động hoặc nạp các đoạn mã viếttay Công cụ này cung cấp chức năng “thu và chạy lại” – Record and Playback Sau đó chạylại các câu lệnh này để kiểm thử Chức năng này rất hữu dụng giúp tiết kiệm thời gian viếtkịch bản kiểm thử Selenium IDE còn cho phép lưu kịch bản đã thu dưới nhiều loại ngônngữ lập trình khác nhau như Java, PHP, C#, Ruby…

Selenium Remote Control là một framework kiểm thử cho phép thực hiện nhiều hơn

và tuyến tính các hành động trên trình duyệt Nó cho phép cho phép các nhà phát triển tựđộng hóa kiểm thử sử dụng một ngôn ngữ lập trình cho tính linh hoạt tối đa và mở rộngtrong việc phát triển logic thử nghiệm Công cụ này có thể nhận các test script được thu bởi

Trang 33

Selenium IDE, cho phép chỉnh sửa, cải tiến linh động bằng nhiều ngôn ngữ lập trình khácnhau Sau đó khởi động một trong các trình duyệt Web được chỉ định để thực thi kiểm thửtrực tiếp trên trình duyệt đó Selenium RC còn cung cấp khả năng lưu lại kết quả kiểm thử;cung cấp một API (Application Programming Interface) và thư viện cho mỗi ngôn ngữ được

hỗ trợ: HTML, Java, C#, Perl, PHP, Python và Ruby Khả năng sử dụng Selenium RC vớimột ngôn ngữ lập trình bậc cao để phát triển các trường hợp kiểm thử cũng cho phép kiểmthử tự động được tích hợp với một dự án xây dựng môi trường tự động

Selenium-Grid là một hệ thống hỗ trợ người dùng thực thi test script trên nhiều trình

duyệt một cách song song mà không cần phải chỉnh sửa test script Thực hiện phương phápkiểm tra phân bổ, phối hợp nhiều Selenium RC để có thể thực thi trên nhiều trình duyệt Webkhác nhau trong cùng một lúc nhằm giảm thiểu thời gian thực hiện

Selenium WebDriver là sự kế thừa từ Selenium Remote Control, làm việc trực tiếp với

trình duyệt ở mức hệ điều hành, cho phép gửi lệnh trực tiếp đến trình duyệt và xuất ra kếtquả

sử dụng các điều kiện, vòng lặp… khiến cho test script trở nên chính xác hơn SeleniumWebDriver còn được phát triển tốt hơn để hỗ trợ cho các trang Web động do các phần tửtrong một trang Web động có thể thay đổi bất cứ lúc nào, ngay cả khi trang đó không được

Ngày đăng: 08/08/2022, 12:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5]. Daniel Galin, “Software Quality Assurance From Theory to Implementation”, 2004, published by Israel’s leading publishers, pages 205 – 235 Sách, tạp chí
Tiêu đề: Software Quality Assurance From Theory to Implementation
[1]. Phạm Ngọc Hùng, Trương Anh Hoàng, và Đặng Văn Hưng. Giáo trình kiểm thử phần mềm - tháng 1 năm 2014.Tiếng Anh Khác
[2]. David Burns. Selenium 1.0 Testing Tools: Beginner's Guide Paperback – November 11, 2010. published by Packt Publishing Ltd Khác
[3]. David Burns. Selenium 2 Testing Tools: Beginner's Guide Paperback – October 19, 2012. published by Packt Publishing Ltd Khác
[4]. Hans-Erik Eriksson, Magnus Penker, Brian Lyons, and David Fado, UML 2 Toolkit, 2003, published by Wiley Publishing, pages 24-45 and 337-460 Khác
[6]. Mike O'Docherty, Object Oriented Analysis & Design: Understanding System Development with UML 2.0, pages 123-147, 430-452, 2005Danh mục các Website tham khảo Khác

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w