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

Kiểm thử sản phẩm thương mại điện tử shopify sử dụng một số công cụ kiểm thử tự động

88 435 2

Đ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 88
Dung lượng 2,29 MB

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

Nội dung

Qua thực tế cho thấy, việc áp dụng kiểm thử tự động hợp lý sẽ mang lại thành công cho hoạt động kiểm thử phần mềm.. CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM1.1 Kiểm thử phần mềm Kiểm thử

Trang 1

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 phát triển phần mềm và ứng dụng di động – trường Đại Học Công nghệ thông tin và truyền thông đã hết lòng hỗ trợ em trong thời gian thực hiện đồ án.

Thái Nguyên, ngày 2 tháng 6 năm 2016

Sinh viên:

Cao Thị Thanh Hiền

Trang 2

LỜI CAM ĐOAN

Nhận thức được đồ án tốt nghiệp là sản phẩm hoàn thiện của sinh viên Công Nghệ Thông Tin khi ra trường, cần tới sự miệt mài của bản thân và nhất là

sự hướng dẫn chỉ bảo tận tình của các thầy cô giáo Em đã tổng hợp các kiến thức được học cùng kinh nghiệm và số liệu khảo sát thực tế nhằm hoàn thành đồ án tốt nghiệp của mình

Em xin cam đoan:

Những nội dung trong đồ án tốt nghiệp là do em thực hiện dưới sự trực tiếp hướng dẫn của Thạc sĩ Nguyễn Thu Phương

Mọi tham khảo dùng trong đồ án được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố và danh mục tài liệu tham khảo

Nội dung đồ án của em không sao chép nội dung cơ bản của bất kỳ đồ án nào và là sản phẩm của chính bản thân em nghiên cứu thực tế xây dựng lên

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin cam đoan chịu hoàn toàn trách nhiệm trước hội đồng bảo vệ

Thái Nguyên, ngày 2 tháng 6 năm 2016

Sinh viên thực hiện

Cao Thị Thanh Hiền

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC HÌNH ẢNH 5

MỞ ĐẦU 7

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 9

1.1 Kiểm thử phần mềm 9

1.2 Phân loại và các kỹ thuật kiểm thử 9

1.3 Kiểm thử tĩnh và kiểm thử động 9

1.3.1 Kiểm thử tĩnh – Static Testing 9

1.3.2 Kiểm thử động - Dynamic testing 9

1.4 Kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử hộp xám 10

1.4.1 Kiểm thử hộp đen – Black Box Testing 10

1.4.2 Kiểm thử hộp trắng – White box testing 10

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

1.5 Các cấp độ kiểm thử phần mềm 11

1.5.1 Kiểm thử đơn vị – Unit test 11

1.5.2 Kiểm thử tích hợp – Intergration Test 12

1.5.3 Kiểm thử hệ thống – System Test 14

1.5.4 Kiểm thử chấp nhận sản phẩm – Acceptance Test 16

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

1.6 Kiểm thử phần mềm tự động 18

1.6.1 Khái quát về kiểm thử phần mềm tự động 18

1.6.2 Kiểm thử tự động là gì? 18

1.6.3 Tại sao phải kiểm thử tự động? 18

1.6.4 Qui trình kiểm thử tự động 19

Trang 4

1.6.5 Ưu và nhược điểm của kiểm thử tự động 19

1.6.6 Các trường hợp nên áp dụng kiểm thử tự động 20

1.7 Kết luận chương 21

CHƯƠNG 2: TÌM HIỂU SHOPIFY VÀ CÁC CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 22

2.1 Giới thiệu Shopify 22

2.1.1 Khái niệm 22

2.1.2 Đặc trưng cơ bản của Shopify 22

2.1.3 Cách tạo một Store trên Shopify 23

2.1.4 Hướng dẫn cài một theme Shopify 25

2.2 Khảo sát các công cụ kiểm thử tự động trên nền Web 27

2.2.1 Nghiên cứu công cụ kiểm thử Selenium 30

2.2.2 Nghiên cứu công cụ kiểm thử hiệu năng Jmeter 42

2.3 Tổng kết chương 2 50

CHƯƠNG 3: KIỂM THỬ SẢN PHẨM THƯƠNG MẠI ĐIỆN TỬ SHOPIFY 51 3.1 Bài toán thử nghiệm 51

3.2 Sự khác nhau giữa kịch bản kiểm thử tự động và kịch bản kiểm thử thủ công 52

3.3 Kịch bản kiểm thử thủ công 53

3.3.1 Thiết kế Test Plan 53

3.3.2 Chức năng đăng nhập 57

3.3.3 Kiểm tra hiệu năng của website 58

3.4 Kịch bản kiểm thử tự động 60

3.4.1 Kiểm thử chức năng đăng nhập với Selenium IDE 60

3.4.2 Kiểm tra hiệu năng của website với Jmeter 62

3.5 Tổng kết chương 3 64

KẾT LUẬN 65

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

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1 Sơ đồ các cấp kiểm thử 11

Hình 2 1 Tạo một tài khoản 24

Hình 2 2 Set up tài khoản 24

Hình 2 3 Lựa chọn Store 25

Hình 2.4 Trang chủ Shopify khi tạo thành công một Store 25

Hình 2.5 Form đăng nhập 26

Hình 2.6 Chọn theme 26

Hình 2 7 Upload Theme 27

Hình 2 8 Click nút Publish theme 27

Hình 2 9 Addons Selenium IDE 32

Hình 2 10 Selenium IDE đã cài đặt thành công 33

Hình 2.11 Giải thích các tính năng trên Selenium IDE 33

Hình 2.12 Test case dưới dạng HTML 35

Hình 2 13 Vị trí nút Record trên giao hiện Selenium IDE 36

Hình 2.14 Save Test case 38

Hình 2 15 Tạo một Test suite mới 39

Hình 2 16 Giải thích vị trí kết quả sau khi thực thi 40

Hình 2 17 Lệnh xác minh (verify) một yếu tố trên trang web 41

Hình 2 18 Giao diện Jmeter 44

Hình 2 19 Các bước để thực hiện Performance Test 45

Hình 2 20 Giải thích các thông số của Thread 45

Hình 2 21 Sự khác biệt của Thread Count và Loop Count 46

Hình 2 22 Thêm phần tử Jmeter 46

Hình 2 23 Nhập Name và Server Name 47

Hình 2 24 Tạo HTTP Request 47

Hình 2 25 Hiển thị kết quả theo Summany Report 48

Trang 7

Hình 2 26 Hiển thị kết quả theo View Result Tree 49

Hình 2 27 Hiển thị kết quả theo View Result in Table 50

Hình 3 1 Giao diện trang chủ SuperShop 51

Hình 3 2 Sơ đồ Test 54

Hình 3 3 Chọn Inspect Element 58

Hình 3 4 Chọn tab Network 58

Hình 3 5 Kết quả thống kê 59

Hình 3 6 Kiểm tra tốc độ website 59

Trang 8

MỞ ĐẦU

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

Ngày nay, tự động hóa được ứng dụng ở rất nhiều lĩnh vực, mục đích thường rất đa dạng và tùy theo nhu cầu đặc thù của từng lĩnh vực Tuy nhiên điểm chung nhất vẫn là giảm nhân lực, thời gian và sai sót Ngành công nghệ thông tin

mà cụ thể là phát triển phần mềm cũng không ngoại lệ

Như chúng ta đã biết để tạo ra sản phẩm công nghệ thông tin hay phần mềm

có chất lượng thì hoạt động kiểm thử công nghệ phần mềm đóng vai trò rất quan trọng, trong khi đó hoạt động này lại tiêu tốn và chiếm tỷ trọng khá lớn công sức

và thời gian trong một dự án Do vậy nhu cầu tự động hóa quy trình kiểm thử phần mềm cũng được đặt ra

Qua thực tế cho thấy, việc áp dụng kiểm thử tự động hợp lý sẽ mang lại thành công cho hoạt động kiểm thử phần mềm Kiểm thử tự động giúp giảm bớt công sức thực hiện, tăng độ tin cậy, giảm sự nhàm chán và rèn luyện kỹ năng lập trình cho các kiểm thử viên

Đó là lý do em chọn đề tài “Kiểm thử sản phẩm thương mại điện tử Shopify sử dụng một số công cụ kiểm thử tự động” làm đồ án tốt nghiệp.

Mục đích của đồ án:

Đề tài tìm hiểu cơ sở lý thuyết về kiểm thử cũng như cách triển khai công

cụ kiểm thử phần mềm tự động để giảm nhân lực kiểm thử và đảm bảo chất lượng phần mềm hơn với công việc kiểm thử bằng tay Mục tiêu chính của đề tài là nghiên cứu giai đoạn nào cần áp dụng công cụ kiểm thử tự động, các yếu tố nào cần kiểm thử hiệu năng

Đối tượng và phạm vi nghiên cứu:

Nghiên cứu tổng quan về kiểm thử phần mềm, các kỹ thuật kiểm thử phần mềm tự động như Jmetter, Selenium IDE vào sản phẩm thương mại điện tử Shopify

Với mục tiêu đặt ra như vậy, những nội dung và kết quả nghiên cứu chính của luận văn được trình bày trong ba chương như sau:

Chương 1: Tổng quan về kiểm thử phần mềm.

Trang 9

Chương 2: Kiểm thử tự động trên nền Web

Chương 3: Tìm hiểu Shopify và các công cụ kiểm thử tự động

Phần kết luận đưa ra những đánh giá về những kết quả đạt được, hạn chế và thảo luận về huớng nghiên cứu tiếp của đồ án

Trong quá trình thực hiện đồ án, do thời gian cũng như trình độ của em còn

có những hạn chế nhất định nên không thể tránh khỏi những sai sót Rất mong nhận được sự góp ý của các thầy, cô giáo và các bạn để đồ án được hoàn thiện hơn

Em xin chân thành cảm ơn sự giúp đỡ tận tình của Th.s Nguyễn Thu Phương, các thầy trong trung tâm phát triển phần mềm và ứ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 đã giúp đỡ em trong quá trình học tập cũng như trong quá trình làm đồ án

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

1.1 Kiểm thử phần mềm

Kiểm thử phần mềm là quy trình được sử dụng để đánh giá, kiểm tra chất lượng phần mềm ở nhiều khía cạnh khác nhau dựa trên các yêu cầu của người sử dụng đối với sản phẩm phần mềm, nhằm đảm bảo phần mềm hoạt động tốt trong các môi trường, các trường hợp khác nhau

1.2 Phân loại và các kỹ thuật kiểm thử

Ta phân loại kiểm thử dựa vào các yếu tố: Chiến lược kiểm thử, phương pháp kiểm thử và kỹ thuật kiểm thử

Dựa vào chiến lược kiểm thử ta có thể phân chia kiểm thử thành hai loại: kiểm thử thủ công và kiểm thử tự động

Theo phương pháp tiến hành kiểm thử ta chia kiểm thử làm hai loại: kiểm thử tĩnh và kiểm thử động

Dựa vào kỹ thuật kiểm thử ta có thể phân chia kiểm thử thành ba loại: kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử hộp xám

1.3 Kiểm thử tĩnh và kiểm thử động

1.3.1 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ử tĩnh cũng có thể được tự động hóa Nó sẽ thực hiện kiểm tra toàn

bộ bao gồm các chương trình được phân tích bởi một trình thông dịch hoặc biên dịch mà xác nhận tính hợp lệ về cú pháp của chương trình

1.3.2 Kiểm thử động - Dynamic testing

Là phương pháp thử phần mềm thông qua việc dùng máy chạy chương trình

để điều tra trạng thái tác động của chương trình Đó là kiểm thử dựa trên các ca

Trang 11

kiểm thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chương trình.

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.4 Kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử hộp xám

1.4.1 Kiểm thử hộp đen – Black Box Testing

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

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

 Phân tích giá trị biên

 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: kiểm thử hộp trắng bao gồm mọi kiểm

Trang 12

thử tĩnh.

Phương pháp kiểm thử hộp trắng cũng có thể được sử dụng để đánh giá sự hoàn thành của một bộ kiểm thử mà được tạo cùng với các phương pháp kiểm thử hộp đen Điều này cho phép các nhóm phần mềm khảo sát các phần của 1 hệ thống

ít khi được kiểm tra và đảm bảo rằng những điểm chức năng quan trọng nhất đã được kiểm tra

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

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

Trang 14

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 của Unit Test là bảo đảm thông tin được xử lý

và xuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và chức năng của Unit Điều này thường đòi hỏi tất cả các nhánh bên trong Unit đều phải được kiểm tra để phát hiện nhánh phát sinh lỗi Một nhánh thường là một chuỗi các lệnh được thực thi trong một Unit Ví dụ: chuỗi các lệnh sau điều kiện If và nằm giữa then else là một nhánh Thực tế việc chọn lựa các nhánh để đơn giản hóa việc kiểm thử và quét hết Unit đòi hỏi phải có kỹ thuật, đôi khi phải dùng thuật toán để chọn lựa

Cùng với các mục kiểm thử khác, Unit Test cũng đòi hỏi phải chuẩn bị

trước các ca kiểm thử (Test case) hoặc kịch bản kiểm thử (Test script), trong đó

chỉ định rõ dữ liệu đầu vào, các bước thực hiện và dữ liệu đầu ra mong muốn Các Test case và Test script này nên được giữ lại để tái sử dụng

1.5.2 Kiểm thử tích hợp – Intergration Test

Integration test 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

Hai mục tiêu chính của Integration Test:

Trang 15

 Phát hiện lỗi giao tiếp xảy ra giữa các Unit.

 Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ (Subsystem) và cuối cùng là nguyên hệ thống hoàn chỉnh (System) chuẩn bị cho kiểm thử ở mức hệ thống (System Test).

Trong Unit Test, lập trình viên cố gắng phát hiện lỗi liên quan đến chức năng và cấu trúc nội tại của Unit Có một số phép kiểm thử đơn giản trên giao tiếp giữa Unit với các thành phần liên quan khác, tuy nhiên mọi giao tiếp liên quan đến Unit chỉ thật sự được kiểm tra đầy đủ khi các Unit tích hợp với nhau trong khi thực hiện Integration Test

Trừ một số ít ngoại lệ, Integration Test chỉ nên thực hiện trên những Unit đã được kiểm tra cẩn thận trước đó bằng Unit Test, và tất cả các lỗi mức Unit đã được sửa chữa Một số người hiểu sai rằng Unit một khi đã qua giai đoạn Unit Test với các giao tiếp giả lập thì không cần phải thực hiện Integration Test nữa Thực tế việc tích hợp giữa các Unit dẫn đến những tình huống hoàn toàn khác

Một chiến lược cần quan tâm trong Integration Test là nên tích hợp dần từng Unit Một Unit tại một thời điểm được tích hợp vào một nhóm các Unit khác

đã tích hợp trước đó và đã hoàn tất các đợt Integration Test trước đó Lúc này, ta chỉ cần kiểm thử giao tiếp của Unit mới thêm vào với hệ thống các Unit đã tích hợp trước đó, điều này sẽ làm cho số lượng can kiểm thử giảm đi rất nhiều, và sai sót sẽ giảm đáng kể

Có bốn 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

Trang 16

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 kỹ thuật.

 Kiểm thử hiệu năng (Performance Test): Kiểm thử việc vận hành của hệ

thống

 Kiểm thử khả năng chịu tải (Stress Test): Kiểm thử các giới hạn của hệ

thống

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

System Test bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợp thành công Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian Trong nhiều trường hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố, hoặc hệ thống nhúng Ở mức độ hệ thống, người kiểm thử cũng tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liên quan đến chất lượng của toàn hệ thống

Điểm khác nhau then chốt giữa Integration Test và System Test là System Test chú trọng các hành vi và lỗi trên toàn hệ thống, còn Integration Test chú trọng

sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau Thông thường ta phải thực hiện Unit Test và Integration Test để bảo đảm 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 System Test

Sau khi hoàn thành Integration Test, một hệ thống phần mềm đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ Tại thời điểm này, lập trình viên hoặc kiểm thử viên bắt đầu kiểm thử phần mềm như một hệ thống hoàn chỉnh Việc lập kế hoạch cho System Test nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu

System Test kiểm thử cả các hành vi chức năng của phần mềm lẫn các yêu

Trang 17

cầu về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật Mức kiểm thử này đặc biệt thích hợp cho việc phát hiện lỗi giao tiếp với phần mềm hoặc phần cứng bên ngoài, chẳng hạn các lỗi "tắc nghẽn" (deadlock) hoặc chiếm dụng bộ nhớ Sau giai đoạn System Test, phần mềm thường đã sẵn sàng cho

khách hàng hoặc người dùng cuối cùng kiểm thử chấp nhận sản phẩm (Acceptance Test) hoặc dùng thử (Alpha/Beta Test).

Đò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 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 (ví dụ nhiều người truy xuất cùng lúc) Stress Test tập trung vào các trạng thái tới hạn, các "điểm chết", các tình huống bất thường như đang giao dịch thì ngắt kết nối (xuất hiện nhiều trong kiểm tra thiết bị như POS, ATM )

 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

Trang 18

Nhìn từ quan điểm người dùng, các cấp độ kiểm thử trên rất quan trọng: Chúng bảo đảm hệ thống đủ khả năng làm việc trong môi trường thực.

Lưu ý là không nhất thiết phải thực hiện tất cả các loại kiểm thử nêu trên Tùy yêu cầu và đặc trưng của từng hệ thống, tuỳ khả năng và thời gian cho phép của dự án, khi lập kế hoạch, người Quản lý dự án sẽ quyết định áp dụng những loại kiểm thử nào

Trang 19

1.5.4 Kiểm thử chấp nhận sản phẩm – 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)

Acceptance Test có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trường hợp, các phép kiểm thử của System Test và Acceptance Test gần như tương

tự, nhưng bản chất và cách thức thực hiện lại rất khác biệt

Đối với những sản phẩm dành bán rộng rãi trên thị trường cho nhiều người

sử dụng, thông thường sẽ thông qua hai loại kiểm thử gọi là kiểm thử Alpha –

Alpha Test và kiểm thử Beta – Beta Test 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

Thực tế cho thấy, nếu khách hàng không quan tâm và không tham gia vào quá trình phát triển phần mềm thì kết quả Acceptance Test sẽ sai lệch rất lớn, mặc

dù phần mềm đã trải qua tất cả các kiểm thử trước đó Sự sai lệch này liên quan đến việc hiểu sai yêu cầu cũng như sự mong chờ của khách hàng Ví dụ đôi khi một phần mềm xuất sắc vượt qua các phép kiểm thử về chức năng thực hiện bởi nhóm thực hiện dự án, nhưng khách hàng khi kiểm thử sau cùng vẫn thất vọng vì

bố cục màn hình nghèo nàn, thao tác không tự nhiên, không theo tập quán sử dụng của khách hàng v.v

Gắn liền với giai đoạn Acceptance Test thường là một nhóm những dịch vụ

và tài liệu đi kèm, phổ biến như hướng dẫn cài đặt, sử dụng v.v Tất cả tài liệu đi kèm phải được cập nhật và kiểm thử chặt chẽ

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

Trang 20

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 Beizer định nghĩa đó là sự lặp lại các kiểm tra để chỉ ra rằng cách hoạt động của phần mềm không bị thay đổi, ngoại trừ tới mức như yêu cầu Hiển nhiên là sự thỏa hiệp phải được thực hiện giữa sự đảm bảo được đưa ra bởi kiểm thử hồi quy mỗi lần thực hiện một sự thay đổi và những tài nguyên được yêu cầu thực hiện điều đó

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, v.v …

Nguyên tắc 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

Trang 21

trình có thực hiện cái mà nó không cần phải thực hiện hay không.

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.6 Kiểm thử phần mềm tự động

1.6.1 Khái quát về kiểm thử phần mềm tự động

Kiểm thử phần mềm tốn nhiều chi phí nhân công, thời gian Trong một số

dự án, chi phí kiểm thử phần mềm chiếm 50% tổng giá trị của dự án Nếu cần ứng dụng an toàn hơn, chi phí kiểm thử còn cao hơn nữa

Do đó một trong các mục tiêu của kiểm thử là tự động hóa nhiều, nhờ đó

mà giảm thiểu chi phí, giảm lỗi, đặc biệt giúp việc kiểm thử hồi qui dễ dàng và nhanh chóng hơn

Tự động hóa việc kiểm thử là dùng phần mềm điều khiển việc thi hành kiểm thử, so sánh kết quả có được với kết quả mong muốn, thiết lập các điều kiện đầu vào, các kiểm soát kiểm thử và các chức năng báo cáo kết quả

1.6.2 Kiểm thử tự động là gì?

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ử

1.6.3 Tại sao phải 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

Trang 22

- 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 Test case 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à phần mềm vẫn có thể hoạt động tốt

1.6.4 Qui 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 1 1 Các bước thực hiện kiểm thử tự động

3 Chạy kịch bản

kiểm thử

Chạy kịch bản kiểm thử để kiểm tra phần mềm có đưa ra đúng như kết quả mong muốn không

4 Đánh giá kết quả Đánh giá kết quả sau khi chạy kịch bản kiểm thử

1.6.5 Ưu và nhược điểm của kiểm thử tự động

- Các ưu điểm có thể kể đến của kiểm thử tự động là:

Trang 23

 Kiểm thử chính xác và có thể bao quát thông tin

 Theo dõi được chính xác kết quả từng giai đoạn và các báo cáo tổng hợp

 Cần ít nhân lực trong quá trình kiểm thử

 Chu kỳ kiểm thử diễn ra trong thời gian ngắn

 Hiệu năng của kiểm thử các lớp vượt xa tầm với của kiểm thử thủ công

- Nhược điểm của kiểm thử tự động

 Chi phí cao cho việc chuyển giao công nghệ và đào tạo nhân viên

 Tốn chi phí đầu tư lớn cho việc phát triển công cụ kiểm thử tự động

 Tốn chi phí và thời gian cho việc tạo các kịch bản kiểm thử và bảo trì các kịch bản kiểm thử

 Giai đoạn chuẩn bị kiểm thử yêu cầu nhiều nhân lực

 Khu vực kiểm thử tự động có thể không bao quát đầy đủ, không áp dụng được trong việc tìm lỗi mới của phần mềm

1.6.6 Các trường hợp nên áp dụng kiểm thử tự động

Không phải lúc nào cũng nên áp dụng kiểm thử tự động trong việc kiểm thử phần mềm, vì nhiều khi chi phí và thời gian cho việc kiểm thử tự động còn lớn hơn nhiều so với kiểm thử thủ công

Dưới đây là một số trường hợp nên áp dụng phương pháp kiểm thử tự động

để đạt được hiệu quả cao về thời gian, chi phí cũng như chất lượng:

- Trường hợp không đủ tài nguyên: Là khi số lượng trường hợp kiểm thử

lặp lại quá nhiều trên nhiều môi trường kiểm thử khác nhau, không có đủ nguồn nhân lực để kiểm thử thủ công trong một giới hạn thời gian nào đó

- Trường hợp kiểm thử hồi qui: Trong quá trình phát triển phần mềm, nhóm

lập trình thường đưa ra nhiều phiên bản phần mềm liên tiếp để kiểm thử Thực tế cho thấy việc đưa ra các phiên bản phần mềm có thể là hàng ngày, mỗi phiên bản bao gồm những tính năng mới, hoặc tính năng cũ được sửa lỗi hay nâng cấp Việc

bổ sung hoặc sửa lỗi mã chương trình cho những tính năng ở phiên bản mới có thể

Trang 24

làm cho những tính năng khác đã kiểm tra tốt chạy sai mặc dù phần mã chương trình của nó không hề chỉnh sửa Để khắc phục điều này, đối với từng phiên bản, kiểm thử viên không chỉ kiểm tra chức năng mới hoặc được sửa, mà phải kiểm tra lại tất cả những tính năng đã kiểm tra tốt trước đó Điều này khó khả thi về mặt thời gian nếu kiểm thử thủ công.

- Trường hợp kiểm thử khả năng vận hành phần mềm trong môi trường đặc biệt: Đây là kiểm thử nhằm đánh giá xem vận hành của phần mềm có thỏa mãn

yêu cầu đặt ra hay không Thông qua đó kiểm thử viên có thể xác định được các yếu tố về phần cứng, phần mềm ảnh hưởng đến khả năng vận hành của hệ thống

Có thể liệt kê một số tình huống kiểm tra tiêu biểu thuộc loại này như sau:

 Đo tốc độ trung bình xử lý một yêu cầu của web server

 Thiết lập 1000 yêu cầu, đồng thời gửi đến web server để kiểm tra tình huống 1000 người dùng truy xuất web cùng lúc

 Xác định số yêu cầu tối đa được xử lý bởi web server hoặc xác định cấu hình máy thấp nhất mà tốc độ xử lý của phần mềm vẫn có thể hoạt động ở mức cho phép

1.7 Kết luận chương

Trong chương này, ta đi vào tìm hiểu để có cái nhìn tổng quan về kiểm thử phần mềm, phân loại kiểm thử dựa vào các yếu tố: Chiến lược kiểm thử, phương pháp kiểm thử và kỹ thuật kiểm thử

- Dựa vào chiến lược kiểm thử ta có thể phân chia kiểm thử thành hai loại: kiểm thử thủ công và kiểm thử tự động

- Theo phương pháp tiến hành kiểm thử ta chia kiểm thử làm hai loại: kiểm thử tĩnh và kiểm thử động

- Theo phương pháp tiến hành kiểm thử ta chia kiểm thử làm hai loại: kiểm thử tĩnh và kiểm thử động

 Khái quát về công cụ kiểm thử phần mềm tự động: khái niệm, lý do, mục đích

Trang 25

 Dựa vào kỹ thuật kiểm thử ta có thể phân chia kiểm thử thành ba loại: kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử hộp xám.

Đồ án cũng tìm hiểu về quy trình phân phần mềm, các khái niệm về trường hợp kiểm thử (testcase), kịch bản kiểm thử (testscript) Quy trình phần mềm gồm các giai đoạn kiểm thử: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận sản phẩm và các phương pháp kiểm thử con người Chương 2

sẽ đi tìm hiểu khái quát về kiểm thử tự động, quy trình kiểm thử tự động, mục đích của việc kiểm thử tự động và các công cụ (tool) kiểm thử tự động chức năng, công

cụ kiểm thử hiệu năng cho các ứng dụng phần mềm

CHƯƠNG 2: TÌM HIỂU SHOPIFY VÀ CÁC CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 2.1 Giới thiệu Shopify

2.1.1 Khái niệm

Shopify là dịch vụ thương mại điện tử cho phép bất cứ ai cũng có thể dễ dàng bán trực tuyến, tại địa điểm bán lẻ của mình, và ở khắp mọi nơi Shopify cung cấp một cửa hàng chuyên nghiệp trực tuyến, giải pháp thanh toán chấp nhận thẻ tín dụng, và các ứng dụng Shopify POS để bán lẻ Shopify hiện quyền hạn hơn 80.000 nhà bán lẻ tại hơn 100 quốc gia khác nhau, bao gồm: Tesla Motors, Gatorade, Forbes, Tổ chức Ân xá Quốc tế, Bách khoa toàn thư Britannica, CrossFit, và nhiều hơn nữa

2.1.2 Đặc trưng cơ bản của Shopify

Shopify là ứng dụng tạo gian hàng điện tử rất đơn giản và nhanh chóng Bất

kể bạn là ai và đang bán sản phẩm gì, lập cửa hàng online và bán hàng không còn

là điều gì xa vời với Shopify

Trong khi có khá nhiều lựa chọn để tạo cửa hàng thương mại điện tử thì ứng dụng Shopify là một giải pháp thương mại điện tử được khá nhiều người bán hàng lựa chọn bởi sự đơn giản và tiện lợi của nó

Tạo cửa hàng nhanh chóng, bán bất cứ mặt hàng gì cho khách hàng ở bất cứ

Trang 26

nơi đâu trên thế giới Nếu bạn đang tìm kiếm một “mặt bằng” để bắt đầu công việc kinh doanh của mình thì Shopify sẽ là lựa chọn không thể bỏ qua.

Shopify cung cấp một loạt các công cụ để giúp bạn thiết lập và điều hành doanh nghiệp Tùy thuộc vào các kế hoạch, có thể tìm thấy mọi thứ cần thiết để giới thiệu sản phẩm trực tuyến, để xử lý thanh toán, và để làm cho công việc cửa hàng Shopify cung cấp:

 Miễn phí và trả tiền các chủ đề từ Cửa hàng Theme Shopify để làm cho cửa hàng của bạn nổi bật và nhìn tuyệt vời

 Nhiều mẫu giao diện đẹp

 Linh hoạt và chứa nhiều ứng dụng đi kèm

 Ứng dụng miễn phí và chi trả từ Shopify App Store để mở rộng các chức năng hiện có của cửa hàng của bạn

 Shopify cổng thanh toán riêng để chấp nhận thanh toán thẻ tín dụng

 Cơ hội phát triển với các kênh bán hàng khác nhau Shopify của cũng một kế hoạch doanh nghiệp cho các thương gia đang bán ở âm lượng cao và có thể cảm thấy những ảnh hưởng của sự tích lũy phí giao dịch

 Một blog Shopify có hướng dẫn và các bài báo về việc chạy cửa hàng của bạn và kết nối với khách hàng của bạn

 Các chuyên gia trên toàn thế giới có thể giúp bạn thiết lập, thiết kế, và thị trường cửa hàng của bạn

 Một nhóm hỗ trợ chuyên dụng có sẵn 24/7 để trả lời câu hỏi của bạn không có vấn đề gì kế hoạch Shopify bạn đang ở trên

 Hỗ trợ SEO hiệu quả

2.1.3 Cách tạo một Store trên Shopify

Các bước tạo một store Shopify mới:

Bước 1: Truy cập trang https://www.shopify.com/ chọn Sign up

Bước 2: Nhập thông tin: Email, Password và Tên Store

Trang 27

Bước 3: Click nút Create your store

Hình 2 1 Tạo một tài khoản

Bước 4: Form Add an address to set up currencies and tax rates hiện lên

Nhập thông tin vào trong Form

Trang 28

Hình 2 2 Set up tài khoản

Trang 29

Bước 5: Click vào nút Next

Bước 6: Trên trang Tell us a little about yourself có thể lựa chọn sẵn sàng

để bán, giá bán hoặc có thể không cần lựa chọn

Hình 2 3 Lựa chọn Store

Bước 7: Click nút Enter my store để hoàn tất việc tạo một store trên Shopify

Trang 30

Hình 2.4 Trang chủ Shopify khi tạo thành công một Store

2.1.4 Hướng dẫn cài một theme Shopify

Các bước cài một theme Shopify

Bước 1: Mở cửa hàng trang web của admin và đăng nhập của bạn Nhập

email và mật khẩu của bạn sau đó nhấp vào nút Login để đăng nhập

Trang 31

Hình 2.5 Form đăng nhập

Bước 2: Click Online Store và chọn Theme

Trang 32

Hình 2.6 Chọn theme

Trang 33

Bước 3: Chọn Upload Theme Sau nó chọn tệp Theme từ nơi chứa tệp

theme Click vào nút Upload để load theme lên

Hình 2 7 Upload Theme

Bước 4: Click nút Publish theme để đưa theme lên

Trang 34

Hình 2 8 Click nút Publish theme

2.2 Khảo sát các công cụ kiểm thử tự động trên nền Web

Trung bình kiểm thử phần mềm chiếm đến 40% công sức của một dự án phát triển Tự động hóa là nhu cầu thiết yếu giúp giảm thiểu chi phí, giảm lỗi, đặc biệt giúp việc kiểm thử hồi qui dễ dàng và nhanh chóng hơn

Hiện nay có rất nhiều công cụ kiểm thử tự động như LoadRunner, Quick Test Pro, Selenium, Jmeter… mỗi công cụ đều có ưu điểm và nhược điểm riêng

 Quick Test Pro 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 testcase 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

 LoadRunner là một công cụ kiểm thử tự động thực hiện việc kiểm tra

hiệu năng của phần mềm Nó cho phép chúng ta tìm ra những lỗi về khả năng thực

Trang 35

thi bằng việc phát hiện nguyên nhân, chỗ làm cho phần mềm chạy chậm hoặc không đúng yêu cầu Đây là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và đưa ra giải pháp cải tiến Ứng dụng LoadRunner sẽ giúp giảm thời gian viết test script đến 80%, đó là nhờ nó cung cấp chức năng tự động phát sinh script mô tả lại các tình huống muốn kiểm tra.

 Selenium là một trong những công cụ kiểm thử phần mềm tự động mã

nguồn mở (open source test automation tool) mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng Web Selenium script có thể chạy được trên hầu hết các trình duyệt như IE, Mozilla FireFox, Chrome, Safari, Opera và hầu hết các hệ điều hành như Windows, Mac, Linux

 Jmeter là một công cụ chuyên dùng để kiểm tra hiệu năng của các ứng

dụng web, được viết bằng Java, JMeter không đòi hỏi kiến thức lập trình chuyên sâu để sử dụng Hiện nay ứng dụng này đã được cải tiến để có thể đo lường hiệu năng hoạt động của các đối tượng và giao thức sau: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, POP3

 So sánh ưu nhược điểm các công cụ kiểm thử tự động:

Quick Test Pro  Dễ sử dụng, bảo trì

 Hỗ trợ làm việc theo nhóm thông qua sự chia sẻ thư viện

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

 QTP chỉ chạy trên môi trường window

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

Trang 36

LoadRunner  Không cần cài đặt ở trên máy

chủ của ứng dụng cần kiểm tra

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

 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

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

 Kích cỡ file cài đặt rất lớn

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

sổ duy nhất

 SeleniumIDE cũng không ghi nhận tốt đối với cácwebsite sử dụng công nghệAjax

Jmeter  Rất nhẹ, không cần cài đặt,

miễn phí

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

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

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

Dựa vào từng dự án mà ta có thể lựa chọn các công cụ kiểm thử tự động phù hợp để giúp dự án mà ta kiểm thử mang lại lợi ích tốt nhất

Với dự án mà em thực hiện trong đồ án là kiểm thử sản phầm thương mại điện tử Shopify là một website bán hàng có chức năng giúp khách hàng đăng ký/ đăng nhập tài khoản và truy cập để mua hàng nên em chọn công cụ kiểm thử Selenium IDE để kiểm thử cho chức năng đăng nhập, và công cụ kiểm thử hiệu năng Jmeter để kiểm tra số lượng tối đa người dùng truy cập mà không xảy ra lỗi

Trang 38

2.2.1 Nghiên cứu công cụ kiểm thử Selenium

2.2.1.1Selenium là gì?

Selenium (thường được viết tắt là SE) là một phần mềm mã nguồn mở, được phát triển bởi Jason Huggins, sau đó được tiếp tục phát triển bởi nhóm ThoughtWorks vào năm 2004

Selenium là một bộ các công cụ hỗ trợ kiểm thử tự động các tính năng của ứng dụng web, bao gồm bốn phần: Selenium IDE, Selenium Remote Control (RC), Selenium Core và Selenium Grid

Selenium hỗ trợ kiểm thử trên hầu hết các trình duyệt web phổ biến hiện nay như Firefox, Internet Explorer, Googlechrome và hỗ trợ trên rất nhiều ngôn ngữ lập trình phổ biến như C#, Java, Python, PHP Không những vậy, Selenium còn có thể kết hợp với một số công cụ kiểm thử khác như Junit, Bromien, Nunit

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

Selenium gồm bốn thành phần chính, mỗi thành phần đều đóng một vai trò

cụ thể trong việc hỗ trợ kiểm thử các ứng dụng Web Các thành phần đó là:

Selenium IDE: là môi trường phát triển tích hợp cho việc xây dựng trường

hợp kiểm thử Selenium Nó hoạt động như một add-on của Firefox và cung cấp một giao diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử Selenium-IDE có tính năng thu lại kịch bản kiểm thử để tái sử dụng

Mặc dù Selenium-IDE chỉ là một Firefox add-on, nhưng các test case tạo ra bằng Selenium-IDE vẫn có thể chạy trên các trình duyệt khác bằng cách sử dụng Selenium-RC

Selenium Core: Công cụ này đã được tích hợp trong Selenium IDE

Selenium Core là một công cụ chạy các test script viết bằng Selenese Thế mạnh của công cụ này là có thể chạy test script trên hần hết các trình duyệt, nhưng lại yêu cầu được cài đặt trên máy chủ của ứng dụng web cần kiểm tra Điều này là không thể khi nhân viên kiểm thử không có quyền truy cập đến máy chủ

Trang 39

Selenium RC (Remote Control): Selenium-RC 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ộng trong việc phát triển logic thử nghiệm

Selenium-RC 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ới một ngôn ngữ lập trình bậc cao để phát triển các trường hợp thử nghiệm cũng cho phép thử nghiệm 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: Thực hiện phương pháp kiểm tra phân bố, phối hợp nhiều

kết quả của Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùng một lúc Cũng cho phép lưu lại kết quả kiểm tra

Đồ án trình bày cụ thể về bộ công cụ Selenium là Selenium IDE – công cụ xây dựng Test case tự động

2.2.1.3 Selenium IDE – Record and Playback Testcase

 Tổng quan về quá trình sinh Test case tự động

Trong quá trình phát triển dự án phần mềm, thường công việc tạo ra các Test case từ yêu cầu người dùng do các Tester phụ trách Nhưng không phải Tester nào viết các tài liệu Test case này cũng như nhau Vì vậy trong các công ty phần mềm cũng như các tổ chức thực hiện dự án phần mềm sẽ phát sinh một vấn

đề là: Tester nào viết tài liệu Test case tốt, có hiệu quả thì chất lượng phần mềm sẽ tốt hơn những dự án có các Tester viết Test case không tốt (có nhiều trường hợp test trùng lặp nhau) Vậy chúng ta phải chuẩn hóa và đồng bộ hóa để làm sao tạo ra Test case một cách hiệu quả và có chuẩn về chất lượng

Để làm điều này, chúng ta phải nghiên cứu các phương pháp và kỹ thuật để

tự động tạo ra các Test case Việc tạo ra Test case một cách tự động cũng làm giảm bớt công sức và thời gian của các tester, giúp giảm bớt chi phí phát triển phần mềm

Quá trình tạo ra các Test case sẽ giúp các Tester phát hiện ra các vấn đề

Trang 40

mâu thuẫn hoặc chưa rõ ràng của yêu cầu phần mềm Nếu bước này được làm sớm, các vấn đề có thể được loại bỏ sớm, tiết kiệm thời gian và nguồn lực

Vậy việc nghiên cứu các phương pháp và công cụ sinh Test case một cách

tự động từ yêu cầu người dùng rất hữu ích và cần thiết trong quá trình phát triển các dự án phần mềm Quá trình này nhằm mục đích tạo ra Test case một cách có hiệu quả, có chất lượng Giúp giảm bớt công sức và thời gian của các tester, làm giảm bớt chi phí phát triển phần mềm và chất lượng phần mềm được nâng cao hơn

 Cài đặt Selenium IDE

- Bước 1: Vào trình duyệt Firefox tìm đến phần cài đặt Trong mục tiện ích,

tìm kiếm tiện ích với từ khóa: “Selenium IDE”

- Bước 2: Ở tiện ích Selenium IDE click vào nút “Thêm vào firefox”

- Bước 3: Một pop up xuất hiện như hình:

Hình 2 9 Addons Selenium IDE

- Bước 4: Firefox thực hiện đếm ngược, nút Cài đặt chuyển sang trạng thái

active, có thế click được Selenium sẽ bắt đầu được cài đặt trong máy tính giống như 1 add-on của firefox

- Bước 5: Tiến trình cài đặt hoàn thành, hệ thống hỏi bạn có muốn khởi

động lại firefox không Click vào nút Restart Firefox sẽ đóng và mở lại

- Bước 6: Kiểm tra lại phần add-on của Firefox xem đã có Selenium chưa

Hiển thị như hình thì việc cài Selenium đã thành công

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] Roger S.Pressman, 1982, Software Engineering - A Practitioner’s Approach, Ph.D, McGraw-Hill, Inc Sách, tạp chí
Tiêu đề: Software Engineering - A Practitioner’s Approach
[2] William E. Perry,2000, Effective methods for Software Testing, Wiley Publishing, Indian Sách, tạp chí
Tiêu đề: Effective methods for Software Testing
[3] Ron Patton, 2001, Software Testing, Sam Publishing, Indian Sách, tạp chí
Tiêu đề: Software Testing
[4] 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
[5] 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
[6] Bộ môn Công nghệ phần mềm, 2013, 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.Website Sách, tạp chí
Tiêu đề: Bài giảng Công nghệ phần mềm
[1] nhanhnt, 2013, API Testing với Jmeter, from http://www.testingvn.com/viewtopic.php?f=96&t=7857 Sách, tạp chí
Tiêu đề: API Testing với Jmeter
[2] sao_mai, 2016, Hướng dẫn sử dụng Selenium IDE (tiếng việt), from http://forums.testervn.com/showthread.php?p=27837#post27837 Sách, tạp chí
Tiêu đề: Hướng dẫn sử dụng Selenium IDE (tiếng việt)
[3] VNTESTERS, 2013, Kiểm thử phần mềm trên các thiết bị di động, from https://vntesters.com/kiem-thu-phan-mem-tren-cac-thiet-bi-di-dong/ Sách, tạp chí
Tiêu đề: Kiểm thử phần mềm trên các thiết bị di động
[4] HuyenCham, 2015, So sánh một số công cụ kiểm thử ứng dụng web, from https://viblo.asia/NguyenThiHuyenCham/posts/d6BAMYV9Gnjz Sách, tạp chí
Tiêu đề: So sánh một số công cụ kiểm thử ứng dụng web

TỪ KHÓA LIÊN QUAN

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