4.2.19 Chức năng thông báo
Cũng dựa vào socket IO, khi người dùng có một tin nhắn mới, hoặc có một bình luận mới, một người thích bài viết của mình thì thơng báo sẽ được tạo ra và được gửi đến người dùng.
5
KIỂM THỬ
Trong chương này, chúng em đề ra các phương pháp và thực hiện việc kiểm thử phần mềm. Đây là một cơng việc vơ cùng quan trọng, nó đảm bảo được phần mềm thực hiện đúng theo những gì được thiết kế và khơng phát sinh những lỗi không mong muốn.
Mục lục
5.1 Kiểm thử API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Kiểm thử chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3 Kiểm thử hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Kiểm thử phần mềm là việc kiểm tra chất lượng của sản phẩm, là một công việc vô cùng quan trọng trong chu kỳ phát triển phần mềm. Nó đảm bảo phần mềm thực hiện đúng theo những thứ mà chúng đã được thiết kế và trong q trình sử dụng phần mềm khơng phát sinh bất cứ thứ gì khơng mong muốn. Trong đề tài Mạng xã hội Review ẩm thực, phần kiểm thử là quan trọng và cần thiết, nó giúp phần mềm đáp ứng chính xác yêu cầu đặt ra và hạn chế rủi ro trong quá trình sử dụng.
5.1 Kiểm thử API
Kiểm thử API khác với kiểu thử giao diện (GUI), đây là kiểm thử các thành phần chủ yếu trong tầng business logic của hệ thống. Những kiểm thử này không tập trung vào giao diện, các thao tác trên giao diện người dùng. Khơng sử dụng các input từ bàn phím và output phản hồi trên màn hình, kiểm thử API chỉ tập trung vào tính logic, đúng đắn của input và output.
Ta có thể tiến hành việc kiểm thử API bằng các cách khác nhau, có thể dùng những cơng cụ hỗ trợ như Postman,Cfix,...Những cơng cụ này như một trình duyệt để ta có thể đưa vào các tham số, các phương thức để gọi các API. Để tiến hành kiểm thử API cho hệ thống này chúng ta sử dụng công cụ kiểm thử postman.
Postman là một công cụ rất mạnh cho những kiểm thử API:
• Postman có giao diện dễ dàng sử dụng
• Lịch sử kiểm thử API
• Response được thể hiện trực quan
5.2 Kiểm thử chức năng
Qua q trình phát triển, nhóm đã hiện thực được các chức năng và đã tiến hành kiểm thử các chức năng tương ứng. Trong phần này, nhóm sẽ trình bài kiểm thử chức năng tiêu biểu là đăng bài viết.
Mục tiêu kiểu thử: kiểm thử chức năng đăng bài viết.
Kết quả mong muốn: sau khi đăng bài viết, bài viết được đăng lên hệ thống. Các bước tiến hành:
• B1:Vào trang home của website và đăng nhập vào tài khoản người dùng
• B2:Vào mục đánh giá nhà hàng
• B3:Điền các thơng tin cần thiết
• B4:Kiểm tra có thơng báo thành cơng hay khơng
Hình 5.3:B4: Kiểm tra có thơng báo
5.3 Kiểm thử hệ thống
Kiểm thử hệ thống hay còn gọi là System Testing, là kiểm tra lại toàn bộ hệ thống sau khi tích hợp, nhằm đảm bảo hệ thống đáp ứng các yêu cầu đề ra. Trong mục này, nhóm sẽ kiểm thử một vài chức năng chính của cả hệ thống bằng các thao tác kiểm tra Database và màn hình ứng dụng Web.
Trong q trình phát triển hệ thống, nhóm đã thực hiện nhiều kiểm thử. Tiêu biểu là kiểm thử chức năng đăng bài viết trên tồn hệ thống. Dưới đây sẽ trình bày về kiểm thử đó.
Mục tiêu kiểm thử: Kiểm thử chức năng đăng bài đánh giá nhà hàng trên tồn bộ hệ thống Website. Dữ liệu kiểm thử: Nhóm sẽ kiểm thử khả năng đăng bài đánh giá và hiển thị bài viết mới đăng trên website bằng dữ liệu giả với tiêu đề và nội dung bài viết là dummy text.
Kết quả mong muốn: Sau khi người người dùng đăng bài đánh giá về nhà hàng, người quản trị sẽ thấy bài viết trong trang quản trị và những tài khoản có theo dõi người dùng đó sẽ thấy bài viết xuất hiện trên bảng tin.
Các bước tiến hành kiểm thử:
• Bước 1: Đăng ký tài khoản cho một người dùng mới và đăng nhập vào hệ thống.
• Bước 2: Vào mục Review và đăng một đánh giá về một nhà hàng có trong hệ thống.
• Bước 3: Tiến hành nhập dữ liệu giả và nhấn vào nút "Đăng bài".
• Bước 4: Kiểm tra lại cơ sở dữ liệu có bài viết mới hay chưa.
viết của người dùng đó chưa.
• Bước 6: Đăng ký tài khoản cho một người dùng khác và đăng nhập vào hệ thống. Sau đó bấm nút Theo dõi người dùng vừa mới đăng bài viết.
• Bước 7: Kiểm tra lại bảng tin đã có bài viết của người dùng vừa theo dõi hay không. Sau khi thực hiện kiểm thử, bài viết mới đã được lưu vào cơ sở dữ liệu và hiển thị trên trang quản trị và hiển thị trên bảng tin của những người theo dõi người dùng đó và đúng như kết quả mong muốn. Sau đây là hình ảnh minh họa cho quá trình và kết quả kiểm thử.
Tiến hành thêm dữ liệu giả như đã trình bày ở bước 3.
Sau đây là các màn hình sau khi đăng bài viết mới với dữ liệu giả:
Hình 5.5:Cơ sở dữ liệu sau khi thêm bài viết mới
5.4 Kiểm thử với dữ liệu thật
Sau khi kiểm thử hệ thống, hệ thống đã hoạt động tốt khi nhóm kiểm thử với dữ liệu giả nhưng điều đó vẫn khơng đảm bảo rằng hệ thống sẽ hoạt động tốt khi sử dụng trong thực tế. Do đó, nhóm tiếp tục kiểm thử với dữ liệu thật với điều kiện hoạt động ngoài thực tế để đảm bảo hệ thống vẫn hoạt động tốt. Nhóm sẽ tiến hành kiểm thử chức năng đánh giá nhà hàng mới trên toàn bộ hệ thống với dữ liệu thật.
Mục tiêu kiểm thử: Kiểm thử chức năng đánh giá nhà hàng với dữ liệu thật trên toàn bộ hệ thống Website.
Dữ liệu kiểm thử: Nhóm sẽ kiểm thử chức năng đánh giá nhà hàng và hiển thị bài viết mới đăng trong trang quản trị và trong bảng tin của những người theo dõi người dùng đó. Dữ liệu là một đánh giá thực tế về một nhà hàng đã có trong hệ thống.
Kết quả mong muốn: Sau khi người người dùng đăng bài đánh giá về nhà hàng, người quản trị sẽ thấy bài viết trong trang quản trị và những tài khoản có theo dõi người dùng đó sẽ thấy bài viết xuất hiện trên bảng tin kèm những bình luận và lượt thích của người dùng.
Các bước tiến hành kiểm thử:
• Bước 1: Đăng nhập vào hệ thống bằng một tài khoản đã có.
• Bước 2: Vào mục Review và đăng một đánh giá về một nhà hàng có trong hệ thống.
• Bước 3: Tiến hành nhập dữ liệu như đã trình bày và nhấn lưu.
• Bước 4: Kiểm tra lại cơ sở dữ liệu có bài viết mới hay chưa.
• Bước 5: Đăng nhập bằng tài khoản quản trị và xem trong trang quản trị đã có bài viết của người dùng đó chưa.
• Bước 6: Đăng nhập vào hệ thống bằng tài khoản của một người dùng khác. Sau đó bấm nút Theo dõi người dùng vừa mới đăng bài viết.
• Bước 7: Kiểm tra lại bảng tin đã có bài viết của người dùng vừa theo dõi hay khơng.
• Bước 8: Gửi bình luận và like bài viết ở bảng tin và kiểm tra xem nó có hoạt động tốt khơng.
Sau khi thực hiện kiểm thử, bài viết mới đã được lưu vào cơ sở dữ liệu và hiển thị trên trang quản trị và hiển thị trên bảng tin của những người theo dõi người dùng đó và đúng như kết quả mong muốn. Sau đây là hình ảnh minh họa cho quá trình và kết quả kiểm thử với dữ liệu thật.
Hình ảnh các màn hình sau khi đăng bài đánh giá nhà hàng với dữ liệu thật:
Hình 5.9:Giao diện trang cá nhân sau khi thêm dữ liệu thật
6
KẾT LUẬN
Trong chương cuối cùng, chúng em tổng kết lại các vấn đề, kết quả đạt được trong quá trình nghiên cứu và xây dựng website. Đồng thời nêu ra các ưu điểm, nhược điểm cũng như mở ra các hướng phát triển của đề tài trong tương lai.
Mục lục
6.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.2 Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3 Nhược điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.1 Kết quả đạt được
Qua quá trình tìm hiểu, phân tích và thực hiện đề tài Xây dựng mạng xã hội Review ẩm thực, nhóm đã tìm hiểu về những cơng nghệ có thể áp dụng vào hệ thống. Từ đó nhóm đã chọn ra những ngơn ngữ, công nghệ phù hợp với yêu cầu của hệ thống và hiện thực được những chức năng mà nhóm đã đề ra, cụ thể là:
• Hệ thống cho phép người quản trị thêm nhà hàng, quản lý nhà hàng và các bài đánh giá, chia sẻ kinh nghiệm và người dùng có thể xem những bài viết, tin tức thơng qua website.
• Người dùng có thể tương tác với nhau thơng qua website bằng cách bình luận, đánh giá nhà hàng hoặc chia sẻ kinh nghiệm. Người dùng có thể nhắn tin trực tiếp với nhau thơng qua Message.
• Người quản trị có khả năng quản lý kho bài viết đánh và chia sẻ kinh nghiệm của người dùng, có thể chỉnh sửa nội dung, xóa bài viết khơng phù hợp với quy định cũng hệ thống.
• Hệ thống tạo ra một sân chơi để người dùng đánh giá nhà hàng một cách trung thực, khách quan. Nhờ vào đó, các nhà hàng sẽ cải thiện chất lượng món ăn, chất lượng phục vụ để đáp ứng đúng với nhu cầu của khách hàng.
• Hệ thống có sử dụng Elastic Search để giúp người dùng tìm kiếm những nhà hàng, món ăn một cách chính xác nhất.
• Hệ thống xếp hạng những nhà hàng được đánh giá tốt nhất cũng như đề xuất những nhà hàng ở gần vị trí của người dùng, giúp cho người dùng có thể chọn ra những nhà hàng phù hợp với nhu cầu của bản thân và tạo cơ hội cho các nhà hàng tiếp cận đến khách hàng.
• Nhóm đã hiện thực được mơ hình AI nhằm mục đích khơng cho phép người dùng đăng một hình ảnh khơng liên quan đến chủ đề ẩm thực. Nhờ đó, hệ thống đảm bảo nguồn thơng tin và nội dung khơng bị "nhiễu", nhờ đó chất lượng và nội dung của website được đảm bảo một cách tốt nhất.
Bên cạnh việc hiện thực các chức năng của hệ thống, nhóm cũng đã tiến hành hiện thực việc kiểm thử nhằm đảm bảo hệ thống hoạt động đúng như mô tả và hạn chế tối đa những rủi ro có thể xảy ra. Việc kiểm thử được thực hiện trên toàn bộ hệ thống từ các API cho đến các trình duyệt khác nhau.
6.2 Ưu điểm
Qua q trình hiện thực và kiểm thử, nhóm nhận thấy hệ thống hiện thực có những ưu điểm như:
• Hệ thống đáp ứng được những yêu cầu cơ bản đặt ra là cung cấp được một mạng xã hội nơi người dùng có thể đưa ra quan điểm của mình về các nhà hàng, các món ăn.
• Hệ thống được áp dụng những cơng nghệ mới, giúp dễ dàng phát triển.
• Có áp dụng AI vào hệ thống mặc dù cịn đơn giản chưa mang đến những lợi ích quá lớn.
6.3 Nhược điểm
Bên cạnh những ưu điểm thì Mạng xã hội ẩm thực vẫn còn tồn đọng những nhược điểm và hạn chế sau:
• Hệ thống chưa tối ưu hóa giao diện cho các màn hình kích thước khác nhau. Điều này dẫn đến lỗi giao diện trên một số màn hình nhỏ như điện thoại.
• Hệ thống chưa hỗ trợ phiên bản ứng dụng di động.
• Hình ảnh chưa được xử lý trước khi lưu trữ nên dẫn đến tình trạng người dùng có thể cập nhập những hình có kích thước lớn dẫn đến website bị chậm khi tải hình ảnh.
• Hệ thống chưa hỗ trợ người dùng đăng video.
• Server xử lý lỗi chưa tốt dẫn đến việc hệ thống có thể ngừng hoạt động nếu có một lỗi nào đó chưa được xử lý xảy ra.
6.4 Hướng phát triển
Từ những yêu cầu đặt ra khi phân tích hệ thống cũng như những ưu nhược điểm của hệ thống được trình bày ở trên, hệ thống mạng xã hội review ẩm thực sẽ được phát triển thêm nhằm giải quyết những nhược điểm và hạn chế tồn tại, cũng như phát huy những ưu điểm đã đạt được hiện tại. Để giải quyết được những vấn đề trên, cần đặt ra những hướng phát triển phù hợp trong tương lai:
• Tạo ra ứng dụng di động để người dùng có thể sử dụng hệ thống trên nhiều thiết bị khác nhau, tạo ra sự đa dạng, tiện dụng cho người dùng.
• Thiết kế giao điện cần được tối ưu hóa hơn cho nhiều kích thước mà hình.
• Khi hệ thống được đưa vào sử dụng rộng rãi trong thực tế, việc xử lí các lỗi khơng mong muốn xảy ra trong quá trình vận hành nếu chưa tốt sẽ khiến cho cả hệ thống và người dùng bị ảnh hưởng. Vì vậy cần cải tiến server để tránh các lỗi không mong
muốn xảy ra, và khi xảy ra lỗi có thể xử lý tốt tránh ảnh hưởng đến trải nghiệm người dùng.
• Việc tăng cường bảo mật cũng là tiêu chí phát triển chính của hệ thống. Bảo mật tốt hơn giúp cho hệ thống tránh được các cuộc tấn công từ bên ngồi nhằm đánh cắp thơng tin người dùng hoặc là cho hệ thống của chúng ta bị tê liệt, ngừng hoạt động.
• Hệ thống cần phát triển thêm các tính năng ngồi những tính năng hiện có nhằm tăng cường trải nghiệm người dùng, thu hút người dùng mới. Hệ thống sẽ phát triển thêm các mơ hình AI...
7
Tài liệu
[1] Khác nhau giữa SOAP và REST-Manh Hope- http://manhhope.blogspot.com/2018/04/khac-nhau-giua-restful-va-soap-web.html. Truy cập lần cuối 8/8/2021.
[2] What is the MERN Stack - https://www.mongodb.com/mern-stack.Truy cập lần cuối 8/8/2021.
[3] What is 3-tier Architecture - https://www.ibm.com/cloud/learn/three-tier- architecture. Truy cập lần cuối 8/8/2021.
[4] Cheatsheet convolutional neural networks - https://stanford.edu/ shervine/l/vi/teaching/cs- 230/cheatsheet-convolutional-neural-networks. Truy cập lần cuối 8/8/2021.
[5] Hướng dẫn sử dụng SocketIO - Vinh Phạm(30/03/2021) - https://bizflycloud.vn/tin-tuc/socket-io-la-gi-huong-dan-su-dung-socket-io-co- ban-20210330114148979.htm. Truy cập lần cuối 8/8/2021.
[6] Thuật toán CNN – Convolutional Neural Network - https://topdev.vn/blog/thuat- toan-cnn-convolutional-neural-network/. Truy cập lần cuối 8/8/2021.
[7] Cloudinary - https://cloudinary.com/documentation. Truy cập lần cuối 8/8/2021. [8] Giới thiệu Reactjs - Do Khanh Toan(30-5-2020) - https://viblo.asia/p/gioi-thieu-ve-
reactjs-phan-i-cac-khai-niem-co-ban-V3m5WzjblO7. Truy cập lần cuối 8/8/2021. [9] Giới thiệu Redux - Do Khanh Toan(31-7-2017) - https://viblo.asia/p/gioi-thieu-ve-
redux-63vKj67VK2R. Truy cập lần cuối 8/8/2021.
[10] Reactjs - https://reactjs.org/docs/getting-started.html. Truy cập lần cuối 8/8/2021. [11] MongoDB - https://docs.mongodb.com/manual/core/document/. Truy cập lần cuối
8/8/2021.
[12] Mongoosejs - https://mongoosejs.com/docs/api.html. Truy cập lần cuối 8/8/2021. [13] Expressjs - https://expressjs.com/en/starter/hello-world.html. Truy cập lần cuối
8/8/2021.
[14] Redux - https://redux.js.org/introduction/getting-started. Truy cập lần cuối 8/8/2021.
[15] SocketIO - https://socket.io/docs/v4. Truy cập lần cuối 8/8/2021.