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 1Em 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 2LỜ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 3MỤ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 41.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 6DANH 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 7Hì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 8MỞ ĐẦ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 9Chươ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 10CHƯƠ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 11kiể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 12thử 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 13Unit 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 14phầ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 16thử 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 17cầ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 18Nhì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 191.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 20Kiể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 21trì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 24là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 26nơ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 27Bướ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 28Hình 2 2 Set up tài khoản
Trang 29Bướ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 30Hì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 31Hình 2.5 Form đăng nhập
Bước 2: Click Online Store và chọn Theme
Trang 32Hình 2.6 Chọn theme
Trang 33Bướ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 34Hì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 35thi 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 36LoadRunner 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 382.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 39Selenium 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 40mâ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