Báo cáo này sẽ trình bày chi tiết về lý thuyết và thực tiễn của kiểm thử tự động, các phương pháp và công cụ được sử dụng, cũng như áp dụng cụ thể cho một số chức năng của ứng dụng.. Del
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐỀ
TÀI:
KIỂM THỬ MẠNG XÃ HỘI 2FRIEND
Sinh viên thực hiện : ĐẶNG TIẾN QUYỀN
: GIANG VĂN HƯNG : ĐINH MINH HOÀNG Giảng viên hướng dẫn : NGUYỄN THỊ PHƯƠNG HẠNH
Hà Nội, tháng 11 năm 2024
Trang 3MỤC LỤC
Trang 4DANH MỤC TỪ VIẾT TẮT
Trang 5DANH MỤC HÌNH ẢNH
Trang 6DANH MỤC BẢNG BIỂU
Trang 7LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, sự giúp đỡ dù ít hay nhiều, dù là trực tiếp hay gián tiếp của người khác Trong quá trình thực hiện báo cáo này, tôi đã nhận được rất nhiều sự hỗ trợ và đóng góp ý kiến quý báu từ các thầy cô, bạn bè và gia đình
Trước tiên, tôi xin gửi lời cảm ơn chân thành đến các thầy cô trong khoa Công nghệ thông tin trường Đại học Điện Lực, đặc biệt là các thầy
cô giảng dạy lớp D16CNPM3, đã trang bị cho tôi những kiến thức và kỹ năng cần thiết để hoàn thành đề tài này.
Tôi cũng xin cảm ơn các anh chị và các bạn học lớp D16CNPM3 đã luôn động viên, chia sẻ kinh nghiệm học tập, giúp đỡ tôi trong quá trình thực hiện đề tài.
Và lời cuối cùng, tôi xin bày tỏ lòng chân thành và biết ơn tới cha
mẹ, anh chị, những người trong gia đình và bạn bè đã luôn ở bên cạnh tôi những lúc khó khăn nhất, giúp tôi vượt qua khó khăn trong học tập cũng như trong cuộc sống.
Em xin xin chân thành cảm ơn!
Trang 8LỜI NÓI ĐẦU
Kiểm thử phần mềm là một khía cạnh không thể thiếu trong quá trình phát triển ứng dụng, đảm bảo rằng sản phẩm cuối cùng không chỉ hoạt động như mong đợi mà còn đáp ứng được yêu cầu và tiêu chuẩn chất lượng cao Trong thời đại công nghệ ngày nay, khi mà các ứng dụng phần mềm ngày càng trở nên phức tạp, việc kiểm thử tự động đã trở thành một giải pháp hiệu quả giúp tiết kiệm thời gian và giảm thiểu rủi ro.
Báo cáo này sẽ trình bày chi tiết về lý thuyết và thực tiễn của kiểm thử tự động, các phương pháp và công cụ được sử dụng, cũng như áp dụng
cụ thể cho một số chức năng của ứng dụng Hy vọng rằng những thông tin trong báo cáo sẽ đóng góp vào việc nâng cao chất lượng phần mềm và tạo
ra sản phẩm tốt nhất cho người dùng.
Tên đề tài: “Kiểm thử mạng xã hội 2friend”.
Nội dung báo cáo bao gồm 04 chương:
Chương 1: Công cụ kiểm thử tự động
Chương 2: Đặc tả phần mềm
Chương 3: Kế hoạch test
Chương 4: Xây dựng và thực hiện các test case
Trang 9CHƯƠNG 1: CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
Công cụ kiểm thử tự động là phần mềm hỗ trợ việc thực hiện kiểm thử một cách tự động, giảm thiểu sự can thiệp của con người Nó có khả năng thực hiện các kịch bản kiểm thử đã được viết trước đó và so sánh kết quả thực tế với kết quả mong đợi để phát hiện lỗi Kiểm thử tự động giúp tiết kiệm thời gian và đảm bảo tính chính xác cao hơn so với kiểm thử thủ công, đặc biệt trong các dự án lớn và phức tạp.
1.1 Giới thiệu về công cụ
Postman, JMeter, K6, và Selenium là những công cụ phổ biến
trong lĩnh vực kiểm thử tự động và hiệu năng của phần mềm Mỗi công cụ
có một mục đích riêng và phục vụ cho các loại kiểm thử khác nhau, bao gồm kiểm thử API, kiểm thử hiệu năng, và kiểm thử giao diện người dùng (UI) Dưới đây là phân tích về công cụ Postman:
1.1.1 Đặc điểm
Postman là một công cụ mạnh mẽ và dễ sử dụng để kiểm thử API
(Application Programming Interface) Nó giúp các lập trình viên và tester
dễ dàng tạo, gửi các yêu cầu HTTP, và kiểm tra phản hồi từ máy chủ.
trực quan, giúp người dùng dễ dàng tạo, quản lý và thực hiện các yêu cầu HTTP mà không cần nhiều kiến thức về dòng lệnh.
phương thức HTTP phổ biến như GET, POST, PUT, DELETE, PATCH, HEAD, và OPTIONS, giúp kiểm thử đầy đủ các chức năng của API.
Delivery): Postman có khả năng tích hợp với các hệ thống CI/CD như Jenkins, Travis CI, giúp tự động hóa quá trình kiểm thử trong quy trình phát triển phần mềm.
bằng JavaScript để thực hiện các kiểm tra phức tạp, bao gồm việc xác thực dữ liệu phản hồi, xử lý biến, và điều khiển luồng kiểm thử.
Trang 10 Quản lý và chia sẻ bộ sưu tập: Người dùng có thể tạo các bộ sưu tập (Collections) để nhóm các yêu cầu API liên quan, dễ dàng chia sẻ với đồng nghiệp hoặc lưu trữ trên Postman Cloud để truy cập từ bất kỳ đâu.
các kiểm thử tự động theo thời gian hoặc sau các sự kiện cụ thể, giúp đảm bảo API luôn hoạt động ổn định.
kết quả kiểm thử, bao gồm thời gian phản hồi, trạng thái yêu cầu, và các lỗi phát hiện được, giúp dễ dàng phân tích và khắc phục sự cố.
1.1.2 Các thành phần
Postman bao gồm nhiều thành phần chính hỗ trợ toàn bộ quá trình kiểm thử API, bao gồm:
hành như Windows, macOS, và Linux Giao diện này cho phép người dùng tạo, quản lý và thực hiện các yêu cầu API một cách dễ dàng.
hoặc một nhóm chức năng cụ thể Collections giúp tổ chức các yêu cầu theo cấu trúc logic, dễ dàng quản lý và chia sẻ.
nghĩa các giá trị như URL cơ sở, khóa API, hoặc các thông số khác mà
có thể thay đổi giữa các môi trường (development, staging, production) Điều này giúp tái sử dụng các yêu cầu API trong nhiều môi trường khác nhau mà không cần chỉnh sửa thủ công.
được chạy trước khi gửi yêu cầu (Pre-request Scripts) hoặc sau khi nhận được phản hồi (Tests) Chúng giúp thực hiện các thao tác như thiết lập
dữ liệu, xác thực phản hồi, và điều khiển luồng kiểm thử.
cách tự động, hỗ trợ chạy nhiều lần với các tập dữ liệu khác nhau driven testing).
Trang 11(data- Monitor: Tính năng giám sát giúp theo dõi hiệu suất và tình trạng của API theo thời gian thực Monitor có thể được lên lịch để chạy các kiểm thử định kỳ và gửi thông báo khi có sự cố xảy ra.
động hóa và tích hợp Postman với các công cụ khác thông qua các API của nó.
1.2 Cách tổ chức chương trình chạy với công cụ
Để tổ chức chương trình kiểm thử tự động với Postman một cách hiệu quả, chúng ta cần tuân thủ các bước và cấu trúc sau:
1.2.1 Thiết lập Môi trường Kiểm thử (Environment Setup):
Định nghĩa các biến môi trường: Tạo các môi trường khác nhau
(ví dụ: Development, Staging, Production) và định nghĩa các biến như base_url, api_key, token, v.v.
Quản lý biến: Sử dụng các biến này trong các yêu cầu API để dễ
dàng chuyển đổi giữa các môi trường mà không cần chỉnh sửa thủ công.
1.2.1 Tạo và Tổ chức Collections:
Tạo Collections cho từng module hoặc chức năng: Ví dụ: một
Collection cho User Management, một Collection cho Payment Processing, v.v.
Sử dụng thư mục con (folders): Trong mỗi Collection, tạo các thư
mục con để nhóm các yêu cầu API liên quan, giúp tổ chức logic và dễ quản lý hơn.
1.2.2 Viết Các Yêu cầu API:
Tạo các yêu cầu API cụ thể: Sử dụng các phương thức HTTP phù
hợp, định nghĩa URL, headers, body, v.v.
Sử dụng biến môi trường: Thay thế các giá trị cố định bằng các
biến môi trường để tăng tính linh hoạt.
1.2.3 Viết Scripts Kiểm thử:
Pre-request Scripts: Thực hiện các thao tác trước khi gửi yêu cầu,
chẳng hạn như lấy token xác thực từ yêu cầu trước đó.
Tests: Viết các script kiểm thử để xác thực dữ liệu phản hồi, kiểm
tra mã trạng thái HTTP, và thực hiện các kiểm tra logic khác.
Trang 121.2.4 Chạy Kiểm thử với Runner:
Sử dụng Collection Runner: Chạy toàn bộ Collection hoặc các thư
mục con một cách tự động, hỗ trợ chạy nhiều lần với các tập dữ liệu khác nhau (data-driven testing).
Sử dụng dữ liệu từ file CSV/JSON: Tạo các file dữ liệu để chạy
kiểm thử với nhiều bộ dữ liệu khác nhau, giúp kiểm tra tính linh hoạt và
độ bền của API.
1.2.5 Tích hợp với CI/CD:
Sử dụng Newman: Công cụ dòng lệnh của Postman cho phép chạy
các Collection trong môi trường CI/CD như Jenkins, GitLab CI, hay Travis CI.
Thiết lập tự động hóa: Tích hợp quá trình kiểm thử API vào
pipeline CI/CD để tự động chạy kiểm thử mỗi khi có thay đổi mã nguồn.
1.2.6 Báo cáo và Phân tích Kết quả:
Xem báo cáo trong Postman: Sử dụng giao diện của Postman để
xem kết quả kiểm thử chi tiết.
Tạo báo cáo tùy chỉnh với Newman: Sử dụng các plugin hoặc
script bổ sung để tạo báo cáo HTML, JSON, hoặc các định dạng khác phù hợp với yêu cầu của dự án.
1.3 Áp dụng kiểm thử tự động với một chức năng của app/website
Để chi tiết hơn về quá trình áp dụng kiểm thử tự động với một chức năng của ứng dụng hoặc website, ta có thể mở rộng ví dụ kiểm thử API Đăng nhập đã nêu ở trên Dưới đây là hướng dẫn cụ thể để kiểm thử một chức năng khác, chẳng hạn như API Lấy thông tin người dùng (Get User Info), sử dụng Postman.
Trang 13Bước 1: Tạo yêu cầu API Lấy thông tin người dùng
Tạo yêu cầu mới trong Collection "Authentication APIs":
o Tên yêu cầu: "Get User Info"
đã đăng nhập.
Bước 2: Viết Scripts Kiểm thử cho yêu cầu Lấy thông tin người dùng
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response contains user information", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("username");
pm.expect(jsonData).to.have.property("email");
pm.expect(jsonData).to.have.property("name");
});
pm.test("User is active", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.active).to.be.true;
});
Bước 3: Kiểm thử Lỗi khi không có Token
1 Tạo yêu cầu mới trong Collection:
Trang 14o Mô tả: Yêu cầu này sẽ kiểm tra phản hồi khi không có token xác thực.
2 Test Script:
pm.test("Status code is 401", function () {
pm.response.to.have.status(401);
});
pm.test("Error message is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("No token provided.");
2 Chạy tất cả các yêu cầu:
bao gồm cả yêu cầu "Login User", "Get User Info", và "Get User Info - No Token".
3 Xem kết quả kiểm thử:
kết quả và xem các lỗi nếu có.
Bước 5: Tạo báo cáo kiểm thử
thử để xem tổng quan về số lượng yêu cầu đã thực hiện, thời gian phản hồi, và số lượng kiểm thử đã pass/fail.
newman run Authentication_APIs.postman_collection.json -e Development.postman_environment.json -r cli,html
và lỗi.
Trang 15CHƯƠNG 2: ĐẶC TẢ PHẦN MỀM 2.1 Giới thiệu về phần mềm
Ứng dụng mạng xã hội cho phép người dùng thực hiện các hoạt
động sau:
- Quản lý bài post: Người dùng có thể chia sẻ nội dung văn bản,
hình ảnh và video Họ cũng có thể tương tác với các bài viết thông qua bình luận, thích (like) và chia sẻ bài viết với bạn bè hoặc trong cộng đồng.
- Nhắn tin: Ứng dụng hỗ trợ gửi và nhận tin nhắn trong thời gian
thực Người dùng có thể gửi tin nhắn văn bản hoặc đa phương tiện, bao gồm hình ảnh và video.
- Tính năng cộng đồng: Người dùng có thể tham gia các nhóm,
tương tác với các thành viên khác, bình luận và thảo luận về các chủ đề trong nhóm, từ đó tạo ra một không gian giao lưu và chia sẻ kiến thức.
- Kết bạn: Người dùng có thể tìm kiếm và gửi yêu cầu kết bạn với
những người dùng khác, quản lý danh sách bạn bè và tương tác với họ thông qua các tính năng khác của ứng dụng.
- Đăng nhập/Đăng ký: Ứng dụng cho phép người dùng đăng ký tài
khoản mới và đăng nhập vào hệ thống để thực hiện các hoạt động trên Quy trình này được thiết kế đơn giản và nhanh chóng để thuận tiện cho người dùng.
Ứng dụng này tương thích với cả nền tảng web và di động, được phát triển với giao diện đơn giản và dễ sử dụng, đặc biệt hỗ trợ tốt cho các thiết bị di động thông qua Expo, giúp người dùng có trải nghiệm mượt mà
và thân thiện.
2.2 Đặc tả yêu cầu của phần mềm
2.2.1 Đặc tả yêu cầu chức năng
2.2.1.1 Use case chức năng quản lý bài post
Mô tả Use Case
Cho phép người dùng tạo, sửa, xóa bài viết trên tường
cá nhân hoặc trong các nhóm cộng đồng Nội dung bài viết có thể bao gồm văn bản, hình ảnh, và video.
Trang 16Luồng sự kiện
chính
1 Người dùng đăng nhập vào hệ thống.
2 Người dùng chọn chức năng "Tạo bài viết mới".
3 Người dùng nhập nội dung bài viết và có thể đính kèm hình ảnh/video (nếu có).
4 Người dùng nhấn nút "Đăng bài".
5 Hệ thống lưu bài viết và hiển thị lên tường cá nhân hoặc cộng đồng.
2.2.1.2 Biểu đồ hoạt động của chức năng quản lý bài post
Biểu đồ hoạt động phân luồng giữa người dùng và hệ thống:
1 Người dùng chọn "Tạo bài viết mới".
tải lại tệp.
5. Người dùng nhấn nút "Đăng bài".
Trang 172.2.2.1 Use case chức năng nhắn tin
và từ bạn bè trong hệ thống.
Luồng sự kiện chính
1 Người dùng đăng nhập vào hệ thống.
2 Người dùng chọn người bạn để nhắn tin.
3 Người dùng nhập nội dung tin nhắn.
2.2.2.2 Biểu đồ hoạt động của chức năng nhắn tin
4. Người dùng nhấn "Gửi".
Trang 185 Hệ thống gửi tin nhắn và cập nhật cuộc hội thoại giữa hai người dùng.
2.2.3.1 Use case chức năng quản lý cộng đồng
Mô tả Use Case Cho phép người dùng tạo, tham gia, và quản lý các nhóm cộng đồng trong hệ thống.
Luồng sự kiện chính
1 Người dùng đăng nhập vào hệ thống.
2 Người dùng chọn chức năng "Tạo cộng đồng".
3 Người dùng nhập thông tin cộng đồng và nhấn nút "Tạo".
4 Hệ thống lưu cộng đồng và hiển thị trên giao diện.
2.2.3.2 Biểu đồ hoạt động của chức năng quản lý cộng đồng
Trang 192.2.4.1 Use case chức năng Đăng nhập - Đăng ký
Mô tả Use Case Cho phép người dùng đăng nhập vào hệ thống hoặc tạo tài khoản mới.
2.2.4.2 Biểu đồ hoạt động của chức năng Đăng nhập/Đăng ký
2.2.5.1 Use case chức năng Kết bạn
Trang 20Mô tả Use Case Cho phép người dùng gửi yêu cầu kết bạn và quản lý danh sách bạn bè của mình.
Luồng sự kiện chính
1 Người dùng đăng nhập vào hệ thống.
2 Người dùng tìm kiếm và chọn người dùng khác.
3 Người dùng nhấn nút "Gửi yêu cầu kết bạn".
4 Hệ thống lưu yêu cầu kết bạn và thông báo cho người nhận.
Biểu đồ lớp mô tả các thành phần chính trong hệ thống mạng xã hội như:
trạng thái đăng nhập.
Lớp Post: chứa thông tin về bài viết, bao gồm nội dung, hình ảnh/video, và tương tác của người dùng.
tương tác trong nhóm.
Trang 21CHƯƠNG 3: KẾ HOẠCH TEST`
- Mục đích của việc lập kế hoạch test
Xác định những thông tin dự án và các thành phần dự án cần được kiểm thử
Liệt kê những yêu cầu kiểm thử (Test Requirements)
Nêu ra những phương pháp, chiến lược kiểu thử nên sử dụng
Xác định nguồn lực
Xác định rõ phạm vi kiểm thử
Xác định môi trường kiểm thử
3.1 Phạm vi kiểm thử (Test Scope)
Phạm vi kiểm thử sẽ bao gồm các chức năng chính của ứng dụng mạng xã hội 2Friend Những chức năng này sẽ được kiểm thử để đảm bảo chúng hoạt động đúng yêu cầu, không phát sinh lỗi và có khả năng tương thích trên nhiều nền tảng:
Testing
Itegration Testing
Security & Access Control Testing
Đăng ký và đăng nhập: Kiểm tra quá trình đăng ký tài khoản mới
và đăng nhập hệ thống với thông tin hợp lệ và không hợp lệ.
Quản lý bài viết: Tạo, chỉnh sửa và xóa bài viết với nội dung văn
bản, hình ảnh và video.
Nhắn tin: Gửi và nhận tin nhắn văn bản, hình ảnh, và video giữa
người dùng.
Trang 22 Quản lý cộng đồng: Tham gia nhóm, tương tác với bài viết trong
nhóm và các chức năng tương tác khác như like, share, bình luận.
Tính năng thông báo: Nhận thông báo về các sự kiện như tin nhắn
mới, lời mời kết bạn và phản hồi bình luận.
Bảo mật: Đăng nhập nhiều lần thất bại sẽ kích hoạt CAPTCHA;
kiểm tra mã hóa tin nhắn.
Các chức năng không cần kiểm thử
Cập nhật API từ bên thứ ba: Nếu có các chức năng phụ thuộc vào
API bên thứ ba, chúng sẽ không nằm trong phạm vi kiểm thử.
Tính năng chưa hoàn thiện: Những tính năng đang trong quá trình
phát triển sẽ không kiểm thử.
3.3 Công cụ kiểm thử (Test Tools)
Self construction Version
2 Kiểm soát lỗi
Latest
3 Kiểm thử tự động giao diện Selenium SeleniumHQ Latest
5
Kiểm thử tự động
trên ứng dụng di
động
Compass
Open - source