Khái quát về môn học Môn kiểm định chất lượng phần mềm Software Quality Assurance - SQA là mộtquá trình được sử dụng để đảm bảo rằng phần mềm được phát triển đáp ứng đượccác yêu cầu ch
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
BẢO ĐẢM CHẤT LƯỢNG PHẦN MỀM
KIỂM THỬ WEBSITE
SIÊU THỊ WINMART
GIẢNG VIÊN HƯỚNG DẪN: ThS Tiếu Phùng Mai Sương
SINH VIÊN THỰC HIỆN:
Trang 2Nhận xét của giảng viên
Giảng viên 01
Trang 3
Giảng viên 02
Trang 4
Lời cảm ơn
Trước tiên, nhóm em xin chân thành cảm ơn đến các thầy cô giáo trong ngành Công Nghệ Thông Tin đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báo trong suốt thời gian vừa qua
Đặt biệt nhóm em xin gửi lời cảm ơn đến cô Tiếu Phùng Mai Sương đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn nhóm em trong suốt quá trình thực hiện môn học cũng như đồ
án lần này
Trong thời gian học tập nhóm em không chỉ tiếp thu thêm được những kiến thức bổ ích màcòn học tập được tinh thần làm việc, thái độ nghiên cứu nghiêm túc, hiệu quả Đây là những điều cần thiết cho nhóm em trong quá trình học tập và làm việc sau này
Sau cùng thì nhóm em cũng xin cảm ơn đến những bạn bè đã động viên, đóng góp ý kiến
và giúp đỡ nhóm em trong quá trình nghiên cứu đồ án này
Một lần nữa, nhóm em xin chân thành cảm ơn!
Trang 5MỤC LỤC
Chương 1 Giới thiệu chung 7
I Khái quát về môn học
II Quá trình kiểm định chất lượng phần mềm
Chương 2 Lý thuyết 8
III Kiểm thử phần mềm
IV Bug tracking
1 Giới thiệu bug tracking 9
2 Tool bug tracking được sử dụng trong bài 9
Chương 3 Kiểm thử website Moodle trường Huflit 11
I Đặc tả các chức năng hệ thống (System Functions)
II Xác định mục tiêu, các chuẩn chất lượng cần đạt của hệ thống
III Phạm vi kiểm thử của hệ thống (Scope)
IV Thiết kế Testcases/Test checklist
V Kết luận
Danh sách hình
Trang 6Bảng phân công công việc
Test plan
Tìm hiểu tool, tìm hiểu chủ đề, tìm tài liệu Trần Triều Phát, Lê Quốc Bằng, Đậu Ngọc
Anh Quân
Thực hiện test case: Đăng ký, đăng nhập,
tìm kiếm, thêm sản phẩm vào giỏ hàng Trần Triều Phát, Đậu Ngọc Anh QuânThực hiện test case: Thanh toán, các chức
năng của hội viên
Lê Quốc Bằng, Hoàng Ngọc
Trang 7Chương 1 Giới thiệu chung
I Khái quát về môn học
Môn kiểm định chất lượng phần mềm (Software Quality Assurance - SQA) là mộtquá trình được sử dụng để đảm bảo rằng phần mềm được phát triển đáp ứng đượccác yêu cầu chất lượng, đáp ứng được nhu cầu của khách hàng và được phát triểntrong một môi trường hiệu quả và có tính liên tục
Quá trình kiểm định chất lượng phần mềm bao gồm việc đặt ra các tiêu chuẩn chấtlượng, các quy trình và kỹ thuật để đảm bảo rằng phần mềm đáp ứng được các yêucầu chất lượng như độ tin cậy, hiệu suất, khả năng mở rộng và bảo mật
Một số công cụ phổ biến trong quá trình SQA bao gồm: kiểm thử phần mềm, đảmbảo an ninh, kiểm soát phiên bản, quản lý rủi ro, đảm bảo chất lượng mã nguồn,v.v
Mục tiêu của quá trình kiểm định chất lượng phần mềm là tăng cường độ tin cậy vàkhả năng sử dụng của phần mềm, giảm thiểu lỗi và tăng cường hiệu quả phát triểnphần mềm
II Quá trình kiểm định chất lượng phần mềm
Kiểm thử phần mềm: Là một quá trình được sử dụng để đảm bảo rằng phần mềmđáp ứng được các yêu cầu chức năng và phi chức năng Kiểm thử phần mềm baogồm việc tạo ra các ca kiểm thử, chạy các ca kiểm thử và đánh giá kết quả
Đảm bảo an ninh: Là một quá trình được sử dụng để đảm bảo rằng phần mềm đượcbảo vệ khỏi các cuộc tấn công từ bên ngoài Đảm bảo an ninh bao gồm việc pháthiện các lỗ hổng bảo mật, áp dụng các biện pháp bảo mật và kiểm tra tính an toàncủa phần mềm
Kiểm soát phiên bản: Là một quá trình được sử dụng để quản lý các phiên bản củaphần mềm Kiểm soát phiên bản bao gồm việc lưu trữ phiên bản, theo dõi thay đổi
và quản lý các phiên bản của phần mềm
Quản lý rủi ro: Là một quá trình được sử dụng để đánh giá và quản lý các rủi rotrong quá trình phát triển phần mềm Quản lý rủi ro bao gồm việc đánh giá các rủi
ro, đề xuất các biện pháp giảm thiểu rủi ro và theo dõi các biện pháp được thựchiện
Đảm bảo chất lượng mã nguồn: Là một quá trình được sử dụng để đảm bảo rằng
mã nguồn của phần mềm đáp ứng được các tiêu chuẩn chất lượng Đảm bảo chấtlượng mã nguồn bao gồm việc kiểm tra mã nguồn, đánh giá tính bảo mật, tính linhhoạt và tính khả bảo trì của mã nguồn
Trang 8 Tự động hóa kiểm định chất lượng phần mềm: Là một quá trình được sử dụng đểtăng cường tính liên tục và hiệu quả của quá trình kiểm định chất lượng phần mềm.
Tự động hóa kiểm định chất lượng phần mềm
Chương 2 Lý thuyếtIII Kiểm thử phần mềm
Kiểm thử phần mềm là quá trính đánh giá tài liệu, thiết kế, code để chắc chắnrằng chương trình thỏa mãn tính đúng đắn, đầy đủ và phù hợp của phần mềm vớiyêu cầu và mong đợi của người dùng Mục đích chính của việc kiểm thử là đểđảm bảo chất lượng của phần mềm, thiết kế, cấu trúc Quá trình kiểm thử gồmnhững bước như đánh giá, lập kế hoạch, kiểm tra Để đánh giá chất lượng củaphần mềm, cần đảm bảo các tiêu chuẩn sau:
+ Tính năng (Functionality)
+ Độ tin cậy (Reliability)
+ Sự tiện lợi (Usability)
+ Tính hiệu quả (Efficiency)
+ Khả năng bảo trì (Maintainability)
+ Tính khả chuyển (Portability)
Bên cạnh đó có thể thực hiện kiểm thử với những nội dung như sau:
+ Test link: Kiểm tra các đường link liên kết trong các trang của phần mềm, đảm
bảo đường dẫn đưa đến các trang tương ứng
+ Test form: Kiểm tra các form điền thông tin trong phần mềm, đảm bảo chúng
hoạt động đúng quy trình khi được điền đầy đủ thông tin hợp lệ và khi khôngnhập đầy đủ thông tin hoặc thông tin không hợp lệ
+ Test workflow: Kiểm tra quy trình hoạt động chung của phần mềm, đảm bảo
các chức năng và tính năng hoạt động đúng như mong đợi
+ Test data: Kiểm tra tính đúng đắn của cơ sở dữ liệu trên trang web, đảm bảo
các dữ liệu được lưu trữ và truy xuất đúng cách và các ràng buộc để ngăn chặn
dữ liệu không phù hợp hoạt động đúng mong đợi
+ Test giữa các trình duyệt: Kiểm tra sự giống nhau và khác nhau khi trang web
được hoạt động trên cùng một trình duyệt mà khác phiên bản hoặc 2 trình duyệtkhác nhau
Ngoài ra, cần thực hiên system test sau khi hoàn thành phần mềm nhằm đánh giá sựchịu đựng của phần mềm khi ở điều kiện tối đa, giúp phát hiện ra những vấn đề bênngoài môi trường thực tế để đảm bảo phần mềm hoạt động ổn định
IV Automation Test
Giới thiệu Automation Test
Automation Test có thể hiểu rất đơn giản là thay vì test bằng tay, ta để máythực hiện việc testing 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ả) AutomationTesting đóng một vai trò quan trọng góp phần nâng cao năng suất 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 mộtthời gian dài hoặc lặp đi lặp lại
Trang 9 Automation Test là một quá trình xử lý tự động các bước thực hiện một testcase và được thực hiện bởi phần mềm là Automation Testing Tool Mục đíchcủa Tester là tìm bug nhưng mục đích cuối cùng vẫn là hỗ trợ để làm ra sảnphẩm tốt nhất.
Tool Automation test được sử dụng trong bài
Hiện tại có rất nhiều tool được sử dụng để thực hiện việc Bug tracking và ở đâynhóm em sử dụng tool Telerik Test Studio
2.1 Tổng quan về Telerik
Telerik Test Studio là một công cụ tự động hóa kiểm thử phần mềm, được phát triển bởi Progress (trước đây là Telerik) Công cụ này cung cấp một loạt các tính năng giúp nhóm phát triển và kiểm thử tạo và thực hiện các kịch bản kiểm thử tự động một cách dễ dàng
Telerik Test Studio giúp tăng cường quy trình kiểm thử tự động trong quá trình phát triển phần mềm và là một trong những công cụ được ưa chuộng trong cộngđồng kiểm thử phần mềm
Các đặc điểm chính của Telerik Test Studio:
- Tích hợp Dễ dàng: Telerik Test Studio được tích hợp chặt chẽ với môi
trường phát triển và quản lý mã nguồn như Visual Studio và Team Foundation Server (TFS) Điều này giúp việc tích hợp kiểm thử vào quy trình phát triển trở nên hiệu quả hơn
- Giao diện Người dùng Đồ Họa (GUI): Một trong những điểm mạnh của
Test Studio là giao diện người dùng đồ họa, giúp người kiểm thử tạo kịch bản kiểm thử mà không cần có kiến thức vững về lập trình Điều này làm giảm độ phức tạp và thời gian đào tạo cần thiết
- Hỗ Trợ Đa Nền Tảng: Telerik Test Studio hỗ trợ kiểm thử trên nhiều nền
tảng, bao gồm cả ứng dụng web, ứng dụng di động, và ứng dụng máy tính
Trang 10- Ghi Kịch Bản Dễ Dàng: Người sử dụng có thể ghi lại các hành động của
mình trên ứng dụng một cách tự nhiên và sau đó sử dụng chúng để tạo các kịch bản kiểm thử tự động
- Kiểm Thử Hiệu Suất và Tải Trọng: Ngoài kiểm thử chức năng, Test
Studio cũng cung cấp các tính năng kiểm thử hiệu suất và tải trọng để đảm bảo rằng ứng dụng có thể xử lý được lượng người dùng đồng thời lớn
- Quản Lý Dự Án: Có các tính năng quản lý dự án tích hợp, giúp nhóm kiểm
thử quản lý và tổ chức các kịch bản kiểm thử một cách hiệu quả
- Hỗ Trợ Ngôn Ngữ Lập Trình: Telerik Test Studio hỗ trợ nhiều ngôn ngữ
lập trình như C# và VB.NET, cho phép người dùng tùy chọn sử dụng mã lập trình nếu cần thiết
2.2 Đối tượng sử dụng Kualitee
Nhóm Kiểm Thử (Testing Teams): Sử dụng để tạo và quản lý kịch bản kiểm
thử tự động một cách dễ dàng, giảm độ phức tạp của quá trình kiểm thử
Nhà Phát Triển Phần Mềm (Software Developers): Có thể sử dụng để kiểm
thử chức năng và đảm bảo tính ổn định của mã nguồn trong quá trình phát triển
Chuyên Gia Tự Động Hóa (Automation Engineers): Cung cấp khả năng sử
dụng mã lập trình để tạo và tùy chỉnh kịch bản kiểm thử
Quản Lý Dự Án (Project Managers): Dùng để theo dõi tiến độ kiểm thử và
bảo đảm đạt được yêu cầu chất lượng
Nhóm Phát Triển Di Động (Mobile Development Teams): Hỗ trợ kiểm thử
ứng dụng di động trên nhiều nền tảng như iOS và Android
Doanh Nghiệp và Nhóm Chất Lượng (Enterprise and Quality Teams): Sử
dụng để duy trì và kiểm soát chất lượng của ứng dụng trong quá trình phát triển
và triển khai
2.3 Tổng quan chức năng của Telerik Test Studio
Ghi Kịch Bản Đơn Giản: Cho phép người sử dụng ghi lại các hành động trên
ứng dụng một cách tự nhiên để tạo kịch bản kiểm thử
Giao Diện Người Dùng Đồ Họa (GUI): Cung cấp giao diện người dùng đồ
họa dễ sử dụng, giảm độ phức tạp cho người kiểm thử không có kinh nghiệmlập trình
Trang 11 Tích Hợp Dễ Dàng: Tích hợp chặt chẽ với môi trường phát triển như Visual
Studio và hỗ trợ ngôn ngữ lập trình như C# và VB.NET
Kiểm Thử Đa Nền Tảng: Hỗ trợ kiểm thử trên nhiều nền tảng bao gồm ứng
dụng web, di động (iOS và Android) và desktop
Kiểm Thử Hiệu Suất và Tải Trọng: Cung cấp tính năng kiểm thử hiệu suất và
tải trọng để đảm bảo ứng dụng có khả năng xử lý lượng người dùng đồng thờilớn
Tùy Chỉnh và Lập Trình: Cho phép sử dụng mã lập trình để tùy chỉnh và mở
rộng chức năng kiểm thử theo yêu cầu cụ thể
Quản Lý Dự Án: Cung cấp tính năng quản lý dự án để theo dõi và báo cáo
trạng thái kiểm thử
Hỗ Trợ Kiểm Thử Ứng Dụng Di Động: Hỗ trợ kiểm thử trên các nền tảng di
động, đảm bảo tính nhất quán trên nhiều loại thiết bị di động
Kiểm Thử Bảo Mật: Cung cấp các tính năng kiểm thử bảo mật để đảm bảo an
ninh của ứng dụng
Kiểm Thử Tích Hợp và Liên Kết Dữ Liệu: Hỗ trợ kiểm thử tích hợp và liên
kết dữ liệu để đảm bảo sự đồng nhất và chính xác của dữ liệu
Trang 12Chương 3 Kiểm thử website siêu thị Winmart
I Đặc tả các chức năng hệ thống (System Functions)
Hiện nay có rất nhiều các hệ thống đào tạo trực tuyến được ra đời nhằm đáp ứng nhucầu học tập của các học sinh và sinh viên Moodle không còn là cái tên xa lạ đối vớinhiều người dùng bởi sự miễn phí và hiệu quả
Với các tính năng quản lý việc học tập Moodle có giao diện hiện đại, dễ sử dụng,quản lý tập tin thuận tiện, theo dõi được tiến độ học tập, cũng như khả năng bảo mậtcao
Đối với sinh viên/học sinh, mỗi sinh viên/học sinh sẽ có 1 tài khoản đăng nhập Mỗitài khoản sẽ được tham gia 1 hoặc nhiều khóa học Sinh viên có thể quản lý thông tin
cá nhân của mình cũng như là các tập tin mà mình tải lên
Giảng viên/ người quản trị có thể tạo ra nhiều khóa học và có thể dễ dàng sao lưu,các tính năng quản lý nhóm, quản lý người dùng được cung cấp
II Xác định mục tiêu, các chuẩn chất lượng cần đạt của hệ thống
Tính năng (Functionality)
- Tính phù hợp
- Tính chính xác
- Tính an toàn
- Tính tuân thủ chức năng: các phần mềm theo các chuẩn, quy ước, quy định
- Độ tin cậy (Reliability)
- Khả năng khôi phục dữ liệu
- Khả năng tìm lỗi, báo lỗi Đảm bảo tính đúng đắn của thông tin được quản lý
- Đảm bảo tính bảo mật thông tin
Sự tiện lợi (Usability)
- Dễ học
- Dễ hiểu
- Dễ thao tác
- Dễ sử dụng
Tính hiệu quả (Efficiency)
- Tối ưu hoá nguồn tài nguyên
Trang 13 Khả năng bảo hành bảo trì
- Chạy ổn định
- Có khả năng phân tích dữ liệu
- Có khả năng thay đổi phù hợp
Tính khả chuyển (Portability)
- Khả năng cài đặt
- Khả năng thay thế, cập nhật và nâng cấp
- Khả năng thích hợp với nhiều cấu hình máy tính
III Phạm vi kiểm thử của hệ thống (Scope)
Khả năng sử dụng: Kiểm tra khả năng người dùng đăng ký, đăng nhập, quản lý tài khoản,tìm kiếm sản phẩm, thêm, xóa, cập nhật sản phẩm vào giỏ hàng, thanh toán, quản lý đơnhàng
Khả năng kỹ thuật: Kiểm tra khả năng hiển thị, xử lý yêu cầu, lưu trữ, truy xuất dữ liệu,bảo mật của ứng dụng
Các trường hợp đặc biệt: Kiểm tra khả năng hoạt động trong điều kiện tải khác nhau,tương thích với các thiết bị, hệ điều hành khác nhau
IV Thiết kế Testcases/Test checklist
1 Chức năng “Tùy chỉnh giao diện trang chủ”
Trang 30Quản lí thông tin cá nhân
Trang 37 Functional
- Số testcase:79
- Đã test: 79
- Số testcase Passed:55
Trang 38- Số testcase Failed: 24
Trang 478 Quản lý khoá học đã được thêm
Non functional
- Số testcase: 16
- Đã test: 16
Trang 48- Số testcase Passed: 15
- Số testcase Failed: 1
Trang 589 Quản lý dòng thời gian
Trang 6711 Quên mật khẩu
Số test case: 20
Đã test: 20Passed: 14Failed: 6
Trang 72V Kết luận
Trang 73 Qua quá trình thực hiện đồ án kiểm định Website Moodle Nhóm đã đạt được cácmục tiêu, yêu cầu và phạm vi kiểm thử đạt ra ban đầu Cùng với đó là khả năng sửdụng công cụ bug tracking để theo dõi và xử lý lỗi.
Tài liệu tham khảo
1 Đặng Ngọc Thành, Trương Quốc Tuấn (2015) Kiểm định chất lượng phầnmềm Nhà xuất bản Công nghệ thông tin
2 Pressman, R.S (2014) Software Engineering: A Practitioner's Approach.McGraw-Hill Education
3 Wikipedia, wikipedia.org Checklist
4 Wikipedia, wikipedia.org Test case