Sản phẩm dự kiến- “Ứng dụng PHP framework Laravel để xây dựng website tuyển dụng và tìm kiếm việc làm” hoàn thiện, chạy ổn định các chức năng chính; - Cơ sở dữ liệu trong hệ quản trị MyS
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
WEBSITE TUYỂN DỤNG VÀ TÌM KIẾM VIỆC LÀM
Sinh viên thực hiện : Mai Thị Nga
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 3………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
i
Trang 4………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5Tên đề tài: Ứng dụng PHP framework Laravel để xây dựng website tuyển dụng vàtìm kiếm việc làm.
Sinh viên thực hiện: Mai Thị Nga
và chính xác hơn Với việc sử dụng Laravel, đây là một PHP framework có mã nguồn
mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theokiến trúc MVC Điều này giúp nhà phát triển dễ dàng tìm kiếm tài liêu hỗ trợ thực hiệncác chức năng cũng như sửa lỗi
Tóm lại, website “ỨNG DỤNG PHP FRAMEWORK LARAVEL ĐỂ XÂYDỰNG WEBSITE TUYỂN DỤNG VÀ TÌM KIẾM VIỆC LÀM” được xây dựngnhằm phục vụ, hỗ trợ những cá nhân, tổ chức đang có nhu cầu tuyển dụng và tìm việclàm Hệ thống sẽ cung cấp môi trường kết nối giữa nhà tuyển dụng và người tìm việc,tối ưu quy trình ứng tuyển và quản lý tuyển dụng trực tuyến
iii
Trang 6NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: ThS Đỗ Phú Huy
1 Tên đề tài
Ứng dụng PHP framework Laravel để xây dựng website tuyển dụng và tìm kiếm
việc làm
2 Các số liệu, tài liệu ban đầu
- Các tài liệu tham khảo được lấy từ nhiều nguồn khác nhau:
Các website liên quan và hướng dẫn về PHP, laravel
Các khóa học lập trình trên YouTube
3 Nội dung chính của đồ án
Mở đầu
1 Mục tiêu đề tài
2 Đối tượng nghiên cứu và phạm vi nghiên cứu
3 Phương pháp nghiên cứu
Chương 2: Phân tích thiết kế hệ thống
1 Khảo sát yêu cầu
2 Phân tích thiết kế hệ thống
Chương 3: Xây dựng chương trình
1 Cài đặt cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu
2 Công cụ xây dựng
3 Giao diện chương trình
KHOA CÔNG NGHỆ SỐ Độc lập - Tự do - Hạnh phúc
Trang 74 Sản phẩm dự kiến
- “Ứng dụng PHP framework Laravel để xây dựng website tuyển dụng và tìm kiếm
việc làm” hoàn thiện, chạy ổn định các chức năng chính;
- Cơ sở dữ liệu trong hệ quản trị MySQL;
- File word báo cáo đồ án tốt nghiệp;
- Slide giới thiệu – báo cáo đề tài.
Trang 8Trong bối cảnh thị trường lao động ngày càng phát triển mạnh mẽ, nhu cầu vềviệc kết nối giữa nhà tuyển dụng và người tìm việc ngày càng trở nên cấp thiết Sựbùng nổ của công nghệ thông tin đã mở ra nhiều cơ hội cho việc ứng dụng các nềntảng trực tuyến nhằm tối ưu quy trình tuyển dụng, đồng thời giúp người lao động dễdàng tiếp cận các cơ hội nghề nghiệp phù hợp.
Trước xu hướng đó, em đã lựa chọn đề tài “Ứng dụng PHP framework Laravel đểxây dựng website tuyển dụng và tìm kiếm việc làm” với mong muốn phát triển một hệthống website chuyên nghiệp, hỗ trợ hiệu quả quá trình tuyển dụng và tìm kiếm việclàm Đề tài này không chỉ giúp các nhà tuyển dụng dễ dàng quản lý tin tuyển dụng vàứng viên, mà còn tạo ra môi trường thuận tiện cho người lao động tìm kiếm công việctheo đúng nhu cầu
Laravel – một PHP framework hiện đại, là lựa chọn tối ưu cho việc xây dựng hệthống web bởi tính bảo mật cao, tốc độ phát triển nhanh và khả năng mở rộng linhhoạt Hệ thống được thiết kế với giao diện trực quan, dễ sử dụng và tích hợp nhiều tínhnăng hỗ trợ như tìm kiếm công việc theo từ khóa, lĩnh vực, địa điểm và quản lý hồ sơtrực tuyến
Với tinh thần học hỏi và sáng tạo, chúng tôi hy vọng rằng đề tài sẽ mang lại giá trịthực tiễn, giúp các doanh nghiệp tiết kiệm chi phí tuyển dụng và mở ra nhiều cơ hộiviệc làm cho cộng đồng
Em cũng xin gửi lời cảm sâu sắc đến GVHD ThS Đỗ Phú Huy với sự hướng dẫntận tình em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phântích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Emrất mong nhận được sự thông cảm và góp ý của quý Thầy cô
Em xin chân thành cảm ơn!
Trang 9NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN i
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii
TÓM TẮT iii
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP iv
LỜI NÓI ĐẦU vi
MỤC LỤC vii
CAM ĐOAN xii
DANH MỤC HÌNH VẼ xiii
DANH MỤC BẢNG BIỂU xv
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT xvi
MỞ ĐẦU 1
1 Mục đích đề tài 1
2 Mục tiêu đề tài 2
3 Đối tượng nghiên cứu và phạm vi nghiên cứu 3
3.1 Đối tượng nghiên cứu 3
3.2 Phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu, lựa chọn giải pháp công nghệ 3
4.1 Phương pháp nghiên cứu: 3
4.2 Lựa chọn giải pháp công nghệ: 3
5 Cấu trúc đồ án tốt nghiệp 3
Chương 1: CƠ SỞ LÝ THUYẾT 5
1.1 Hệ quản trị cơ sở dữ liệu MySQL 5
1.1.1 Khái quát về hệ quản trị CSDLMySQL 5
1.1.2 Đặc điểm chính của hệ quản trị CSDL MySQL 5
1.1.3 Quy trình hoạt động của MySQL 6
1.2 Ngôn ngữ PHP 6
Trang 101.2.2 Cách hoạt động của PHP 7
1.2.3 Các bước cài đặt Web server (XAMPP) 7
1.3 Framework Laravel 8
1.3.1 Framework là gì? PHP Framework là gì? 8
1.3.2 Mô hình MVC 9
1.3.3 Framework Laravel là gì? 9
1.3.4 Lịch sử phát triển, ưu nhược điểm của Laravel 10
1.4 Kiểm thử phần mềm 10
1.4.1 Khái niệm 11
1.4.2 Các cấp độ kiểm thử phần mềm 11
1.4.2.2 Kiểm thử đơn vị 11
1.4.2.3 Kiểm thử tích hợp 11
1.4.2.4 Kiểm thử hệ thống 12
1.4.2.5 Kiểm thử chấp nhận 12
1.4.3 Các nguyên tắc cơ bản của kiểm thử phần mềm 12
1.4.3.1 Kiểm thử luôn có lỗi 12
1.4.3.2 Kiểm thử toàn bộ là không thể 12
1.4.3.3 Kiểm thử càng sớm càng tốt 13
1.4.3.4 Sự tập trung của lỗi 13
1.4.3.5 Nghịch lý thuốc trừ sâu 13
1.4.3.6 Kiểm thử phụ thuộc vào ngữ cảnh 13
1.4.3.7 Không có lỗi – sai lầm 13
1.4.4 Quy trình kiểm thử phần mềm 14
1.4.4.2 Lập kế hoạch 14
1.4.4.3 Thiết kế test case 14
1.4.4.4 Phát triển test script 15
1.4.4.5 Thực hiện kiểm thử 15
Trang 111.4.5 Thiết kế test case 15
1.4.5.1 Các bước viết một test case 16
1.4.5.2 Các kỹ năng viết test case 17
1.4.6 Các kỹ thuật kiểm thử phần mềm 17
1.4.6.1 Kiểm thử hộp đen 17
1.4.6.2 Kiểm thử hộp trắng 18
Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 20
2.1 Đặc tả yêu cầu phần mềm 20
2.1.1 Khách vãng lai 20
2.1.2 Ứng viên tìm kiếm việc làm 20
2.1.3 Nhà tuyển dụng 20
2.1.4 Quản trị viên hệ thống 20
2.2 Sơ đồ Use-case 21
2.3 Kịch bản cho Use-case 22
2.3.1 Use-case đăng nhập 22
2.3.1.1 Kịch bản 22
2.3.1.2 Sơ đồ hoạt động 23
2.3.1.3 Sơ đồ tuần tự 24
2.3.2 Use-case đăng ký 24
2.3.2.1 Kịch bản 24
2.3.2.2 Sơ đồ hoạt động 25
2.3.2.3 Sơ đồ tuần tự 26
2.3.3 Use-case xem thông tin chi tiết việc làm 27
2.3.3.1 Kịch bản 27
2.3.3.2 Sơ đồ hoạt động 27
2.3.3.3 Sơ đồ tuần tự 28
2.3.4 Use-case xem thông tin chi tiết nhà tuyển dụng 28
Trang 122.3.4.2 Sơ đồ hoạt động 29
2.3.4.3 Sơ đồ tuần tự 29
2.3.5 Use-case xem thông tin chi tiết Bài viết 30
2.3.5.1 Kịch bản 30
2.3.5.2 Sơ đồ hoạt động 30
2.3.5.3 Sơ đồ tuần tự 31
2.3.6 Use-case cập nhật tài khoản 32
2.3.6.1 Kịch bản 32
2.3.6.2 Sơ đồ hoạt động 32
2.3.6.3 Sơ đồ tuần tự 33
2.3.7 Use-case nộp CV ứng tuyển việc làm 33
2.3.7.1 Kịch bản 33
2.3.7.2 Sơ đồ hoạt động 34
2.3.7.3 Sơ đồ tuần tự 35
2.3.8 User-case xem CV ứng tuyển 35
2.3.8.1 Kịch bản 35
2.3.8.2 Sơ đồ hoạt động 36
2.3.9 Use-case gửi email cho ứng viên 37
2.3.9.1 Kịch bản 37
2.3.9.2 Sơ đồ hoạt động 38
2.3.9.3 Sơ đồ tuần tự 39
2.4 Sơ đồ ERD 40
Chương 3: XÂY DỰNG CHƯƠNG TRÌNH 41
3.1 Trang dành cho Ứng viên và Khách vãng lai 41
3.1.1 Trang chủ 41
3.1.2 Trang Việc làm 42
3.1.3 Trang Chi tiết việc làm 44
Trang 133.1.5 Trang Chi tiết Bài viết 46
3.1.6 Trang Nhà tuyển dụng 47
3.1.7 Trang Chi tiết Nhà tuyển dụng 48
3.1.8 Trang Đăng nhập 49
3.1.9 Trang Đăng ký 50
3.1.10 Trang Quên mật khẩu 51
3.2 Trang dành cho Nhà tuyển dụng 52
3.2.1 Trang đăng nhập 52
3.2.2 Trang đăng ký 53
3.2.3 Trang Dashboard 56
3.2.4 Trang Quản lý đăng tuyển 58
3.2.5 Trang Tạo tin tuyển dụng 60
3.2.6 Trang Quản lý ứng viên 62
3.2.7 Trang Thông tin công ty 64
3.2.8 Trang Thông tin tài khoản 64
3.2.9 Trang Đổi mật khẩu 65
3.2.10 Trang Cấu hình Email 66
3.2.11 Trang Tạo Email 67
3.3 Trang dành cho Admin 69
3.3.1 Trang Quản lý việc làm 69
3.3.2 Trang Quản lý Nhà tuyển dụng 70
3.3.3 Trang Quản lý Bài viết 71
KẾT LUẬN & HƯỚNG PHÁT TRIỂN 74
TÀI LIỆU THAM KHẢO 75
Trang 14Em xin cam đoan:
Đỗ Phú Huy
trình, thời gian, địa điểm công bố
chịu hoàn toàn trách nhiệm
Sinh viên thực hiện
Mai Thị Nga
Trang 15Hình 1.1: Hình ảnh MySQL 5
Hình 1.2: Mô hình hoạt động Client – Server 6
Hình 1.3: Quy trình hoạt động của PHP 7
Hình 1.4: Giao diên Web server (XAMPP) 8
Hình 1.5: Mô hình MVC 9
Hình 1.6: Bốn cấp độ cơ bản của kiểm thử phần mềm 11
Hình 1.7: Các bước trong một quy trình kiểm thử phần mềm 14
Hình 2.1: Sơ đồ Use-case 21
Hình 2.2: Sơ đồ hoạt động use-case đăng nhập 23
Hình 2.3: Sơ đồ tuần tự use-case đăng nhập 24
Hình 2.4: Sơ đồ hoạt động use-case đăng ký 25
Hình 2.5: Sơ đồ tuần tự use-case đăng ký 26
Hình 2.6: Sơ đồ hoạt động use-case xem TTCT việc làm 27
Hình 2.7: Sơ đồ tuần tự use-case xem TTCT việc làm 28
Hình 2.8: Sơ đồ hoạt động use-case xem TTCT nhà tuyển dụng 29
Hình 2.9: Sơ đồ tuần tự use-case xem TTCT nhà tuyển dụng 29
Hình 2.10: Sơ đồ hoạt động use-case xem TTCT bài viết 30
Hình 2.11: Sơ đồ tuần tự use-case xem TTCT bài viết 31
Hình 2.12: Sơ đồ hoạt động use-case cập nhật tài khoản 33
Hình 2.13: Sơ đồ tuần tự use-case cập nhật tài khoản 33
Hình 2.14: Sơ đồ hoạt động use-case nộp CV ứng tuyển việc làm 34
Hình 2.15: Sơ đồ tuần tự user-case nộp CV ứng tuyển 35
Hình 2.16: Sơ đồ hoạt động use-case xem CV ứng tuyển 36
Hình 2.17: Sơ đồ tuần tự use-case gửi email cho Ứng viên 36
Hình 2.18: Sơ đồ hoạt động use-case gửi email cho ứng viên 38
Hình 2.19: Sơ đồ tuần tự use-case gửi email cho Ứng viên 39
Hình 2.20: Sơ đồ ERD 40
Trang 16Hình 3.2: Giao diện trang việc làm 42
Hình 3.3: Giao diện trang chi tiết việc làm 44
Hình 3.4: Giao diện trang cẩm nang – tin tức 45
Hình 3.5: Giao diện trang chi tiết bài viết 46
Hình 3.6: Giao diện trang nhà tuyển dụng 47
Hình 3.7: Giao diện trang chi tiết nhà tuyển dụng 48
Hình 3.8: Giao diện trang đăng nhập - Ứng viên 49
Hình 3.9: Giao diện trang đăng ký - Ứng viên 50
Hình 3.10: Giao diện trang quên mật khẩu - Ứng viên 52
Hình 3.11: Giao diện trang đăng nhập 52
Hình 3.12: Giao diện trang đăng kí 53
Hình 3.13: Giao diện trang dashboard 56
Hình 3.14: Giao diện trang quản lý đăng tuyển 58
Hình 3.15: Giao diện trang tạo tin tuyển dụng 60
Hình 3.16: Giao diện trang quản lý ứng viên 63
Hình 3.17: Giao diện trang thông tin công ty 64
Hình 3.18: Giao diện trang thông tin tài khoản 65
Hình 3.19: Giao diện trang đổi mật khẩu 65
Hình 3.20: Giao diện trang cấu hình email 66
Hình 3.21: Giao diện trang tạo email 67
Hình 3.22: Giao diện trang quản lý việc làm 69
Hình 3.23: Giao diện trang quản lý nhà tuyển dụng 70
Hình 3.24: Giao diện trang quản lý bài viết 71
Hình 3.25: Giao diện trang danh mục bài viết 72
Hình 3.26: Giao diện trang tạo bài viết 73
Trang 17Bảng 3.1 Kịch bản use-case đăng nhập 22
Bảng 3.2 Kịch bản use-case đăng ký 25
Bảng 3.3 Kịch bản use-case xem TTCT việc làm 27
Bảng 3.4 Kịch bản use-case xem TTCT Nhà tuyển dụng 28
Bảng 3.5 Kịch bản use-case xem TTCT bài viết 30
Bảng 3.6 Kịch bản use-case cập nhật tài khoản 32
Bảng 3.7 Kịch bản use-case nộp CV ứng tuyển 33
Bảng 3.8 Kịch bản use-case xem CV ứng tuyển 35
Bảng 3.9 Kịch bản use-case gửi email cho ứng viên 37
Trang 18Stt Chữ viết tắt Giải nghĩa
Trang 19MỞ ĐẦU
Sự phát triển mạnh mẽ của công nghệ thông tin đã và đang làm thay đổi cách thứchoạt động của nhiều lĩnh vực trong đời sống, trong đó có thị trường lao động và tuyểndụng Quá trình chuyển đổi số không chỉ diễn ra trong các doanh nghiệp lớn mà còn
mở rộng đến các doanh nghiệp vừa và nhỏ, thúc đẩy việc áp dụng các nền tảng trựctuyến vào quy trình tuyển dụng nhân sự
Trước đây, các công ty thường sử dụng các phương pháp truyền thống như đăngtin tuyển dụng trên báo giấy, truyền miệng hoặc tổ chức các hội chợ việc làm Tuynhiên, các phương pháp này tốn nhiều thời gian, chi phí và có phạm vi tiếp cận hạnchế Ngược lại, các website tuyển dụng trực tuyến giúp kết nối nhanh chóng giữa nhàtuyển dụng và người tìm việc, mở ra cơ hội lớn hơn cho cả hai bên
PHP là một trong những ngôn ngữ lập trình phổ biến nhất trong phát triển web,với ưu điểm là dễ học, linh hoạt và có cộng đồng hỗ trợ lớn Laravel – một frameworkmạnh mẽ của PHP, đã trở thành lựa chọn hàng đầu cho các lập trình viên trong việcxây dựng các ứng dụng web hiện đại Với cú pháp rõ ràng, khả năng mở rộng cao vàtích hợp nhiều công cụ hỗ trợ sẵn có, Laravel cho phép lập trình viên phát triển các dự
án nhanh chóng, an toàn và hiệu quả
Việc ứng dụng Laravel vào xây dựng website tuyển dụng và tìm kiếm việc làmkhông chỉ đáp ứng nhu cầu tuyển dụng của các doanh nghiệp mà còn hỗ trợ người laođộng tiếp cận các cơ hội nghề nghiệp một cách nhanh chóng và dễ dàng Chính vì vậy,
em quyết định thực hiện đề tài này với mong muốn ứng dụng những tiến bộ của côngnghệ web, đặc biệt là Laravel, để xây dựng một hệ thống tuyển dụng chuyên nghiệp,
hỗ trợ hiệu quả cho cả nhà tuyển dụng và người tìm việc
1 Mục đích đề tài
Sự phát triển nhanh chóng của công nghệ thông tin và sự bùng nổ của Internet đã làmthay đổi sâu sắc cách thức vận hành của nhiều lĩnh vực, trong đó có thị trường laođộng và tuyển dụng Hiện nay, các nền tảng trực tuyến không chỉ giúp doanh nghiệptìm kiếm ứng viên nhanh chóng mà còn tạo điều kiện cho người lao động tiếp cậnnhiều cơ hội việc làm hơn, bất kể khoảng cách địa lý
Tuy nhiên, thực tế cho thấy, phần lớn các doanh nghiệp vừa và nhỏ vẫn chưa có đủnguồn lực để phát triển một hệ thống tuyển dụng trực tuyến hoàn chỉnh Việc sử dụngcác nền tảng tuyển dụng lớn thường đi kèm với chi phí cao và không phải lúc nào cũngphù hợp với đặc thù tuyển dụng của các doanh nghiệp nhỏ Điều này đặt ra nhu cầu về
Trang 20một hệ thống tuyển dụng trực tuyến đơn giản, hiệu quả, dễ triển khai và chi phí thấp,
có thể dễ dàng áp dụng cho nhiều loại hình doanh nghiệp
“Ứng dụng PHP framework Laravel để xây dựng website tuyển dụng và tìm kiếm việclàm” đáp ứng nhu cầu tìm việc làm và tuyển dụng hiện nay Tạo cơ hội cho ứng viêntìm được việc làm thích hợp cũng như nhà tuyển dụng tìm được nhân tài phù hợp
2 Mục tiêu đề tài
Hiện nay, các website tìm kiếm việc làm ở Việt Nam khá phát triển nhưng vẫn chưa cónhiều website đáp ứng được nhu cầu của ứng viên cũng như nhà tuyển dụng Với sựphát triển mạnh mẽ của công nghệ số hiện nay thì nhu cầu tìm kiếm việc làm trở nêncấp thiết và việc tìm kiếm việc làm online rất được ưa chuộng bởi sự thuận tiện mà nómang lại Từ đó, đề tài “Ứng dụng php framework laravel để xây dựng website tuyểndụng và tìm kiếm việc làm.” đặt ra nhằm giúp việc tìm kiếm việc làm cũng như tuyểndụng trở nên dễ dàng và linh hoạt hơn, tạo hiệu quả và tiện ích cho doanh nghiệp vớicác mục tiêu cụ thể sau:
Cho phép ứng viên tìm kiếm việc làm phù hợp và nộp CV ứng tuyển sau khi đãtạo tài khoản thành công
Cho phép nhà tuyển dụng thiết lập tài khoản của doanh nghiệp mình và tiến hànhcác bước tuyển dụng
Các ứng viên, nhà tuyển dụng được nhận các email thông báo về tài khoản, việclàm và những thông tin liên quan
Trang 213 Đối tượng nghiên cứu và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
3.2 Phạm vi nghiên cứu
Nghiên cứu những vấn đề trong xây dựng website tuyển dụng và tìm kiếm việc làm
4 Phương pháp nghiên cứu, lựa chọn giải pháp công nghệ
4.1 Phương pháp nghiên cứu:
web
4.2 Lựa chọn giải pháp công nghệ:
dụng JavaScript và Bootstrap để làm website thêm sống động, hiệu ứng đẹp mắthơn
website theo kiến trúc MCV
giúp việc thao tác trên CSDL dễ dàng hơn
5 Cấu trúc đồ án tốt nghiệp
Mở đầu
Giới thiệu lý do và các mục tiêu mà đề tài cần giải quyết, phạm vi nghiên cứu của đềtài Giới thiệu tóm tắt nội dung sẽ được trình bày trong các chương trình tiếp theo.Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục đích khi xây dựng
và phát triển đề tài Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công nghệ
để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ
Chương 1: Cơ sở lý thuyết
Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình JavaScript, và hệquản trị cơ sở dữ liệu MySQL
Trang 22Chương 2: Phân tích thiết kế hệ thống
Phân tích các tác nhân và chức năng của từng tác nhân của hệ thống Thiết kế sơ đồuse-case, sơ đồ hoạt động, sơ đồ ERD Thiết kế cơ sở dữ liệu Xây dựng kịch bản chotừng use-case hệ thống
Chương 3: Xây dựng chương trình
Xây dựng giao diện và chức năng của hệ thống
Kết luận và hướng phát triển
Kết luận chung cho các chương trong đồ án Trình bày những vấn đề đã giải quyếtđồng thời trình bày hướng phát triển
Trang 23Chương 1: CƠ SỞ LÝ THUYẾT
1.1 Hệ quản trị cơ sở dữ liệu MySQL
1.1.1 Khái quát về hệ quản trị CSDL MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến và được
sử dụng rộng rãi trên toàn thế giới Nó được phát triển bởi Oracle Corporation và đượcphân phối dưới dạng phần mềm miễn phí hoặc có giấy phép thương mại MySQLđược xây dựng trên ngôn ngữ truy vấn cấu trúc (SQL) và cung cấp một loạt các tínhnăng và công cụ cho việc quản lý và truy xuất cơ sở dữ liệu
Hình 1.1: Hình ảnh MySQL
1.1.2 Đặc điểm chính của hệ quản trị CSDL MySQL
- Hỗ trợ ngôn ngữ truy vấn cấu trúc (SQL): MySQL tuân thủ chuẩn SQL và
cung cấp các câu lệnh và chức năng để truy vấn, thêm, sửa đổi và xóa dữ liệutrong cơ sở dữ liệu
- Độ tin cậy và hiệu suất: MySQL được tối ưu hóa để cung cấp hiệu suất cao và độ
tin cậy trong việc xử lý các truy vấn và thao tác cơ sở dữ liệu
- Khả năng mở rộng: MySQL cho phép mở rộng cả theo chiều ngang và theo
chiều dọc, cho phép bạn tăng cường khả năng chịu tải và quy mô của cơ sở dữliệu
- Hỗ trợ đa nền tảng: MySQL có thể chạy trên nhiều hệ điều hành, bao gồm
Windows, macOS và các bản phân phối Linux
- Bảo mật: MySQL cung cấp các tính năng bảo mật như phân quyền người dùng và
mã hóa dữ liệu để bảo vệ cơ sở dữ liệu khỏi truy cập trái phép
Trang 241.1.3 Quy trình hoạt động của MySQL
- Kết nối: Người dùng kết nối đến MySQL Server bằng các ứng dụng hoặc công cụ
quản lý cơ sở dữ liệu
- Xử lý yêu cầu: MySQL Server nhận yêu cầu từ người dùng và xử lý các truy vấn
SQL tương ứng Điều này bao gồm việc phân tích cú pháp, tạo kế hoạch truy vấn,truy xuất dữ liệu từ bộ nhớ hoặc đĩa, và trả về kết quả cho người dùng
- Lưu trữ và truy xuất dữ liệu: MySQL sử dụng cấu trúc bảng để lưu trữ dữ liệu
dưới dạng hàng và cột Dữ liệu được lưu trữ trong các tập tin và các chỉ mục đượctạo để tăng tốc độ truy xuất dữ liệu
- Bảo đảm tính toàn vẹn dữ liệu: MySQL hỗ trợ các ràng buộc như khóa ngoại và
quản lý các giao dịch để đảm bảo tính toàn vẹn dữ liệu
- Sao lưu và phục hồi: MySQL cung cấp các công cụ để sao lưu và phục hồi dữ
liệu, bảo vệ dữ liệu khỏi mất mát hoặc hỏng hóc
Hình 1.1: Mô hình hoạt động Client – Server
Trang 25- PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ
sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux(LAMP)
• Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từtrình
duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trìnhduyệt
• MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress,Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
• Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho cácwebserver Thông thường các phiên bản được sử dụng nhiều nhất làRedHat
Enterprise Linux, Ubuntu
1.2.2 Cách hoạt động của PHP
Khi người sử PHP, Web Server sẽ gọi PHP Engine để thông dịch dịch trang PHP vàtrả kết quả cho client như hình bên dưới
Hình 1.1: Quy trình hoạt động của PHP
1.2.3 Các bước cài đặt Web server (XAMPP)
hành cài đặt như các chương trình thông thường
Trang 26Hình 1.1: Giao diên Web server (XAMPP)
thành công
1.3 Framework Laravel
1.3.1 Framework là gì? PHP Framework là gì?
lập trình viên sử dụng thay vì phải tự thiết kế Có Framework, lập trình viên chỉtìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoànchỉnh sản phẩm của mình Đối với lập trình viên trong mỗi một lĩnh vực, họ cầnphải xây dựng các lớp chương trình để xây dựng nên những phần mềm, ứng dụngthành phẩm
bằng ngôn ngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản
để xây dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp bạnthúc đẩy nhanh chóng quá trình phát triển ứng dụng Giúp bạn tiết kiệm được thờigian, tăng sự ổn định cho ứng dụng Giảm thiểu số lần phải viết lại code cho lậptrình viên
Trang 271.3.2 Mô hình MVC
Hình 1.1: Mô hình MVC
mục đích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chiathành ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp
vụ với giao diện người dùng
hiện trong giao diện người dùng Bảo đảm các nguyên tắc nghề nghiệp của lậptrình viên
1.3.3 Framework Laravel là gì?
nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC Hiện nay,Laravel đang là PHP framework phổ biến nhất và tốt nhất
Trang 28- Những lý do khiến Laravel trở nên rộng rãi:
• Cú pháp dễ hiểu – rõ ràng
• Hệ thống đóng gói modular và quản lý gói phụ thuộc
• Nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ
• Nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
1.3.4 Lịch sử phát triển, ưu nhược điểm của Laravel
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cungcấp nhiều tính năng quan trọng hơn như xác thực và phân quyền Tôi cũng không chắc
về điều này, nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầulàm việc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đóđang là một ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanhchóng nhận ra những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuấtsắc về designpattern của mình, Taylor quyết định tự mình tạo ra một framework saocho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhấtbằng nhiều tính năng hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phântrang hiệu quả, và hơn thế nữa
1.4 Kiểm thử phần mềm
Kiểm thử phần mềm là một hoạt động giữ vai trò rất quan trọng để bảo đảm chất lượngphần mềm và là hoạt động mang tính sống còn trong các dự án sản xuất hoặc gia côngphần mềm Vì vậy, kiểm thử phần mềm đã trở thành qui trình bắt buộc trong các dự ánphát triển phần mềm trên thế giới Ở Việt Nam, ngành công nghiệp phần mềm đangphát triển thì không thể xem nhẹ việc kiểm thử phần mềm vì xác suất thất bại sẽ rấtcao, hơn nữa, hầu hết các công ty phần mềm có uy tín đều đặt ra yêu cầu nghiêm ngặt
là nếu một phần mềm không có tài liệu kiểm thử đi kèm thì sẽ không được chấp nhận.Tuy nhiên, hoạt động kiểm thử thường gặp nhiều khó khăn:
- Thứ nhất, kiểm thử các hệ thống phức tạp đòi hỏi rất nhiều nguồn tài nguyên và
chi phí cao
- Thứ hai, tiến trình phát triển phần mềm luôn trải qua nhiều hoạt động biến đổi
thông tin, sự mất mát thông tin trong quá trình biến đổi là yếu tố chính làm chohoạt động kiểm thử khó khăn
- Thứ ba, kiểm thử chưa được chú trọng trong đào tạo con người.
- Cuối cùng, không tồn tại kỹ thuật kiểm thử cho phép khẳng định một phần
mềm hoàn toàn đúng đắn hay không chứa lỗi
Trang 291.4.1 Khái niệm
Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xemphần mềm có đúng với đặc tả không và thực hiện trong môi trường như mong đợi haykhông Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm mộtcách sớm nhất và bảo đảm rằng lỗi sẽ được sửa Mục tiêu của kiểm thử phần mềm làthiết kế tài liệu kiểm thử một cách có hệ thống và thực hiện nó sao cho có hiệu quả,nhưng tiết kiệm được thời gian, công sức và chi phí
1.4.2 Các cấp độ kiểm thử phần mềm
Hình 1.1: Bốn cấp độ cơ bản của kiểm thử phần mềm1.4.2.2 Kiểm thử đơn vị
Một đơn vị (Unit) là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được,
ví dụ: các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức(Method)
Trang 30Kiểm thử hệ thống kiểm tra cả các hành vi chức năng của phần mềm lẫn các yêu cầu
về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật
Kiểm thử hệ thống bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợpthành công
Điểm khác nhau then chốt giữa kiểm thử tích hợp và kiểm thử hệ thống là kiểm thử hệthống chú trọng các hành vi và lỗi trên toàn hệ thống, còn kiểm thử tích hợp 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ôngthường ta phải thực hiện kiểm thử đơn vị và kiểm thử tích hợp để 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 kiểm thử hệ thống.1.4.2.5 Kiểm thử chấp nhận
Mục đích của kiểm thử chấp nhận là kiểm thử khả năng chấp nhận cuối cùng để chắcchắn rằng sản phẩm là phù hợp và thỏa mãn các yêu cầu của khách hàng và kháchhàng chấp nhận sản phẩm
Trong giai đoạn kiểm thử chấp nhận thì người kiểm tra là khách hàng Khách hàng sẽđánh giá phần mềm với mong đợi theo những thao tác sử dụng quen thuộc của họ.Việc kiểm tra ở giai đoạn này có ý nghĩa hết sức quan trọng tránh cho việc hiểu sai yêucầu cũng như sự mong đợi của khách hàng
1.4.3 Các nguyên tắc cơ bản của kiểm thử phần mềm
1.4.3.1 Kiểm thử luôn có lỗi
Kiểm thử có thể cho thấy rằng phần mềm đang có lỗi, nhưng không thể chứng minhrằng một phần mềm không có lỗi
Kiểm thử làm giảm xác suất lỗi tiềm ẩn trong phần mềm, ngay cả khi đã kiểm thửnghiêm ngặt phần mềm vẫn có thể còn lỗi Vì vậy, cần phải tìm được càng nhiều lỗicàng tốt
1.4.3.2 Kiểm thử toàn bộ là không thể
Kiểm thử với tất cả các kết hợp đầu vào và đầu ra, với tất cả các kịch bản là không thểtrừ khi kiểm thử chỉ bao gồm một số ít trường hợp thì có thể kiểm thử toàn bộ.Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên sự mức độ ưu tiên ngườikiểm thử có thể tập trung việc kiểm thử vào một số điểm cần thiết, có nguy cơ lỗi caohơn Nghĩa là phải lên kế hoạch kiểm thử, thiết kế trường hợp kiểm thử sao cho có độbao phủ nhiều nhất và giảm thiểu rủi ro sót lỗi khi đến tay người dùng
Trang 311.4.3.3 Kiểm thử càng sớm càng tốt
Để tìm được lỗi sớm, các hoạt động kiểm thử nên được bắt đầu càng sớm càng tốttrong quy trình phát triển (vòng đời phát triển) phần mềm hoặc hệ thống, và nên tậptrung vào các hoạt động/mục tiêu đã xác định trước
Các hoạt động kiểm thử được bắt đầu càng sớm thì sẽ phát hiện ra lỗi sớm khi đó ít tốncông để tìm lỗi và sửa chữa
1.4.3.4 Sự tập trung của lỗi
Thông thường, lỗi tập trung vào những module, thành phần chức năng chính của hệthống Nếu xác định được điều này bạn sẽ tập trung vào tìm kiếm lỗi quanh khu vựcđược xác định Nó được coi là một trong những cách hiệu quả nhất để thực hiện kiểmtra hiệu quả
1.4.3.5 Nghịch lý thuốc trừ sâu
Nếu bạn sử dụng cùng một tập hợp các trường hợp kiểm thử liên tục, sau đó một thờigian các trường hợp kiểm thử không tìm thấy lỗi nào mới Hiệu quả của các trườnghợp kiểm thử bắt đầu giảm xuống sau một số lần thực hiện, vì vậy luôn luôn chúng taphải luôn xem xét và sửa đổi các trường hợp kiểm thử trên một khoảng thời gianthường xuyên
1.4.3.6 Kiểm thử phụ thuộc vào ngữ cảnh
Theo nguyên tắc này thì việc kiểm thử phụ thuộc vào ngữ cảnh và chúng ta phải tiếpcận kiểm thử theo nhiều ngữ cảnh khác nhau Nếu bạn đang kiểm thử ứng dụng web vàứng dụng di động bằng cách sử dụng chiến lược kiểm thử giống nhau, thì đó là sai.Chiến lược để kiểm thử ứng dụng web sẽ khác với kiểm thử ứng dụng cho thiết bị diđộng của Android
1.4.3.7 Không có lỗi – sai lầm
Việc không tìm thấy lỗi trên sản phẩm không đồng nghĩa với việc sản phẩm đã sẵnsàng để tung ra thị trường Việc không tìm thấy lỗi cũng có thể là do bộ trường hợpkiểm thử được tạo ra chỉ nhằm kiểm tra những tính năng được làm đúng theo yêu cầuthay vì nhằm tìm kiếm lỗi mới
Trang 32Các bước lập kế hoạch kiểm thử:
- Xác định yêu cầu kiểm thử: Xác định những gì cần phải kiểm thử dựa theo yêu
cầu từ khách hàng, đặc tả yêu cầu người sử dụng
- Xác định các chiến lược kiểm thử: Xác định phương thức, loại kiểm thử cần
thực hiện và tiêu chí đầu ra
- Xác định tài nguyên, môi trường: Xác định nguồn nhân lực và môi trường
thực hiện kiểm thử (số lượng người, yêu cầu về phần cứng, phần mềm, công
cụ hỗ trợ…)
- Lập thời gian cho các giai đoạn kiểm thử:
- Đánh giá kế hoạch: Trưởng dự án sẽ cùng những người liên quan tham gia
đánh giá xem bản kế hoạch kiểm thử có phù hợp với yêu cầu dự án chưa Nếuchưa thì sẽ phải thực hiển sửa lại theo yêu cầu
- Thông báo tới các bên liên quan: Trưởng dự án sẽ gửi thông báo toàn bộ
những người trong dự án có liên quan đến kế hoạch kiểm thử
1.4.4.3 Thiết kế test case
Nhằm chỉ định các test case và các bước kiểm tra chi tiết cho mỗi phần mềm Giaiđoạn thiết kế test case là hết sức quan trọng, nó đảm bảo các tình huống kiểm thử bao
Trang 331.4.4.4 Phát triển test script
Bước này thường không bắt buộc trong các loại và mức kiểm thử, chỉ yêu cầu trongnhững trường hợp đặc thù cần thiết kế, tạo ra các test script có khả năng chạy trên máytính giúp tự động hóa việc thực thi các bước kiểm tra đã định nghĩa ở các bước thiết kếkiểm thử
1.4.4.5 Thực hiện kiểm thử
- Thiết lập môi trường và cài đặt: Để thực hiện kiểm thử, thao tác đầu tiên cần
làm là xác lập và khởi động môi trường kiểm thử Việc này nhằm đảm bảo tất
cả các bộ phận liên quan (phần cứng, phần mềm, máy chủ, mạng, dữ liệu…)
đã được cài đặt và sẵn sàng trước khi chính thức bắt đầu thực hiện kiểm thử
- Tiến hành kiểm thử theo các trường hợp kiểm thử đã chuẩn bị.
- Thẩm định kết quả kiểm thử: Sau khi tiến hành kiểm thử, kết quả kiểm thử
cần được xem xét để đảm bảo kết quả nhận được là đáng tin cậy Nhận biếtđược những lỗi không phải do phần mềm mà do dữ liệu dùng để kiểm thử,môi trường kiểm thử, hoặc các bước kiểm thử gây ra Nếu thực sự lỗi xảy ra
do quá trình kiểm thử, cần phải sửa chữa và kiểm tra lại từ đầu
1.4.4.6 Đánh giá quá trình kiểm thử
- Thống kê số lượng lỗi.
- Phân tích kết quả kiểm thử và yêu cầu sửa chữa: Chỉ định và đánh giá sự khác
biệt giữa kết quả mong đợi và kết quả thực tế, tổng hợp và gửi thông tin yêucầu sửa chữa đến những người có trách nhiệm trong dự án, lưu trữ để kiểm trasau đó
- Đánh giá chất lượng sản phẩm kiểm thử: Từ những kết quả kiểm thử, nhóm
kiểm thử sẽ xem xét, đánh giá chất lượng sản phẩm
- Thông báo tới các bên liên quan: Trưởng dự án sẽ thông báo cho các bên liên
quan về kết quả kiểm thử đạt được
1.4.5 Thiết kế test case
Test case mô tả một dữ liệu đầu vào (input), hành động (action) hoặc sự kiện (event)
và một kết quả mong đợi (expected response), để xác định một chức năng của ứngdụng phần mềm hoạt động đúng hay không
Quá trình phát triển test case có thể giúp tìm ra lỗi trong các yêu cầu hoặc thiết kế củaứng dụng, vì nó đòi hỏi phải tư duy hoàn toàn thông qua các hoạt động của ứng dụng
Trang 34Vì vậy, việc chuẩn bị test case sớm nhất có thể trong quy trình phát triển phần mềm làrất hữu ích.
Các trường hợp kiểm thử phải bao phủ được toàn bộ luồng xử lý chức năng mô tảtrong tài liệu phân tích và thiết kế; các yêu cầu về bảo mật an toàn thông tin, yêu cầuhiệu năng của hệ thống
Cấu trúc một test case thường bao gồm các thông tin:
- Test Case ID (Mã và tên của test case): Giá trị cần để xác định số lượng trường
hợp cần để kiểm thử
- Test Items (Mục đích kiểm thử): Mô tả mục đích sử dụng của test case Giúp
Tester hiểu và thực hiện đúng khi kiểm thử phần mềm theo test case mô tả
- Pre-condition (Điều kiện tiên quyết): Mô tả điều kiện cần có để có thể thực hiện
test case này
- Test Steps (Mô tả các bước): Mô tả cụ thể các bước cần thực hiện để tái hiện nội
dung test case khi Tester thực hiện kiểm thử phần mềm
- Test Data (Dữ liệu đầu vào): Là dữ liệu nhập vào các trường của phần mềm để
thực hiện kiểm thử
- Expected results (Kết quả mong đợi): Một test case được viết tốt cần phải đề cập
một cách rõ ràng kết quả mong đợi của ứng dụng hoặc hệ thống Chỉ ra những gìmong đợi như là đầu ra của bước kiểm tra đó
1.4.5.1 Các bước viết một test case
- Bước 1: Xác định mục đích test, cần hiểu rõ đặc tả yêu cầu của khách hàng.
- Bước 2: Xác định chức năng testing, cần phải biết làm thế nào phần mềm
được sử dụng bao gồm các hoạt động, tổ chức chức năng khác nhau
Các bước thực hiện chỉ mô tả các bước thực hiện đứng từ phía người dùng cuối bao gồm nhập dữ liệu, nhấn button
- Bước 3: Xác định các yêu cầu phi chức năng, yêu cầu phần cứng, hệ điều hành,
các khía cạnh an ninh
- Bước 4: Xác định biểu mẫu cho test case, bao gồm giao diện UI, chức năng, khả
năng tương thích và hiệu suất…
- Bước 5: Xác định tính ảnh hưởng giữa các nguyên tắc module test case nên được
thiết kế để có thể bao phủ được sự ảnh hưởng của các module với nhau ở mức độcao nhất
Trang 351.4.5.2 Các kỹ năng viết test case
1.4.5.2.1 Phân vùng tương đương
Phân vùng tương đương là phương pháp chia các điều kiện đầu vào thành những vùngtương đương nhau Tất cả các giá trị trong một vùng tương đương sẽ cho một kết quảđầu ra giống nhau Vì vậy chúng ta có thể kiểm tra một giá trị đại diện trong vùngtương đương
Thiết kế test case bằng kỹ thuật phân vùng tương đương tiến hành theo 2 bước:
- Bước 1: Xác định các lớp tương đương.
- Bước 2: Xác định các ca kiểm thử.
1.4.5.2.2 Phân tích giá trị biên
Phân tích giá trị biên là trường hợp đặc biệt của phân vùng tương đương, dựa trênnhững phân vùng tương đương tester sẽ xác định giá trị biên giữa những phân vùngnày và lựa chọn test case phù hợp
Các case chuẩn được lựa chọn dựa vào quy tắc sau:
1.4.6 Các kỹ thuật kiểm thử phần mềm
1.4.6.1 Kiểm thử hộp đen
Kiểm thử hộp đen hay còn gọi là kiểm thử hướng dữ liệu Trong kỹ thuật này ngườikiểm thử xem phần mềm như là một hộp đen Người kiểm thử hoàn toàn không quantâm đến cấu trúc, hành vi bên trong phần mềm Người kiểm thử chỉ quan tâm đến việctìm ra các lỗi mà phần mềm không xử lý theo đúng đặc tả của nó Vì thế dữ liệu kiểmthử xuất phát từ đặc tả
Kiểm thử hộp đen cố gắng tìm ra các lỗi trong các loại sau:
- Các chức năng thiếu hoặc không đúng so với bản đặc tả
Trang 36- Các lỗi thi hành
- Lỗi giao diện
- Các lỗi cấu trúc dữ liệu trong việc truy cập cơ sở dữ liệu bên ngoài
- Các lỗi khởi tạo hoặc kết thúc
- Các lỗi khác
Một số loại kiểm thử hộp đen hay dùng
- Kiểm thử phân vùng tương đương
- Kiểm thử phân tích giá trị biên
- Kiểm thử dựa vào đồ thị nguyên nhân – kết quả
- Sử dụng bảng quyết định
Ưu điểm: Các tester được thực hiện từ quan điểm của người dùng sẽ giúp sáng tỏ sựchênh lệch về thông số kỹ thuật Theo phương pháp này, tester không có “mối ràngbuộc” nào với code, và nhận thức của một tester rất đơn giản: một source code cónhiều lỗi Sử dụng nguyên tắc, “Hỏi và bạn sẽ nhận” các tester black box tìm đượcnhiều bug ở nơi mà các dev không tìm thấy Các tester có thể được thực hiện bởi một
cơ quan độc lập từ các developer, cho phép một cái nhìn khách quan và tránh sự pháttriển thiên vị
Nhược điểm: Dữ liệu đầu vào yêu cầu một khối lượng mẫu khá lớn Nhiều dự ánkhông có thông số rõ ràng thì việc thiết kế các trường hợp kiểm thử rất khó và do đókhó viết kịch bản kiểm thử cần xác định tất cả các yếu tố đầu vào, và cả yếu tố thờigian Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao Chỉ có một sốnhỏ các đầu vào có thể được kiểm tra và nhiều đường dẫn chương trình sẽ được để lạichưa được kiểm tra
1.4.6.2 Kiểm thử hộp trắng
Kiểm thử hộp trắng còn gọi là kiểm thử cấu trúc Dựa vào thuật giải cụ thể, vào cấutrúc dữ liệu bên trong của đơn vị phần mềm cần kiểm thử để xác định đơn vị phầnmềm đó có thực hiện đúng không Do đó người kiểm thử hộp trắng phải có kỹ năng,kiến thức nhất định về ngôn ngữ lập trình được dùng, về thuật giải được dùng trongphần mềm để có thể thông hiểu chi tiết về đoạn code cần kiểm thử
Kiểm thử hộp trắng thường tốn rất nhiều thời gian và công sức nếu phần mềm quá lớn(thí dụ trong kiểm thử tích hợp hay kiểm thử chức năng) Do đó kỹ thuật này chủ yếuđược dùng để kiểm thử đơn vị, kiểm thử từng tác vụ của một lớp chức năng
Trang 37Ưu điểm: Buộc các chuyên gia kiểm thử phải suy luận cẩn thận về việc kiểm thử lỗi vìvậy lỗi sẽ được triệt để, cho phép tìm kiếm các lỗi ẩn bên trong Do yêu cầu kiến thứccấu trúc bên trong của phần mềm, nên việc kiểm soát lỗi tối đa nhất.
Nhược điểm: Khá mất thời gian và công sức nhưng vẫn sẽ tồn tại lỗi Đòi hỏi ngưởikiểm thử có kinh nghiệm và am hiểu về kiểm thử cũng như về cấu trúc bên trong củaphần mềm được thử nghiệm
Trang 38Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Đặc tả yêu cầu phần mềm
2.1.1 Khách vãng lai
Tìm kiếm theo các tiêu chí;
Xem thông tin chi tiết việc làm;
Xem thông tin nhà tuyển dụng;
Xem bài viết;
2.1.2 Ứng viên tìm kiếm việc làm
Đăng nhập/đăng ký với quyền ứng viên;
Cập nhật thông tin tài khoản;
Cập nhật CV ứng tuyển;
Nộp CV ứng tuyển;
Lưu việc làm;
Nhận thông báo việc làm, ứng tuyển;
2.1.3 Nhà tuyển dụng
Đăng nhập/đăng ký với quyền nhà tuyển dụng;
Cập nhật thông tin doanh nghiệp;
Cập nhật thông tin tài khoản;
Tạo tin tuyển dụng;
Đăng tin tuyển dụng;
Quản lý ứng viên ứng tuyển;
Xem hồ sơ (CV) ứng viên ứng tuyển;
Xuất file báo cáo ứng viên;
Gửi email thông báo đến ứng viên;
2.1.4 Quản trị viên hệ thống
Cập nhật bài viết, danh mục bài viết;
Duyệt/từ chối tin tuyển dụng;
Trang 392.2 Sơ đồ Use-case
Hình 2.1: Sơ đồ Use-case
Trang 402.3 Kịch bản cho Use-case
2.3.1 Use-case đăng nhập
2.3.1.1 Kịch bản
Chức năng Đăng nhập
Mô tả Chức năng đăng nhập cho phép người dùng truy cập vào hệ
thống bằng email và mật khẩu
Tác nhân Ứng viên, Nhà tuyển dụng
Bảng 3.1 Kịch bản use-case đăng nhập