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

Sử dụng jmeter để kiểm thử

54 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

Định dạng
Số trang 54
Dung lượng 3,21 MB

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

Nội dung

1.3 Mục đích đề tài Mục đích lựa chọn đề tài của chúng em là tìm hiểu những kiến thức tổng quan về phần mềm, có thể viết testcase và kiểm thử Website và tìm hiểu về các công cụ kiểm thử

Trang 1

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ

-□□&□□ -THỰC TẬP CƠ SỞ

KIỂM THỬ WEBSITE

(Nhóm 72)

Giảng viên hướng dẫn: Ths Nguyễn Đức Hiếu

Sinh viên thực hiện: Nguyễn Trọng Hiếu – AT140613

Vũ Hồng Việt – AT140552Nguyễn Đắc Thành – AT140442

Hà Nội, 2020

Trang 2

LỜI NÓI ĐẦU

Trong thời buổi công nghệ thông tin có mặt khắp các lĩnh vực, các tổ chức cá nhân, doanh nghiệp ngày càng phát triển mạnh mẽ Nhu cầu sử dụng các phần mềm để thực hiện các công việc được nhanh chóng, chính xác và hiệu quả ngày càng tăng Việc đảm bảo chất lượng phần mềm ngày càng trở lên quan trọng Bên cạnh các phần mềm truyền thống, người ta còn sử dụng các phần mềm chạy trên nền web Chính vì điều đó website ngày càng được sử dụng rộng rãi

Ngoài ra, để đáp ứng nhu cầu chia sẻ thông tin, cũng như truyền đạt thông tin một cách nhanh chóng và tiếp cận với nhiều người nhất thì website chính là phương tiện có khả năng làm tốt nhất công việc đó

Ngày nay, các website được phát triển một cách cực kỳ mạnh mẽ và nhanh chóng Tuy nhiên, đi cùng với sự phát triển vượt bậc và tiện lợi như thế thì cũng có không ít các trở ngại dẫn đến việc website không được hoạt động một cách hiệu quả nhất Do đó, cần thiết phải kiểm thử và đảm bảo chất lượng của website

Với sự hướng dẫn của thầy Nguyễn Đức Hiếu, nhóm chúng em thực hiện đề tài

“Kiểm thử website” và thực hiện trên một sản phẩm website được bọn e chọn Do hạn chế về mặt kiến thức cho nên không thể tránh khỏi sai sót trong quá trình làm báo cáo, rấtmong được sự giúp đỡ và chỉ dạy của thầy và các bạn

Chúng em xin chân thành cảm ơn!

MỤC LỤC

Trang 3

DANH MỤC ẢNH 5

DANH MỤC BẢNG 6

PHẦN 1: MỞ ĐẦU 7

1.1 Tầm quan trọng của việc kiểm thử 7

1.2 Lý do chọn đề tài 7

1.3 Mục đích đề tài 8

PHẦN 2: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 8

2.1 Khái niệm kiểm thử phần mềm 8

2.1.1 Khái niệm kiểm thử phần mềm 8

2.1.2 Một số khái niệm liên quan 8

2.2 Vai trò và mục tiêu kiểm thử phần mềm 9

2.2.1 Vai trò kiểm thử phần mềm 9

2.2.2 Mục tiêu kiểm thử phần mềm 10

2.3 Các mức độ kiểm thử 10

2.5 Phân biệt Retesting và Regression Testing 12

2.6 Quy trình kiểm thử phần mềm 13

2.7 Các chiến lược kiểm thử 14

PHẦN 3: KIỂM THỬ WEBSITE 16

3.1 Kiểm thử tự động 16

3.1.1 Khái niệm kiểm thử tự động 17

3.1.2 Mục đích kiểm thử tự động 17

3.1.3 Ưu nhược điểm kiểm thử tự động 17

3.1.4 Quy trình kiểm thử tự động 19

3.2 Kiểm thử Website 20

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

3.2.2 Thành phần bên trong trang Web 21

3.2.3 Tại sao cần kiểm thử Website 21

3.3 Những phương pháp kỹ thuật khi kiểm thử Website 22

Trang 4

3.3.1 Kiểm thử chức năng (Functional testing) 22

3.3.2 Kiểm thử hiệu suất (Performance testing) 25

3.3.3 Kiểm thử bảo mật 25

3.4 Các công cụ kiểm thử tự động Website 26

3.4.1 Công cụ Selenium 26

3.4.2 Công cụ Apache Jmeter 29

PHẦN 4: THỰC NGHIỆM 34

4.1 Đặc tả một số chức năng 34

4.1.1 Chức năng đăng ký 34

4.1.2 Chức năng đăng nhập 37

4.2 Testcase 39

4.2.1 Testcase Đăng ký 39

4.2.2 Testcase Đăng nhập 44

4.3 Sử dụng Selenium để kiểm thử chức năng 46

4.3.2 Kiểm thử chức năng Đăng Nhập 46

4.3.1 Kiểm thử chức năng Đăng Kí 50

4.5 Sử dụng JMeter để kiểm thử hiệu năng 53

DANH MỤC TÀI LIỆU THAM KHẢO 55

Trang 5

DANH MỤC Ả

Hình 3 1: https://vnexpress.net 20

Hình 3 2: : Giao diện web selenium 27

Hình 3 3: Tải xuống Selenium IDE 27

Hình 3 4: Tiện ích > Selenium 28

Hình 3 5: Giao diện khởi tạo Selenium 28

Hình 3 6: Jmeter tạo người dùng ảo lên máy chủ web 30

Hình 3 7: Giao diện web JMeter 32

Hình 3 8: Folder bin của JMeter 33

Hình 3 9: Giao diện mặc định của JMeter 33

Y Hình 4 1: Giao diện đăng ký 34

Hình 4 2: Giao diện đăng nhập 37

Hình 4 3: Kịch bản test chức năng đăng ký 46

Hình 4 4: Kết quả test đăng ký thành công 47

Hình 4 5:Kết quá test đăng kí Email không đúng định dạng: 47

Hình 4 6: Kết quả test đăng kí thiếu thông tin 49

Hình 4 7:Kết quả test đăng ký Email đang tồn tại 49

Hình 4 8: Kịch bản test đăng nhập 50

Hình 4 9: Kết quả test đăng nhập thành công 51

Hình 4 10: Kết quả test đăng nhập bị sai thông tin 51

Hình 4 11: Kết quả test đăng nhập để rỗng thông tin 52

Hình 4 12: Kết quả test đăng nhập mật khẩu để rỗng thông tin 52

Hình 4 13: Kết quả test đang nhập mật khẩu sai 53

Hình 4 14: Kịch bản kiểm thử hiệu năng 54

Hình 4 15: Aggregate Report 55

Trang 6

DANH MỤC BẢNG

Bảng 2 1: : Retesting và Regression Testing 12

Bảng 2 2: Quy trình kiểm thử 14

Bảng 3.1: Quy trình kiểm thử tự động……… …

Bảng 4 1: Đặc tả chức năng đăng ký 35

Bảng 4 2: Đặc tả chức năng đăng nhập 38

Bảng 4 3: Testcase Đăng ký 39

Bảng 4 4: Testcase Đăng nhập 44

Y

PHẦN 1: MỞ ĐẦU

1.1 Tầm quan trọng của việc kiểm thử

Kiểm thử phần mềm là hoạt động cần thiết vì không có bất cứ một sản phầm phần mềm nào được tạo ra một cách hoàn hảo, không có lỗi Một số những lỗi sẽ không gây ảnh hưởng nhiều đến sản phẩm tuy nhiên có một số lỗi rất lớn cần phải được sửa chữa kịp thời Chúng ta cần kiểm tra tỉ mỉ mọi thứ, bất cứ thứ gì chúng ta tạo ra bởi vì mọi thứ luôn không hoàn hảo 100%

1.2 Lý do chọn đề tài

Website ra đời đã mở ra hướng mới cho việc phát triển các ứng dụng trên Internet Website kết hợp sử dụng nhiều công nghệ khác nhau, cho phép hai ứng dụng dùng chung một ngôn ngữ, độc lập hệ điều hành trao đổi được với nhau thông qua môi trường mạng Điểm khác biệt lớn nhất và đặc trưng nhất của một trang Web là có thể liên kết được với các trang Web khác, và các trang Web khác ấy lại liên kết với rất nhiều các trang Web khác nữa tạo thành một mạng lưới liên kết khổng lồ trên toàn thế giới Tuy nhiên, nó mang đến cho các nhà kiểm thử và phát triển phần mềm nhiều thách thức

Sự phức tạp, tính linh hoạt và phụ thuộc các ứng dụng vào một dịch vụ, thiếu thử nghiệm là một trong những thách thức mà các nhà phát triển Website phải đối mặt Vì

Trang 7

vậy, nhu cầu kiểm thử Website ngày càng tăng lên và trở thành thiết yếu đối với dự án phần mềm.

Các lỗi là nguyên nhân chính của năng suất thấp và là kết quả của những sai xót trong suốt vòng đời phát triển của phần mềm Những lỗi này bao gồm mội lỗi thực thi, các lỗi bảo mật, thực hiện sai chức năng, lỗi sụp đổ hệ thống… càng sớm phát hiện vấn

đề thì càng dễ sửa lỗi và giảm thời gian, chi phí cho phần mềm

Nói chung, các nhà phát triển, nhà nghiên cứu, những chuyên gia dựa vào thực nghiệm kiểm tra tính đảm bảo các chức năng dịch vụ, độ tin cậy của Website, cung cấp giải pháp kiểm thử tự động Ngoài ra, khả năng tương tác, an ninh và các vấn đề liên quan đều có ảnh hưởng đến cả nhà sản xuất và người sử dụng

1.3 Mục đích đề tài

Mục đích lựa chọn đề tài của chúng em là tìm hiểu những kiến thức tổng quan về phần mềm, có thể viết testcase và kiểm thử Website và tìm hiểu về các công cụ kiểm thử

tự động để giúp cho việc kiểm thử nhanh chóng và hiệu quả hơn Hơn thế nữa, thực hiện

đề tài này sẽ giúp cho chúng em có những kiến thực bổ ích để phục vụ cho công việc trong tương lai

PHẦN 2: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

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

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

Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phâm hoặc dịch vụ được kiểm thử Hiểu theo cách đơn giản hơn, kiểm thử phần mềm là quá trình tìm thất bại hoặc chứng tỏ việc tiến hành của phần mềm là đúng đắn

Trang 8

2.1.2 Một số khái niệm liên quan

• Chất lượng phần mềm (Software quality): là mức độ mà một hệ thống, thành phần hay quy trình đáp ứng các yêu cầu của đặc tả phần mềm, các nhu cầu mong đợi của kháchhàng hoặc người sử dụng

• Đảm bảo chất lượng phần mềm (Software quality assurance): là một quy trình có

kế hoạch và hệ thống của tất cả các hành động cần thiết để cung cấp các thông tin đầy đủ

để đảm bảo các sản phẩm có phù hợp với các yêu cầu về kỹ thuật hay không Mục đích cuối cùng là để đánh giá quy trình sản xuất sản phẩm phần mềm

• Xác nhận (Validation): là quá trình đánh giá một hệ thống hay cấu phần trong hay cuối của quá trình phát triển để xác định xem nó đáp ứng yêu cầu quy định

• Xác minh, kiểm chứng (Verification): là quá trình đánh giá một hệ thống hay thànhphần để xác định xem các sản phẩm của một giai đoạn phát triển nhất định đáp ứng các điều kiện áp đặt tại lúc bắt đầu của giai đoạn đó Xác minh thường là hoạt động có tính

kỹ thuật cao hơn, sử dụng những tri thức về các yêu cầu, đặc tả phần mềm Xác nhận thường phụ thuộc vào tri thức về lĩnh vực tương ứng Cụ thể là, tri thức về ứng dụng của phần mềm được viết Ví dụ, xác nhận của phần mềm về máy bay yêu cầu tri thức từ kỹ sưhàng không và phi công

• Lỗi (Error): Lỗi là những vấn đề mà con người mắc phải trong quá trình phát triển các sản phẩm phần mềm

• Sai (Fault): Sai là kết quả của lỗi, hay nói khác đi, lỗi sẽ dẫn đến sai

• Thất bại (Failure): Thất bại xuất hiện khi một lỗi được thực thi

• Sự cố (Incident): Khi thất bại xuất hiện, nó có thể hiển thị hoặc không, tức là rõ ràng hoặc không rõ ràng đối với người dùng hoặc người kiểm thử Sự cố là triệu chứng liên kết với một thất bại và thể hiện cho người dùng hoặc người kiểm thử về sự xuất hiện của thất bại này

Trang 9

• Ca kiểm thử (Test case): Ca kiểm thử gồm một tập các dữ liệu đầu vào và một xâu các giá trị đầu ra mong đợi đối với phần mềm, mục đích là dựa vào đó để kiểm tra xem phần mềm có thỏa các yêu cầu đặt ra hay không

• Kịch bản kiểm thử (Test script): Một kịch bản kiểm thử là một nhóm mã lệnh dạngđặc tả kịch bản dùng để tự động hóa một quy trình hay một ca kiểm tra, giúp cho việc kiểm tra nhanh hơn, hoặc cho những trường hợp mà kiểm tra bằng tay sẽ rất khó khăn hoặc không khả thi

2.2 Vai trò và mục tiêu kiểm thử phần mềm

2.2.2 Mục tiêu kiểm thử phần mềm

 Phát hiện càng nhiều lỗi càng tốt trong thời gian kiểm thử xác định trước

 Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả yêu cầu của nó

 Xác thực chất lượng kiểm thử phần mềm đã dùng chi phí và nỗ lực tối thiểu

 Tạo các testcase chất lượng cao, thực hiện kiểm thử hiệu quả và tạo ra các báo cáo vấn đề đúng và hữu dụng

2.3 Các mức độ kiểm thử

Một sản phẩm phần mềm từ khi bắt đầu phát triển đến khi hoàn thành và đưa đến người dùng cuối phải trải qua bốn mức kiểm thử

Trang 10

Hình 2 1: Các mức độ kiểm thử phần mềm

Kiểm thử đơn vị (Unit Test)

Một đơn vị là một thành phần phần mềm nhỏ nhất mà ta kiểm tra được Nó bao gồmcác hàm (Function), thủ tục (Procedure), lớp (Class) hoặc các phương thức (Method) Kiểm tra đơn vị được thực hiện để kiểm tra xem các module riêng lẻ của mã nguồn

có hoạt động đúng hay không Tức là kiểm tra từng đơn vị của ứng dụng một cách riêng biệt bởi lập trình viên trong môi trường phát triển Đây là thử nghiệm module Unit testing là kiểu kiểm thử hộp trắng (White box testing)

Kiểm thử tích hợp (Intergration Test)

Là cấp độ kiểm thử phần mềm trong đó các đơn vị riêng lẻ được kết hợp và thử nghiệm dưới dạng một nhóm Một dự án phần mềm bao gồm nhiều module, được lập trình bởi nhiều người khác nhau Kiểm thử tích hợp tập trung vào kiểm tra truyền dữ liệu giữa các module (Tích hợp các hàm, các màn hình với nhau theo từng chức năng) Mục đích nhằm phát hiện lỗi giao tiếp xảy ra giữa các Unit cũng như lỗi của từng Unit

Kiểm thử hệ thống (System Test)

Là một mức độ kiểm thử phần mềm khi các module và tích hợp module đã được kiểm thử thành công

Trang 11

Điểm khác nhau giữa kiểm thử tích hợp và kiểm thử hệ thống là kiểm thử hệ thống chú trọng các lỗi trên toàn hệ thống, còn kiểm thử tích hợp chú trọng sự giao tiếp giữa các đơn vị hoặc đối tượng khi chúng làm việc cùng nhau Thông thường phải thực hiện kiểm thử đơn vị và tích hợp để đảm bảo mọi Unit và sự tương tác giữa chúng hoạt động chính xác trước khi thực hiện kiểm thử hệ thống Kiểm thử hệ thống bao gồm kiểm thử chức năng và phi chức năng

Kiểm thử hệ 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 với mục tiêu là đánh giá phần mềm có tuân thủ với đặc tả yêu cầu

Kiểm thử chấp nhận (Acceptance Test)

Mức kiểm thử này giống với kiểm thử hệ thống nhưng thường được khách hàng thực hiện kiểm tra, mục đích là xem phần mềm có đáp ứng yêu cầu của khách hàng chưa

và có thể chấp nhận hay không chấp nhận bàn giao sản phẩm

Trong kiểm thử chấp nhận chia ra 2 loại:

Alpha: Là việc kiểm thử hoạt động chức năng thực tế hoặc giả lập do người

dùng/khách hàng tiềm năng hoặc một nhóm kiểm tra độc lập tại nơi sản xuất phần mềm Alpha testing thường được dùng cho phần mềm đóng gói sẵn để bán (Ví dụ:

MS office, window, chương trình diệt virus) là một hình thức kiểm thử nội bộ,

trước khi phần mềm được tiến hành kiểm thử beta

Beta: Được thực hiện sau Alpha testing Các phiên bản của phần mềm được biết

như các phiên bản của beta, chúng được phát hành tới một số lượng người dùng bên ngoài nhóm sản xuất phần mềm Sản phầm được phát hành đến một số nhóm người để kiểm tra nhiều hơn nữa có thể chắc chắn rằng sản phẩm có một số lỗi

2.5 Phân biệt Retesting và Regression Testing

Bảng 2 1: Retesting và Regression Testing

Trang 12

Retesting Regression TestingRe-testing được thực hiện nhằm đảm bảo

các test case bị lỗi đã được pass trong

bản build cuối cùng sau khi lỗi được fix

Regresstion Testing được thực hiện nhằm xác nhận một chương trình hoặc một thay đổi mã gần đây không làm ảnh hưởng đến các chức năng hiện có

Re-testing được thực hiện trên cơ sở các

bản sửa lỗi

Mục đích của Regression Testing là những sự thay đổi mã không làm ảnh hưởng đến những chức năng đã tồn tạiXác minh lỗi là một phần của Re-testing Xác minh lỗi không phải là một phần của

Regression Testing

Ưu tiên của Re-testing cao hơn

regression testing, vì nó được thực hiện

trước khi kiểm thử hồi quy

Dựa trên dự án và nguồn lực sẵn có, Regresstion Testing có thể thực hiện song song với Re-testing

Không thể thực hiện kiểm thử tự động

với Re-testing

Có thể thực hiện kiểm thử tự động trong Regression Testing, manual testing có thể tốn kém và tốn thời gian

Re-testing là thử nghiệm có kế hoạch Regression Testing là thử nghiệm chungRe-testing thực hiện trên các test case

Re-testing thực thi một lỗi với dữ liệu và

môi trường giống nhau với những đầu

vào khác nhau với một bản build mới

Regression Testing chỉ được thực hiện khi có bất kỳ sự sửa chữa hoặc thay đổi nào được thực hiện trong project hiện cóTest case của Re-testing không thể được

xác định trước khi bắt đầu test

Test case của Regression Testing có thể thu được từ spec, hướng dẫn sử dụng, và báo cáo lỗi liên quan đến những vấn đề

đã sửa

Trang 13

2.6 Quy trình kiểm thử phần mềm

Kiểm thử phần mềm bao gồm nhiều giai đoạn với sự phối hợp của nhiều bê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ểm thử 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à khi nà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ách khá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ực hiệ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ổng quát bằng sơ đồ sau:

Bảng 2 2: Quy trình kiểm thử

Trang 14

2.7 Các chiến lược kiểm thử

Trong lĩnh vực kiểm thử phần mềm có rất nhiều các chiến lược được áp dụng hiện nay Về cơ bản có 3 chiến lược chính được áp dụng một cách phổ biến và rộng rãi nhất cùng với các ưu nhược điểm của nó Ba chiến lược đó là:

Kiểm thử hộp trắng

Kỹ thuật kiểm thử hộp trắng hay còn gọi là “kiểm thử cấu trúc” là kỹ thuật kiểm thử dựa vào thuật toán, cấu trúc mã nguồn bên trong của chương trình với mục đích đảm bảo rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện ít nhất một lần Người kiểm thử truy cập vào mã nguồn chương trình và kiểm thử nó, lấy đó làm cơ sở để thực hiện việc kiểm thử Kiểm thử hộp trắng bao gồm các công việc cơ bản: Kiểm thử đường dẫn, kiểm thử luồng điều khiển, kiểm thử nội bộ (xác nhận các tham số, vòng lặp), kiểm thứ tính năng (kiểm tra thời gian xứ lý, dữ liệu cụ thế) Tuy nhiên, việc kiểm thử hộp trắng tồn tại khá nhiều hạn chế như: không thể đảm bảo rằng chương trình đã tuân theo đặc tả, khó phát hiện được các lỗi do dừ liệu, thiếu đường dẫn, v.v Như vậy, không thể chỉ sử dụng kiểm thứ hộp trắng để kiểm thử chương trình

Trang 15

Hình 2 2: Kiểm thử hộp trắng

Kiểm thử hộp đen

Là kỹ thuật kiểm thử dựa trên đầu vào và đầu ra của chương trình mà không quan tâm tới mã nguồn bên trong được viết ra sao Với kỳ thuật này, kiểm thử viên xem phần mềm như là một hộp đen Để thực hiện, kiểm thử viên sẽ xây dựng các nhóm giá trị đầu vào sao cho chúng có thể thực hiện đầy đủ các chức năng cần có của chương trình Kiểm thử hộp đen sử dụng các phương pháp: phân tích giá trị biên, kiểm thử tính bền vừng, kiểm thử trường hợp xấu nhất, kiếm thử phân lớp tương đương miền dữ liệu đầu vào, đầu

ra, kiểm thứ giá trị đặc biệt, kiểm thử dựa trên bảng quyểt định Tất cảc ác phương pháp trên đều dựa trên thông tin xác định về các thành phần đang được kiểm thử

Hình 2 3: Kiểm thử hộp đen

Trang 16

Kiểm thử hộp xám

Kiểm thử hộp xám là phương pháp kiểm thử phần mềm được kết hợp giữa phương

pháp kiểm thử hộp trắng (White Box) và hộp đen (Black Box) Trong kiểm thử hộp xám,

cấu trúc bên trong sản phẩm chỉ được biết một phần người kiểm thử có thể truy cập vào cấu trúc dữ liệu bên trong thuật toán của chương trình với mục đích để thiết kế các test case, nhưng khi kiểm thử thì thực hiện kiểm tra như người dùng cuối hoặc là ở mức hộp đen

Ví dụ khi code của 1 module nào đó được xem xét (Phương pháp White Box

Testing) để thiết kế test case và khi kiểm tra thực tế sẽ thực hiện kiểm tra trên giao diện

người dùng (Phương pháp Black Box Testing).

Trang 17

3.1.1 Khái niệm kiểm thử tự động

Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trong một kịch bản kiểm thử Kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử

3.1.2 Mục đích kiểm thử tự động

Kiểm thử phần mềm tự động với mục đích:

 Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử - Tăng độ tin cậy

 Giảm sự nhàm chán cho con người

 Rèn luyện kỹ năng lập trình cho kiểm thử viên - Giảm chi phí cho tổng quá trình kiểm thử Khi nào cần kiểm thử tự động?

 Không đủ tài nguyên: Khi số lượng TestCase quá nhiều mà kiểm thử viên không thể hoàn tất trong thời gian cụ thể - Kiểm tra hồi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt và những tính năng đã sửa Tuy nhiên, việc này khó đảm bảo về mặt thời gian

 Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt: Đo tốc độ trung bình xử lý một yêu cầu của Web server Xác định số yêu cầu tối đa được xử lý bởi Web Server Xác định cấu hình máy thấp nhất mà PM vẫn có thể hoạt động tốt

3.1.3 Ưu nhược điểm kiểm thử tự động

 Ưu điểm:

 Độ tin cậy cao(Reliability): Nhờ sự ổn định vượt trội của công cụ kiểm thử

tự động so với con người, đặc biệt trong trường hợp có quá nhiều test cases cần được thực thi, nên độ tin cậy của kiểm thử tự động thường cao hơn so với kiểm thử thủ công

 Khả năng lặp (Repeatability): Hãy cùng xem xet một ví dụ: Trong một ngàythời tiết xấu chúng ta phải thực thi một test case với 50 bộ dữ liệu đầu vào khác nhau Nếu thực thi cách thủ công, ngồi 21 trước màn hình, nhập dữ liệu, click click , check check … trong 50 lần có lẽ bạn sẽ gục ngã sớm trên bàn làm việc của mình NHƯNG, nếu bạn thực thi bằng kiểm thử tự

Trang 18

động, chỉ cần nhập dữ liệu vào file excel ( or csv, …) cho script chạy và ngồi rung đùi cho tới khi nhận được báo cáo Với độ ổn định cao, bạn hoàn toàn có thể tin tưởng vào kết quả thực thi của công cụ kiểm thử tự động Quả là một viễn cảnh lý tưởng hơn nhiều

 Khả năng tái sử dụng (Reusability): Với một bộ kiểm thử tự động, chúng ta

có thể sử dụng cho nhiều phiển bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng

 Nhanh (Fast): Đây là điều không cần phải bàn cãi, nếu cần 5 phút để thực thi một test case cách thủ công, có thể bạn cần chưa đầy 30s để thực thi cách tự động

 Chi phí thấp (Cost Reduction): Nếu áp dụng kiểm thử tự động đúng cách, chúng ta có thể tiết kiệm được rất nhiều chi phí, thời gian và nhân lực (Khi nào nên áp dụng kiểm thử tự động sẽ được nói ở cuối bài

 Nhược điểm:

 Khó mở rộng, khó bảo trì (Poor scalability and maintainability): Trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động là khó hơn nhiều so với kiểm thử cách thủ công Số lượng công việc phải làm để mở rộng phạm vi cho kiểm thử tự động là nhiều hơn và khó hơn kiểm thử thủ công Cũng vậy, để cập nhật một test case thủ công, chúng ta chỉ cần mở ra

và gõ, rất đơn giản Nhưng kiểm thử tự động lại không đơn giản như vậy, cập nhật hay chỉnh sửa yêu cầu rất nhiều công việc như debug, thay đổi dữ liệu đầu vào, và cập nhật code mới

 Khả năng bao phủ thấp(Low coverage): Chính vì việc khó ứng dụng, khó

mở rộng, cũng như đòi hỏi quá nhiều kỷ năng lập trình nên độ bao phủ của kiểm thử tự động khá thấp (xét trên góc nhìn toàn dự án)

 Vấn đề công cụ và nhân lực (Technology vs people issues): Cho đến nay công cụ hỗ trợ kiểm thử tự động đã có những bước phát triển mạnh mẽ, chúng ta có các công cụ rất tốt như QTP, Selenium, Test Complete, LoadTest, Jmeter, Visual Studio, … Nhưng nhìn chung vẫn còn rất nhiều mặt hạn chế Ngoài ra nguồn nhân lực đạt yêu cầu cũng không nhiều

Trang 19

3.1.4 Quy trình kiểm thử tự động

Bảng sau mô tả rõ hơn các bước thực hiện kiểm thử tự động :

Bảng 3 1: Quy trình kiểm thử tự động

3.2 Kiểm thử Website

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

Kiểm thử Website là một phần cả kiểm thử phần mềm Vì vậy, các công cụ kiểm thử cho phần mềm cũng sẽ được ứng dụng để kiểm thử Website Tuy nhiên, người kiểm thử không được áp dụng cứng nhắc những phương pháp đó mà cần linh hoạt, biến nó thành kiểm thử Website một cách thông minh hơn

Trang 20

Hình 3 1: https://vnexpress.net

Kiểm thử là công việc quan trọng đánh giá chất lượng của một sản phẩm và Web cũng không ngoại lệ Các phương pháp kiểm thử tập trung vào đánh giá các chức năng yêu cầu Tuy nhiên, không thể nào tập trung vào được hết các chức năng yêu cầu Bởi có rất nhiều chức năng quan trọng cho người sử dụng như là: tính hiệu quả, tính dễ sử dụng,

độ tin cậy, tính bảo mật… Những yêu cầu và mong đợi của người sử dụng là những vấn

đề hay gặp phải và đòi hỏi cần phải thay đổi trong suốt quá trình ta xây dựng một trang Web Vì thế , cần thiết phải phát triển một chiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổng thể rộng lớn của những yêu cầu, chức năng cho một trang Web, qua đó có thể cài đặt ứng dụng và tránh các rủi ro

3.2.2 Thành phần bên trong trang Web

Gồm 3 thành phần chính:

 Thành phần phía trình chủ: Ví dụ như các trình chủ Web, trình chủ cơ sở

dữ liệu, trình chủ ứng dụng, ngôn ngữ đánh dấu, kết nối Web đến cơ sở dữliệu và các chương trình mở rộng của trình chủ Web

Trang 21

 Thành phần trình khách: Trình duyệt Web và các thành phần

Addon/Plug-in

 Kiến trúc hệ thống: Trong hệ thống trang Web, các thành phần được nhómlại thành các cụm dịch vụ liên quan, dưới đây ta tiến hành xem xét hệ thống Web dưới hai dạng:

 Hệ thống khách chủ truyền thống: Một ứng dụng điển hình gồm có 4 phần: Mã nguồn giao diện người dùng, mã nguồn xử lý logic, mã nguồn dịch vụ truy cập dữ liệu, lưu dữ liệu

 Hệ thống khách chủ trên Web: Gồm: Máy khách (dịch vụ người dùng), máy chủ (dịch vụ xử lý) và các thành phần dịch vụ dữ liệu (máy chủ)

3.2.3 Tại sao cần kiểm thử Website

 Các trang Web cùng những ứng dụng của nó đưa ra nhiều thử thách đối với các nhà phát triển khác nhau

 Chất lượng của trang Web về cơ bản phụ thuộc vào các thành phần kể trên vàkhả năng tương tác giữa chúng Kiểm thử là một trong những công vệc quan trọng của quá trình phát triển Web tạo ra các sản phẩm Web tốt nhất Vì vậy

mà việc kiểm thử cũng cần phải có phương pháp, hệ thống riêng

 Kiểm thử nhằm vào việc tìm ra các lỗi, thiếu xót trong ứng dụng Vậy vấn đề

ở đây là chúng ta cần phải linh hoạt khi áp dụng làm cho những phương phápnày phù hợp, thích ứng với việc kiểm thử các trang Web

Và ở đây chúng ta sẽ đề cập tới những giải pháp, phương thức và công cụ cho kiểm thử Web.

3.3 Những phương pháp kỹ thuật khi kiểm thử Website

3.3.1 Kiểm thử chức năng (Functional testing)

Kiểm thử chức năng thường sử dụng kỹ thuật kiểm thử hộp đen nào đó, đặc tả dựa theo trang Web

Trang 22

Mục đích kiểm thử là tìm ra các lỗi về mặt chức năng, bao gồm cả nhiều lỗi về chức năng rất quan trọng, chứng minh chức năng của trang Web không đúng với đặc tả ban đầu

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

3.3.1.1 Kiểm thử giao diện

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ản thiế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ện của ứng dụng Web sử dụng phần mềm Photoshop) để lập trình viên dễ dàng xây dựng cũng như khách hàng có thế biết trước ứng dụng của mình sc hiến thị ra sao Đây cũng là tài liệu không thể thiếu cho kiểmthử viên so sánh, đối chiếu giữa thiết kế và nội dung thực tế của ứng dụng hiển thị trên trình duyệt

Mục đích: Kiểm chi chỉ ra các lỗi, chứng minh giao diện của trang Web không đúng với đặc tả yêu cầu

Các giao diện chính bao gồm: Giao diện web server và server ứng dụng:

 Lỗi chính tả, font chữ, font size…

 Giá trị thể hiện

 Cách sắp xếp thông tin, hình ảnh…

 Các thanh, các tabs, các mục chi tiết như thế nào?

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

Trang 23

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…

3.3.1.2 Kiểm thử liên kết (Links)

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

Liên kết bên trong một cấu trúc siêu văn mà điểm đến không tồn tại một nút (các trang web, hình ảnh,vv) hoặc được gọi là liên kết hỏng và đại diện nổi tiếng và thường xuyên xảy ra sai sót trong các ứng dụng Web

Để kiểm tra cho chính xác của các trang liên kết (link kiểm tra), tất cả các liên kết được hệ thống theo sau bắt đầu trên một trang bắt đầu, và sau đó được nhóm trong một

đồ thị liên kết ( bản đồ trang web)

Khi chạy một thói quen kiêm tra liên kết, người ta thường thấy các liên kết không chỉ là điểm đến không tồn tại trang, nhưng cũng có các trang không được interlinked với những người khác hoặc cái gọi là các trang mồ côi Những trang mồ côi có thể được đạt đến thông qua một liên kết, nhưng không có một liên kết đến cấu trúc siêu văn bản

Để đơn giản cho người sử dụng nó không rõ ràng nơi để đi tới, để họ rời bỏ trang web Các trang là thiết kế lý tưởng để họ kết thúc bằng một đề nghị của nơi người đọc có thể đi tiếp theo

Ngoài ra, khi vượt qua các liên kết, người ta thường có thế tìm thấy dữ liệu bô sung

để cung cấp chi dẫn tiềm năng lồi, ví dụ, độ sâu và bề rộng của các cơ cấu chuyển hướng,khoảng cách giữa hai tramg liên quan đến các trang, được đo bằng số lượng các liên kết, hoặc lần tải của các trang

3.3.1.3 Kiểm thử định dạng sử dụng trong trang Web

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?

Trang 24

 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 giaodiệ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 bởi các công cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)

3.3.1.4 Kiểm thử 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

3.3.2 Kiểm thử hiệu suất (Performance testing)

3.3.2.1 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

3.3.2.1 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

Trang 25

dùng đối với ứng dụng hoặc khi máy chủ bị tấn cô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ẽ đánhsập hệ thống? Hay đơn giả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ụng cò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 ứ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ó the xảy ra.

3.3.3 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 cao nhấ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 tra nghiê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ể đến như:

 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ào bằ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 upload tệp tin, thư mục của ứng dụng (nếu có)

 Kiểm tra độ xác thực khi nhập CAPTCHA trong ứng dụng (nếu có)

3.4 Các công cụ kiểm thử tự động Website

Có rất nhiều các công cụ được dùng để kiểm thử Website: Auto Testing Web

Application, Selenium IDE, Qicktest professional(QTP), Functionaly testing, Weblink Validator, Load runner, Jmeter… Sau đâu chúng em xin giới thiệu một số công cụ tiêu biểu được dùng để kiểm thử Website:

Trang 26

3.4.1 Công cụ Selenium

3.4.1.1 Selenium IDE

- 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…

3.4.1.2 Ưu và nhược điểm của Selenium

 Ưu điểm

 Là công cụ mã nguồn mở

 Đơn giản, dễ cài đặt, dễ làm việc

 Sử dụng miễn phí

 Dễ dàng ghi và phát lại các thao tác của người dùng với trình duyệt

 Các lựa chọn trường thông minh sẽ sử dụng ID, name hoặc Xpath khi cần thiết

 Tự động hoàn chỉnh cho tất cả các lệnh Selenium thường gặp.Gỡ lỗi và thiết lập các điểm dừng

 Lưu các kiểm thử như là với các định dạng khác nhau (Ví dụ: HTML, PHP…).Hỗ trợ các tệp tin selenium user-extensions.jsDễ dàng điểu chỉnh thông qua các plugin

 Nhược điểm

 Không thể đảm bảo bất kỳ add-in nào được yêu cầu nếu selenium không thểnhận ra các đối tượng

 Hỗ trợ được cung cấp cho Selenium là rất ít

3.4.1.3 Cài đặt Selenium IDE

Bước 1: Mở trang chủ của selenium http://seleniumhq.org/download/

Trang 27

Hình 3 2: : Giao diện web selenium

Bước 2: Chọn phiên bản phù hợp (Ở đây mình chọn cài đặt trên Chrome)

Cài đặt selenium IDE giống như cài đặt một Tiện ích trên cửa hàng Chrome của trình duyệt Chrome

Hình 3 3: Tải xuống Selenium IDE

 Click “ Thêm vào Chrome “

Ngày đăng: 09/09/2022, 17:14

w