3 1.1.3 Lĩnh vực hoạt động - Trí tuệ nhân tạo / máy học: • Phân tích ngôn ngữ tự nhiên NLP • Nhận dạng hình ảnh và video Object Detection • Nhận dạng tài liệu Document Parser • Nhận dạn
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA THỐNG KÊ – TIN HỌC
BÁO CÁO THỰC TẬP NGHỀ NGHIỆP NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ
CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN
ĐỀ TÀI:
KIỂM THỬ TỰ ĐỘNG TRÊN WEBSITE PRODUCT
STORE
Đơn vị thực tập : Công ty TMA Solution Bình Định
Giảng viên hướng dẫn : TS Hoàng Thị Thanh Hà
Trang 2LỜI CẢM ƠN
Lời nói đầu tiên cho phép em gửi lời chân thành sâu sắc cảm ơn tất cả thầy cô giáo trong khoa Thống kê - tin học, trường Đại học Kinh tế Đà Nẵng đã nhiệt tình giảng dạy và truyền đạt những kiến thức trong suốt thời gian qua Những kiến thức này không chỉ là nền tảng cho quá trình thực tập, nghiên cứu đề tài báo cáo thực tập mà còn là hành trang quý báu giúp em tự tin bước vào đời Đặc biệt là mentor Nguyễn Đức Thắng, em cũng xin gửi lời cảm ơn đến Ban giám đốc Công ty TMA Solution Bình Định và toàn thể đội ngũ anh chị nhân viên đã cho phép và tạo điều kiện thuận lợi cho em được thực tập tại công ty Em xin chân thành cảm ơn các anh chị đã trực tiếp hướng dẫn em trong suốt 10 tuần thực tập vừa qua, em đã được áp dụng các kiến thức lý thuyết đã được học trên ghế nhà trường cũng như tích lũy thêm được rất nhiều kiến thức về trình độ chuyên môn nghiệp vụ, kinh nghiệm thực tế trong công việc Qua đó, em đã phần nào biết được một số phương thức phục vụ cho ngành mà em đang theo học và cũng chính là công việc sau này của bản thân Em xin gửi lời chúc sức khỏe đến toàn thể các anh chị trong công ty Chúc công ty ngày càng thành công và phát triển
Trang 3LỜI CAM ĐOAN
Em xin cam đoan đề tài “Kiểm thử tự động hóa trên website Product Store” là kết quả nghiên cứu của cá nhân trên cơ sở nghiên cứu các lý thuyết đã học và dưới sự hướng dẫn của T.S Hoàng Thị Thanh Hà và mentor Nguyễn Đức Thắng Các kết quả nghiên cứu nêu trong báo cáo thực tập là trung thực và chưa từng được công bố trong bất kỳ công trình nghiên cứu nào Các tư liệu, tài liệu tham khảo từ các nghiên cứu trước đều được ghi chú dẫn nguồn đầy đủ Em xin hoàn toàn chịu trách nhiệm trước bộ môn, khoa và nhà trường
về sự cam đoan này
Trang 4MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ CÔNG TY TMA 2
1.1 GIỚITHIỆUTỔNGQUÁTVỀDOANHNGHIỆPTHỰCTẬP 2
1.1.1 Quá trình phát triển 2 1.1.2 Tầm nhìn và sứ mệnh 2 1.1.3 Lĩnh vực hoạt động 3
1.2.1 Vị trí thực tập 3 1.2.2 Cơ hội nghề nghiệp 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM (TESTER)
5
2.1.1 Kiểm thử phần mềm là gì ? 5 2.1.2 Kiểm thử phần mềm tự động là gì ? 5 2.1.3 Các kỹ năng cần khi kiểm thử phần mềm 6 2.1.4 Tầm quan trọng của kiểm thử phần mềm 6
2.2.1 Kiểm thử hộp trắng (White Box Testing) 6 2.2.2 Kiểm thử hộp đen (Black Box Testing) 7 2.2.3 Kiểm thử hộp xám (Gray Box Testing) 7
Trang 52.3.1 Kiểm thử đơn vị (Unit Testing) 8 2.3.2 Kiểm thử tích hợp (Integration Testing) 8 2.3.3 Kiểm thử hệ thống (System Testing) 9 2.3.4 Kiểm thử chấp nhận (Acceptance Testing) 9
CHƯƠNG 3 KIỂM THỬ TỰ ĐỘNG HÓA TRÊN WEB PRODUCT STORE
11
3.1.1 Selenium là gì ? 11 3.1.2 Các thành phần của Selenium 11 3.1.3 Selenium Webdriver 12
3.4.1 Yêu cầu phi chức năng 14
3.4.2 Yêu cầu chức năng 15
a Use case Sign up 16
b Use case Login/Logout 17
c Use case Add to Cart 19
d Use case Contact 21
Trang 6e Use case Place Order 22
3.5.2 Cài đặt môi trường kiểm thử 29
3.6.1 Kiểm thử chức năng Sign up 31 3.6.2 Kiểm thử chức năng Login/Logout 32 3.6.3 Kiểm thử kiểm thử chức năng Add to Cart 35 3.6.4 Kiểm thử kiểm thử chức năng Contact 37 3.6.5 Kiểm thử chức năng Place Order 39
Trang 7Hình 3.3 Trang web Product Store 14
Hình 3.4 Use case tổng quát 16
Hình 3.5 Use case Sign up 16
Hình 3.6 Màn hình Sign up 17
Hình 3.7 Use case Login/Logout 18
Hình 3.8 Màn hình Login 18
Hình 3.9 Use case Add to Cart 19
Hình 3.10 Màn hình thêm sản phẩm vào giỏ hàng 20
Hình 3.11 Màn hình sản phẩm đã được thêm vào và xóa sản phẩm ra khỏi giỏ hàng
Trang 8DANH MỤC BẢNG BIỂU
Trang 9hỗ trợ kiểm thử có khá nhiều ưu điểm như có thể kiểm thử trên nhiều trình duyệt,
hỗ trợ nhiều ngôn ngữ lập trình Đây là những công cụ tốt nhất cho kiểm tra web application đó Đó là lí do chọn đề tài Kiểm thử tự động trên website Product Store
2 Mục tiêu của đề tài
Đề tài này nghiên cứu về “Kiểm tra tự động hóa trên website Product Store” nhằm mục đích ứng dụng công cụ và kiến thức để viết kịch bản kiểm thử trên một ứng dụng, website cụ thể
3 Đối tượng và phạm vi nghiên cứu
Địa điểm: Công ty TMA Solution Bình Định Thời gian thực hiện: 19/6/2023 đến ngày 25/8/2023 Đối tượng kiểm thử: website Product Store
4 Kết cấu của đề tài
Đề tài được tổ chức gồm phần mở đầu, 3 chương nội dung và phần kết luận
- Mở đầu
- Chương 1: Tổng quan về công ty TMA
- Chương 2: Cơ sở lý thuyết Tester
- Chương 3: Kiểm thử tự động trên website Product Store
- Chương 4: Kết quả thực hiện
- Kết luận và hướng phát triển
Trang 102
CHƯƠNG 1 TỔNG QUAN VỀ CÔNG TY TMA
1.1 Giới thiệu tổng quát về doanh nghiệp thực tập
Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 4 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 400 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương
Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng
1.1.2 Tầm nhìn và sứ mệnh
Là trung tâm phần mềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, Công viên Sáng tạo TMA mang sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành một điểm đến của công nghệ 4.0 tại Việt Nam Công viên Sáng tạo TMA bao gồm Trung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâm Khoa học Dữ liệu, Học viện Công Nghệ
Trang 113
1.1.3 Lĩnh vực hoạt động
- Trí tuệ nhân tạo / máy học:
• Phân tích ngôn ngữ tự nhiên (NLP)
• Nhận dạng hình ảnh và video (Object Detection)
• Nhận dạng tài liệu (Document Parser)
• Nhận dạng quảng cáo (Brand Detection)
• Phân tích năng lực và hành vi học sinh (Student Analytics)
• Tối ưu hoạt động máy móc (Machine Optimization)
- Dữ liệu lớn / phân tích dữ liệu:
• Thiết kế hệ thống dữ liệu doanh nghiệp
• Thu thập và phân tích dữ liệu trong thời gian thực
Công việc của Tester bao gồm tạo ra các kịch bản kiểm thử, thực hiện các ca kiểm thử, tìm kiếm và ghi nhận các lỗi, sự cố hoặc không thỏa mãn yêu cầu, và tạo
Trang 124
báo cáo chi tiết về kết quả kiểm thử Có khả năng chỉ ra các lỗi và sự cố trong phần mềm, hiểu rõ yêu cầu của khách hàng và tích hợp kiến thức về thiết kế và phát triển phần mềm để đảm bảo sự hoạt động chính xác và nhất quán của sản phẩm
1.2.2 Cơ hội nghề nghiệp
Có cơ hội phát triển lớn, có thể làm việc ở môi trường làm việc trong nước
và có cơ hội đi làm tại các nước phát triển như Nhật, Mỹ, Canada
Mức lương: Tùy vào khả năng mà mức lương khởi điểm từ 5 triệu - 20 triệu
Trang 135
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM (TESTER)
2.1 Tổng quan về kiểm thử phần mềm
- Manual Testing (kiểm thử Thủ công)
- Automation Testing (kiểm thử Tự động)
2.1.2 Kiểm thử phần mềm tự động là gì ?
Kiểm thử phần mềm tự động còn được gọi với các tên khác là Automation Testing Kiểm thử phần mềm tự động có thể hiểu rất đơn giản là thay vì kiểm thử bằng tay thì ta dùng các công cụ để hỗ trợ thực hiện kiểm thử mà Tester phải làm (khởi động hệ thống, nhập dữ liệu đầu vào, kiểm tra so sánh với dữ liệu đầu ra và ghi kết quả)
Automation Testing đóng một vai trò quan trọng góp phần nâng cao hiệu quả kiểm thử, giảm thiểu lỗi cũng như sự nhàm chán với việc kiểm thử bằng tay trong
Trang 146
một thời gian dài và việc lặp đi lặp lại Kiểm thử tự động là một quá trình xử lý tự động các bước thực hiện một test case và được thực hiện bởi phần mềm là Automation Testing Tool
2.1.3 Các kỹ năng cần khi kiểm thử phần mềm
Để kiểm tra trên source code của các lập trình viên, các Tester cần phải hiểu một ít kiến thức về lập trình Cần phải có được những kỹ năng thiết kế, lập trình, phân tích và hiểu biết về các ứng dụng khác nhau của các phần mềm
Người làm công việc kiểm thử cũng cần có trình độ tiếng Anh để đọc, hiểu, viết được tài liệu chuyên ngành Tester phải có tính cẩn thận, tỉ mỉ, nhạy bén, cần phải phải học nhiều để có tầm nhìn rộng, biết được xu hướng thị trường để tư vấn
và đưa ra quan điểm của mình về sản phẩm
2.1.4 Tầm quan trọng của kiểm thử phần mềm
Tester là nghề vô cùng quan trọng, nó là một phần không thể thiếu và quan trọng trong kiểm thử phần mềm Hai chữ "kiểm thử" nghe có vẻ đơn giản, nhàn rỗi đây là một giai đoạn giúp cho sản phẩm được hoàn thiện nhằm đáp ứng yêu cầu đặt
ra của khách hàng Sản phẩm hoàn thiện đưa đến tay người dùng tăng thêm niềm tin và sự uy tín của công ty đối với khách hàng Nếu không có kiểm thử phần mềm thì phần mềm sẽ xảy ra lỗi Chính vì vậy, Tester là vị trí không thể thiếu và công việc này quyết định khá nhiều vào sự thành công chung của dự án
2.2 Các kỹ thuật kiểm thử phần mềm
2.2.1 Kiểm thử hộp trắng (White Box Testing)
Kiểm thử hộp trắng là kiểm tra mà các Tester tìm kiếm lỗi bên trong code, cấu trúc của mã, biết được hoạt động bên trong mã để tìm đoạn mã phù hợp Mục đích là kiểm thử bao phủ nhiều nhất các câu lệnh và các rẽ nhánh trong mã nguồn nếu có thể
Ưu và nhược điểm là dễ dàng tìm ra loại dữ liệu nào kiểm tra ứng dụng hiệu quả và tối ưu mã hóa Song kiểm thử hộp trắng có nhược điểm không xem được mọi ngóc ngách để tìm lỗi tiềm ẩn vì nhiều đường dẫn không được kiểm tra và khó thực
Trang 157
hiện vì yêu cầu các công cụ chuyên dụng như bộ phân tích mã và công cụ sửa lỗi
2.2.2 Kiểm thử hộp đen (Black Box Testing)
Kiểm thử hộp đen là kiểu kiểm tra mà Tester thực hiện kiểm tra không chú ý
gì đến code, nói một cách dễ hiểu là không có bất kỳ kiến thức về hoạt động bên trong của ứng dụng Việc kiểm tra xảy ra dựa trên các đặc tả bên ngoài như giao diện, cũng có thể hiểu như kiểm tra hành vi, chỉ hành vi bên ngoài của ứng dụng là được đánh giá và phân tích Mục đích là kiếm các trường hợp và chương trình không thực hiện theo các đặc tả của nó
Ưu và nhược điểm là phù hợp và hiệu quả với các đoạn mã lớn và truy cập
mã không cần thiết Phân biệt ra người dùng với nhà phát Bên cạnh đó kiểm thử hộp đen có nhược điểm là phạm vi hạn chế do thiếu kiến thức và người kiểm tra không nhắm mục tiêu cụ thể hoặc khu vực xảy ra lỗi
2.2.3 Kiểm thử hộp xám (Gray Box Testing)
Kiểm thử hộp xám là sự kết hợp giữa kiểm thử hộp đen và kiểm thử hộp trắng Trong đó ta quan tâm đến dữ liệu đầu vào và đầu ra trong kiểm thử hộp đen
và có sự hiểu biết về cấu trúc của hệ thống cũng như quyền truy cập về cơ sở dữ liệu Mục đích là tìm kiếm và xác định các lỗi do cấu trúc không đúng hoặc được
sử dụng không đúng cách
Ưu và nhược điểm của kiểm thử hộp xám là cung cấp các lợi ích của kiểm thử hộp đen và kiểm thử hộp xám Kiểm tra được thực hiện từ quan điểm của người dung hơn là quan điểm của nhà thiết kế Song nhược điểm là có thể mất nhiều thời gian để kiểm tra từng đường dẫn
Trang 168
2.3 Các cấp độ kiểm thử phần mềm
Hình 2.3 Các cấp độ kiểm thử phần mềm
2.3.1 Kiểm thử đơn vị (Unit Testing)
Kiểm tra đơn vị là kiểm tra từng đơn vị hoặc một thành phần riêng lẻ Nó là phần nhỏ nhất của một ứng dụng như hàm, lớp, thủ tục, giao diện Kiểm thử đơn vị thường có kích thước nhỏ, chức năng hoạt động đơn giản, không gây nhiều khó khăn trong việc kiểm thử, ghi nhận và phân tích kết quả do đó nếu phát hiện lỗi việc tìm kiếm nguyên nhân và sửa lỗi cũng đơn giản và tốn ít chi phí hơn Khi mà lập trình viên hoàn thành xong một chức năng hay màn hình nhỏ nào đó thì sẽ kiểm tra lại
Mục đích nhằm xác nhận rằng mỗi đơn vị của phần mềm hoạt động có đúng chức năng, có chính xác không
Người thực hiện: Nó đòi hỏi kiến thức về lập trình cũng như về thiết kế nên kiểm thử đơn vị được thực hiện bởi lập trình viên
2.3.2 Kiểm thử tích hợp (Integration Testing)
Kiểm tra tích hợp là các đơn vị/mô-đun được tích hợp lại một cách hợp lí và được kiểm thử theo nhóm Trong quá trình kiểm thử phần mềm thì các mô đun được kiểm thử độc lập, riêng rẻ thông qua kiểm thử đơn vị, sau đó sẽ được tích hợp lại thành một hệ thống hoàn chỉnh
Mục đích: Là tìm ra sự khiếm khuyết trong sự tương tác giữa các mô đun
Trang 17• Hybrid/ Sandwich: Là phương pháp kết hợp song song giữa Top down
và Bottom up kiểm tra tích hợp ở nhiều mức độ khác nhau, các mô-đun ở đầu được kiểm tra với các mô-đun thấp hơn đồng thời các mô-đun thấp hơn được tích hợp với các mô-đun ở đầu hay còn được gọi là kiểm tra xen kẽ nhau
2.3.3 Kiểm thử hệ thống (System Testing)
Kiểm thử hệ thống là quá trình kiểm thử toàn bộ hệ thống để kiểm tra khả năng tương thích và tất cả các chức năng của hệ thống thường là thử nghiệm cuối cùng để xác minh rằng hệ thống được phân phối đáp ứng đặc điểm kỹ thuật và mục đích của nó Mục đích là đảm bảo các thành phần phần hoạt động tương tốt trước khi đưa ra sản phẩm triển khai
Có 2 loại kiểm thử: Kiểm thử chức năng (functional testing) và Kiểm thử phi chức năng (Non-functional testing)
2.3.4 Kiểm thử chấp nhận (Acceptance Testing)
Kiểm thử chấp nhận được thực hiện bởi người dùng hoặc khách hàng, đảm bảo hệ thống hoặc ứng dụng phù hợp với yêu cầu và mong đợi của người dùng cuối Được thực hiện bởi Quality Assurance, đánh giá xem liệu ứng dụng có đáp ứng được thông số kỹ thuật và yêu cầu của khách hàng, tập hợp kịch bản trước và các test case đó sẽ được sử dụng để kiểm tra thử ứng dụng
Có 2 phương pháp kiểm tra chấp nhận:
Trang 1810
• Alpha testing: Là giai đoạn thử nghiệm đầu được thực hiện tại trang web của nhà phát triển, được thực hiện bởi nhà phát triển và Quality Assurance Mục đích: nhằm tìm ra lỗi và cải tiến ứng dụng, trước khi ứng dụng chuyển giao cho khách hàng
• Beta testing: được thực hiện ở môi trường doanh nghiệp, được kiểm tra bởi khách hàng, người dùng cuối Nó được thực hiện trước khi ra mắt sản phẩm Mục đích: là thu thập những phản hồi và trải nghiệm của của người dùng tìm ra những vấn đề, cải thiện ứng dụng trước khi ra mắt sản phẩm
Trang 1911
CHƯƠNG 3 KIỂM THỬ TỰ ĐỘNG HÓA TRÊN WEB PRODUCT STORE
3.1 Các kỹ thuật kiểm thử phần mềm
3.1.1 Selenium 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, là một công cụ phổ biến trong tự động hóa kiểm thử phần mềm (Automation testing)
Selenium là một công cụ mạnh mẽ cho việc kiểm thử ứng dụng web vì nó hỗ trợ nhiều trình duyệt phổ biến như Chrome, Firefox, Internet Explorer, và Edge, cũng như các hệ điều hành chủ yếu như Windows , Linux , Mac ,
Selenium hỗ trợ nhiều ngôn ngữ lập trình như Java, Python, C#, Ruby, và nhiều ngôn ngữ khác Nó cho phép các nhà phát triển và kiểm thử viết các kịch bản kiểm thử sử dụng mã và sau đó chạy những kịch bản này trên trình duyệt web thực
tế để kiểm tra tính năng và tương tác của ứng dụng
3.1.2 Các thành phần của Selenium
Hình 3.1 Thành phần của Selenium
Selenium bao gồm một bộ các công cụ hỗ trợ kiểm tra tự động tính năng của
Trang 20• Selenium Remote Control (RC): Cung cấp một máy chủ (server) để thực thi các lệnh tự động hóa, và máy chủ này sẽ giao tiếp với trình duyệt thông qua JavaScript nhúng (JavaScript injection) để thực hiện các hành động trên trình duyệt.cung cấp một máy chủ (server) để thực thi các lệnh tự động hóa, và máy chủ này sẽ giao tiếp với trình duyệt thông qua JavaScript
• Selenium WebDriver: Thực hiện kiểm tra của bạn trên các trình duyệt khác nhau (Firefox, Chrome, IE, Edge, Opera, Safari,/…) Giao tiếp trực tiếp với trình duyệt Thời gian thực thi nhanh hơn Selenium RC và IDE
• Selenium Grid: Được sử dụng để chạy các kịch bản kiểm thử đồng thời trên nhiều trình duyệt và nhiều hệ thống khác nhau Chạy song song nhiều thử nghiệm trên các máy khác nhau, các trình duyệt và môi trường khác nhau cùng một lúc Tiết kiệm thời gian và sử dụng khái niệm trung tâm và nút, hub hoạt động như một nguồn trung tâm của các lệnh Selenium cho mỗi nút được kết nối với nó
3.1.3 Selenium Webdriver
Hình 3.2 Selenium Webdriver
Selenium WebDriver (gọi tắt là WebDriver) là một automation framework
Trang 2113
dành cho web, với WebDriver bạn có thể thực hiện các phiên kiểm thử của mình trên các trình duyệt khác nhau mà không cần giới hạn trên Firefox hay Chrome Tương tác với các thành phần trang theo cách thực tế hơn Cung cấp các phương thức và API cho việc tương tác với các yếu tố trên trang web, chẳng hạn như điều hướng qua các trang, nhập liệu vào các ô nhập liệu, click vào các nút, thu thập thông tin và kiểm tra các yếu tố
WebDriver sẽ cung cấp công cụ hỗ trợ bạn tốt hơn trong việc coding để tạo test scripts Bạn có thể sử dụng ngay các phương thức điều kiện như if-then-other, switch case, hoặc vòng lặp như do-while WebDriver hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Python, Java, Net, PHP, Python, Perl, Ruby Không nhất thiết bạn phải am hiểu tất cả các ngôn ngữ trên nhưng để sử dụng WebDriver một cách hiệu quả hơn, bạn nên biết ít nhất một trong số những ngôn ngữ trên
3.1.4 Python
Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển
3.2 Giới thiệu bài toán
Thông qua kiểm thử tự động, kịch bản kiểm thử được viết theo yêu cầu của khách hàng, tìm ra lỗi để hệ thống hoạt động tốt trước khi đưa đến tay khách hàng Bên cạnh
đó kiểm thử tự động sử dụng Selenium và Python để thực hiện các thao tác và kiểm tra các yếu tố trên trang web
Các kịch bản kiểm thử tự động này giúp đảm bảo tính chính xác và hiệu quả của trang web, từ đó giúp tăng cường trải nghiệm của người dùng và đảm bảo hoạt động ổn định của ứng dụng và giúp nâng cao độ tin cậy và tính ổn định của ứng dụng web Product Store Cung cấp kết quả kiểm thử rõ ràng và dễ đọc, giúp nhà phát triển nắm bắt tình trạng của ứng dụng một cách chính xác và nhanh chóng đưa ra các cải tiến cần thiết
Giả sử trang web có chức năng sau:
Trang 223.3 Giới thiệu về ứng dụng kiểm thử
Trong đề tài này, chúng em đã tiến hành thực hiện kiểm thử tự động cho một trang web cụ thể đó là Product Store dựa trên các testcase Các test case được xây dựng trên môi trường Python thông qua Selenium Webdriver trên Visual studio code
Link website: https://www.demoblaze.com/
Trang web Product Store nhằm đáp ứng nhu cầu mua sắm trực tuyến các sản phẩm công nghệ cho người tiêu dung
Hình 3.3 Trang web Product Store
3.4 Đặc tả yêu cầu
3.4.1 Yêu cầu phi chức năng
- Yêu cầu vận hành: Ứng dụng hoạt động trên nền tảng website
- Yêu cầu bảo mật: Vấn đề bảo mật sẽ được ưu tiên, đảm bảo bảo mật thông tin khách hàng tuyệt đối
- Yêu cầu hiệu suất: Login/Logout
• Hệ thống hoạt động liên tục 24/24
Trang 2315
• Tốc độ thời gian phản hồi hệ thống 0.2 giây
3.4.2 Yêu cầu chức năng
Trước khi sử dụng hệ thống người dùng phải Login Nếu không Login hoặc Login không hợp lệ thì người dùng không thực hiện các hoạt động trong ứng dụng
3.4.2.1 Mô tả chung
a Sign up
Người dùng chưa có tài khoản, mới sử dụng ứng dụng web Product Store lần đầu tiên sẽ lập tài khoản, nhập username và password, chọn vào sign up Tài khoản đã được tạo thành công
b Login/Logout
Login vào ứng dụng
Người dùng nhập tên đăng nhập và mật khẩu Ứng dụng tiến hành kiểm tra thông tin đăng nhập Nếu thông tin đăng nhập đúng thì có thể bắt đầu mua sắm trong ứng dụng Nếu thông tin đăng nhập sai thì tiến hành đăng nhập lại Đăng nhập thành công hiển thị màn hình chức năng
Logout khỏi ứng dụng
Người dùng muốn đăng xuất khỏi ứng dụng Product Store, chọn vào button Logout ở màn hình Product Store Sau khi click chọn thì người dung đăng xuất khỏi ứng dụng web và hiển thị đến màn hình chính
c Add to Cart
Người dùng đăng nhập thành công vào ứng dụng sẽ hiện lên màn hình mua sắm Thêm sản phẩm muốn mua vào giỏ hàng, sau đó chọn button Cart khi truy cập vào sẽ hiển thị những sản phẩm được thêm vào giỏ hàng Nếu muốn xóa sản phẩm thì chọn button Delete để xóa sản phẩm, sau khi xong kiểm tra lại xem sản phẩm đã được xóa ra khỏi giỏ hàng của bạn
d Contact
Trang 2416
Người dùng đăng nhập thành công vào ứng dụng sẽ hiện lên màn hình mua sắm Tiếp đến, chọn button Contact, màn hình sẽ xuất hiện những thông tin cần bạn điền đầy đủ như địa chỉ email, tên và lời nhắn mà bạn muốn gửi đến người nhận Sau khi nhập đầy đủ thông tin thì chọn vào button Send message Những phản hồi đã được gửi đến người nhận
e Place Order
Người dùng đăng nhập thành công vào ứng dụng sẽ hiện lên màn hình mua sắm Chọn được những sản phẩm ưng ý rồi sẽ đến bước đặt hàng, trong đặt hàng cần nhập đầy đủ thông tin về tên, đất nước, thành phố, số tài khoản ngân hàng, tháng và năm sinh Thông tin nhập đầy đủ và hợp lệ rồi thì chọn button Purchase, bạn đã đặt hàng thành công
3.4.2.2 Mô tả Usecase
Use case tổng quát của quán tạp hóa
Hình 3.4 Use case tổng quát
a Use case Sign up
Hình 3.5 Use case Sign up
Màn hình Sign up
Trang 2517
Hình 3.6 Màn hình Sign up
Use case name: Sign up Actor: User
Brief Description: Use case này được thực hiện khi User tạo tài khoản
Triggers: Tạo tài khoản để vào ứng dụng Product Store
Relationships: User thực hiện chức năng sign up bằng cách nhập tên đăng nhập,
mật khẩu
Main flow – Operation:
- Bước 1: Click vào “Sign up” ở màn hình “Product Store”
- Bước 2: Nhập Username/ Password
- Bước 3: Click vào “Sign up” ở màn hình “Product Store”
- Bước 4: Sign up thành công hiển thị màn hình chức năng
Alternative flows:
- Hệ thống xác thực thông tin không thành công và hiển thị thông báo
Bảng 3.1 Bảng chi tiết use case Sign up
b Use case Login/Logout
Trang 26Brief Description: Use case này được thực hiện khi User muốn Login vào ứng dụng
Product Store bằng cách nhập tên đăng nhập và mật khẩu
Triggers: User bắt đầu mua sắm với ứng dụng Product Store
Relationships: User thực hiện chức năng Login bằng cách nhập tên đăng nhập, mật khẩu Main flow – Operation:
- Bước 1: Click vào “Login” ở màn hình “Product Store”
- Bước 2: Nhập Username/ Password
- Bước 3: Click vào “Login” ở màn hình “Product Store”
- Bước 4: Login thành công hiển thị màn hình chức năng
Bảng 3.2 Bảng chi tiết use case Login
Trang 2719
Bảng chi tiết use case Logout
Use case name: Logout Actor: User
Brief Description: Use case này được thực hiện khi User muốn Logout khỏi ứng
dụng Product Store
Triggers: User muốn Logout khỏi ứng dụng Product Store
Relationships:
- User thực hiện chức năng Logout
- Logout là chức năng mở rộng của Login
Main flow – Operation:
- Bước 1: Click vào “Logout” ở màn hình “Product Store”
- Bước 2: User logout khỏi hệ thống và hiển thị đến màn hình chính
Bảng 3.3 Bảng chi tiết use case Logout
c Use case Add to Cart
Hình 3.9 Use case Add to Cart
Màn hình Add to Cart
Trang 2820
Hình 3.10 Màn hình thêm sản phẩm vào giỏ hàng
Hình 3.11 Màn hình sản phẩm đã được thêm vào và xóa sản phẩm ra khỏi giỏ hàng
Use case name: Thêm sản phẩm vào giỏ hàng Actor: User
Brief Description: User thực hiện thêm sản phẩm vào giỏ hàng
Triggers: User muốn thêm sản phẩm vào giỏ hàng
Relationships:
- User thực hiện chức năng thêm sản phẩm vào giỏ hàng
- Chỉ được thêm mới khi Login thành công vào ứng dụng
- Xóa sản phẩm chức năng mở rộng của thêm sản phẩm
Trang 2921
Main flow – Operation:
- Bước 1: User login thành công vào ứng dụng, muốn thêm mới vào giỏ hàng
- Bước 2: Click vào button “Cart” tại màn hình Product Store
- Bước 3: Click vào sản phẩm muốn thêm vào giỏ hàng
- Bước 4: Mở giỏ hàng để xem sản phẩm đã được thêm vào chưa, sản phẩm chưa thêm vào thì quay lại bước 2
- Bước 5: Nếu không thích sản phẩm được thêm vào có thể xóa ra khỏi giỏ hàng
Bảng 3.4 Bảng chi tiết use case Add to Cart
d Use case Contact
Hình 3.12 Use case Contact
Màn hình Contact
Hình 3.13 Màn hình Contact