MỞ ĐẦU- Chủ đề nghiên cứu là sử dụng công cụ kiểm thử tự động để kiểm thử website học Tiếng Anh.. Với các công cụ kiểm thử tự động, tập lệnh kiểm thử có thể được sử dụng lại nhiều lần k
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CNTT -
Trang 4BÁO CÁO HỌC PHẦN KIỂM
THỬ PHẦN MỀM
Trang 6Kiểm thử website học tiếng anh
Eop.edu.vn
Trang 21Hà Nội – Năm 2021
Trang 22Mục lục
Trang 25PHẦN 1 MỞ ĐẦU
- Chủ đề nghiên cứu là sử dụng công cụ kiểm thử tự động để kiểm thử
website học Tiếng Anh.
Vì kiểm thử tự động là công cụ dễ sử dụng, tiện lợi, giúp tiết kiệm thời gian, giảm chi phí vì thực hiện cùng một hành động kiểm thử nhiều lần, không chỉ mất nhiều thời gian hơn mà còn làm giảm hiệu quả của người kiểm thử Một lợi ích lớn khác của việc kiểm thử tự động là khả năng sử dụng lại các tập lệnh kiểm thử Viết các trường hợp kiểm thử hiệu quả đòi hỏi rất nhiều thời gian và công sức, và để viết các trường hợp kiểm thử tương tự một lần nữa có thể khiến một người kiệt sức về tinh thần Với các công cụ kiểm thử tự động, tập lệnh kiểm thử có thể được sử dụng lại nhiều lần khi bạn cần, và tiết kiệm cả thời gian và công sức cho bạn.
Trong trường hợp kiểm thử thủ công, tester phải báo cáo cho nhau bằng tay
để biết có bao nhiêu test scripts đã được viết và bao nhiêu lỗi đã được sửa
Toàn bộ quá trình rất cồng kềnh và dẫn đến sự phụ thuộc lẫn nhau Báo cáo
kiểm thử giúp bạn phân tích hàng trăm trường hợp kiểm thử dễ dàng.
Khả năng thực hiện kiểm thử trên nhiều nền tảng song song: Khi phát triển một trang web, điều cần thiết là đảm bảo khả năng tương thích trên các trình duyệt, phần cứng, hệ điều hành, mạng và thiết bị di động khác nhau.
Để có thể kiểm thử tốt thì cần có các kĩ năng chuyên môn: Lập bảng điều kiện theo phương pháp phân vùng hoặc giá trị tương đương Tạo các testcase kiểm thử giao diện, các testcase function, testcase data Từ đó ta có file để nhập vào cho công cụ kiểm thử tự động thực hiện quá trình kiểm thử.
- Kỹ năng then chốt phải đạt được mục chuẩn đầu ra của học phần :
+ Trau dồi kiến thức liên tục, không chỉ kiến thức của ngành công nghệ thông tin mà còn là kiến thức đa ngành nghề khác để bổ trợ cho công việc + Cập nhật những xu hướng cũng như những công nghệ mới để có thể đưa ra được những bản kiểm thử sâu xa và vượt qua những yêu cầu khách hàng đã đặt ra từ trước
+ Tính luôn tò mò, thắc mắc, đặt ra câu hỏi cho các vấn đề, các phần mềm để có thể góp phần tại ra 1 sản phẩm có chất lượng nhất.
+ Tính kiên trì với công việc, kiên trì đặt ra các câu hỏi sâu để cải thiện sản phẩm của nhóm.
Trang 26+ Kĩ năng giao tiếp, khả năng giao tiếp để có thể là cầu nối giữa khách hàng và team thiết kế phần mềm, có thể truyền đạt được những kiến thức đặc thù ngành tới cho khách hàng 1 cách dễ hiểu những như là đơn giản nhất Kết luận: Tất cả các kĩ năng trên không phải ngày một ngày hai mà có được
vì thế chúng ta luôn phải rèn luyện mỗi ngày để tạo ra một bản kiểm thử tốt nhất, chuẩn đầu ra.
Trang 27PHẦN 2 KẾT QUẢ NGHIÊN CỨU
Trang 28- Trình bày những nhiệm vụ, công việc chính khi thực hiện Tiểu luận, Bài tập lớn, Đồ án/Dự án và kết quả đạt được.
Trang 29- Mô tả sản phẩm nghiên cứu theo chủ đề được giao trong quá trình thực hiện Tiểu luận, Bài tập lớn, Đồ án/Dự án, bao gồm:
Trang 30+ Tên sản phẩm
Trang 31+ Xác định hình thức sản phẩm Ví dụ: sản phẩm dự án là vật thật hoặc
lý thuyết,…
Trang 32+ Cấu trúc, nội dung của sản phẩm Ví dụ: sản phẩm dự án là « Bài báo khoa học » thì trình bày theo cấu trúc và nội dung sau: Tên bài báo, tên tác giả, đơn vị công tác, tóm tắt, từ khóa, đặt vấn đề, nội dung, kết luận, danh mục tài liệu tham khảo.
Trang 342.1 TỔNG QUAN
Kiểm thử phần mềm là rất quan trọng vì những lý do sau:
1 Kiểm thử phần mềm là thực sự cần thiết vì nó chỉ ra những khiếm khuyết
và sai sót đã được thực hiện trong giai đoạn phát triển
2 Nó quan trọng vì nó đảm bảo độ tin cậy của khách hàng và sự hài lòng của họ trong ứng dụng.
3 Nó là rất quan trọng vì nó đảm bảo chất lượng của sản phẩm Chất lượng sản phẩm giao cho khách hàng giúp trong việc đạt được sự tự tin của họ (Biết thêm về chất lượng phần mềm )
4 Kiểm thử là cần thiết vì nó cung cấp các tiện nghi cho khách hàng như giao hàng sản phẩm chất lượng cao hoặc các ứng dụng phần mềm mà đòi hỏi chi phí bảo trì thấp hơn và do đó kết quả vào kết quả chính xác hơn, phù hợp và đáng tin cậy.
5 Kiểm thử là cần thiết cho một hoạt động hiệu quả của ứng dụng phần mềm hoặc sản phẩm.
6 Điều quan trọng là để đảm bảo rằng các ứng dụng không có bất kỳ kết quả nào thất bại, bởi vì nó có thể rất đắt tiền trong tương lai hoặc trong các giai đoạn sau của sự phát triển.
7 Đó là yêu cầu thiết yếu giúp sản phẩm tồn tại trong kinh doanh.
Có 6 giai đoạn trong kiểm thử phần mềm đã học:
Trang 351 Requirement analysis – Phân tích yêu cầu
Trang 362 Test planning – Lập kế hoạch kiểm thử
Trang 373 Test case development – Thiết kế kịch bản cho quy trình kiểm thử
Trang 384 Test environment set up – Thiết lập môi trường kiểm thử
Trang 395 Test execution – Thực hiện kiểm thử
Trang 406 Test cycle closure – Đóng chu trình kiểm thử
Các kỹ thuật kiểm thử phần mềm:
Trang 411 Phân vùng tương đương (Equivalence Class Partitioning)
Trang 422 Phân tích giá trị biên (Boundary Value Analysis (BVA) )
Trang 433 Bảng hỗ trợ quyết định quyết định (Decision Table based testing)
Trang 444 Kiểm thử điều hướng người dùng (User Navigation Testing)
Trang 455 Kiểm thử giao diện (Transaction Screen Testing)
Trang 466 Kiểm thử màn hình báo cáo (Report Screen Testing)
Trang 477 Kiểm thử luồng báo cáo (Report Flow Testing)
Trang 488 Kiểm thử việc Database Create/Retrieve/Update/Delete Testing.
Trang 499 Kiểm thử hệ thống: Kiểm thử sự trôi chảy (dễ dùng), Kiểm thử dung lượng, Kiểm thử chịu tải, Kiểm thử khả dụng, Kiểm thửu bảo mật, Kiểm thử hiệu năng, Kiểm thử lưu trữ, Kiểm thử cấu hình, Kiểm thử tính tương thích/ chuyển đổi/cấu hình, Kiểm thử cài đặt, Kiểm thử độ tin cậy, Kiểm thử phục hồi, Kiểm thử dịch vụ, Kiểm thửu tài liệu, Kiểm thử thủ tục.
Trang 502.2 TÌM HIỂU CÔNG CỤ KIỂM THỬ PHẦN NỀM
Trang 512.2.1Giới thiệu công cụ
Kiểm thử tự động: Là xử lý một cách tự động các bước thực hiện các testcase, kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử
Kiểm thử tự động: là một kỹ thuật tự động trong đó người kiểm thử tự viết các tập lệnh và sử dụng phần mềm phù hợp để kiểm thử phần mềm Nó về cơ bản là một quá trình tự động hóa của một quy trình kiểm thử thủ công Giống như kiểm thử hồi quy, kiểm thử tự động cũng được sử dụng để kiểm thử ứng dụng theo quan điểm tải, hiệu năng và ứng suất
Sự phát triển của công cụ kiểm thử Test Project: TestProject là một công cụ tự động hóa mạnh mẽ nhằm đơn giản hóa trải nghiệm kiểm thử tự động của bạn Nó cũng cho phép cả đội,nhóm tiếp cận đầy đủ về chất lượng bằng cách cho phép cộng tác hiệu quả trên các giải pháp kiểm thử tự động
TestProject là một công cụ định hướng cộng đồng và có gói vĩnh viễn miễn phí với đầy đủ tính năng và bạn có thể bắt đầu sử dụng trong giây lát
Trang 522.2.2Đặc điểm
Trang 53- TestProject được xây dựng trên các công cụ tự động hóa nguồn mở như Selenium và Appium
Trang 54- Phiên bản của Test Project: Test Project v3.4.0
Trang 55- Test Project là công cụ hỗ trợ kiểm thử tự động Các ngôn ngữ lập trình chương trình phần mềm kiểm thử cài đặt: Java, C#, Python, JavaScript.
Nội dung trình bày ở đây : Nêu đặc điểm công cụ:
Trang 56- công cụ mã nguồn mở hay đóng;
Trang 57- phiên bản mới
Trang 58- công cụ hỗ trợ các loại kiểm thử nào và ngôn ngữ lập trình chương trình phần mềm kiểm thử cài đặt
Trang 59- đặc điểm khác nếu có …
(Kiểu Normal - Font Times New Roman 13, justified)
Trang 602.2.3Cài đặt và sử dụng công cụ Test Project
Trang 61- Hệ điều hành công cụ Test Project được cài đặt trên: Windows, Mac, Linux, Docket
Trang 62- Các yêu cầu về phần cứng hay phần mềm hỗ trợ:
Trang 63• Bộ vi xử lý hỗ trợ bộ chỉ dẫn SSE2
Trang 64• CD-/DVD-ROM (để cài đặt từ đĩa CD)
Trang 65• 270 MB không gian đĩa trống trên ổ đĩa cứng
Trang 66• Truy cập internet
Trang 67• Microsoft Internet Explorer 8.0 hoặc cao hơn
Trang 68• Microsoft Windows Installer 3.0 trở lên
Trang 69• Microsoft.NET Framework 4 hoặc cao hơn
Trang 70• Bộ vi xử lý với xung nhịp 1 GHz hoặc cao hơn
Trang 71• 1 GB RAM (Hệ điều hành 32-bit); 2 GB RAM (Hệ điều hành 64-bit)
Trang 72• Microsoft Edge phiên bản 20.x – 25.x trở lên
Trang 73• Mozilla Firefox phiên bản 52.x – 60.x trở lên
Trang 74• Mozilla Firefox ESR 52.x
Trang 75• Google Chrome phiên bản 44.x – 52.x
Trang 76Giới thiệu phần mềm Test Project
Trang 772.2.4Giới thiệu
Trang 78Giới thiệu tên phần mềm: Test Project
Trang 79Phần mềm được xây dựng vì:
Trang 80+ Dễ dàng để bắt đầu Trình ghi TestProject là một công cụ ghi và phát lại mạnh mẽ và dễ sử dụng, giúp bạn bắt đầu làm các bài kiểm tra với một đường cong học tập tối thiểu.
Trang 81+ Hợp tác toàn đội Tự động hóa kiểm tra hoạt động tốt nhất khi cả nhóm có thể làm việc cùng nhau trên cùng một nền tảng TestProject giúp cho việc chia sẻ các bài kiểm tra giữa các thành viên trong nhóm trở nên dễ dàng và đơn giản
Trang 82+ Khả năng mở rộng Có một thư viện các phần bổ trợ được chia sẻ có sẵn để giúp bạn mở rộng các khả năng mặc định của TestProject Với tư cách là một nhóm, bạn cũng có thể tạo các chương trình bổ trợ của riêng mình để đơn giản hóa công việc bạn đang làm.
Trang 83+ Tích hợp vào quy trình công việc hiện có TestProject có một API
mà bạn có thể sử dụng để chạy nó trong quy trình tích hợp liên tục hiện có Nó cũng có SDK dành cho nhà phát triển cho phép bạn tạo các thử nghiệm hoặc nhập các thử nghiệm hiện có mà bạn có thể có vào nền tảng
Trang 84+ Trình duyệt chéo và Nền tảng chéo Bạn có thể tạo và chạy các thử nghiệm di động (Android và iOS) và TestProject có thể được cài đặt trên bất kỳ nền tảng nào (Windows, Linux hoặc MacOS) Chỉ mất một lần cài đặt đơn giản để ngay lập tức có quyền truy cập vào thử nghiệm trên tất cả các nền tảng và trình duyệt được kết nối.
Trang 85+ Công nghệ đáng tin cậy TestProject sử dụng công nghệ đáng tin cậy
và đã được chứng minh như Selenium và Appium để có một cách tương tác mạnh mẽ và dễ hiểu với các trang web Rảnh rỗi! Gói Miễn phí Mãi mãi mà TestProject cung cấp là vô song trong thế giới
tự động hóa thử nghiệm về các tính năng và khả năng mà bạn nhận được TestProject là một sản phẩm mạnh mẽ và đầy đủ tính năng mà bất kỳ ai cũng có thể sử dụng miễn phí Tại TestProject, chúng tôi tin tưởng vào việc hỗ trợ cộng đồng thử nghiệm và vì vậy chúng tôi
đã làm mọi thứ có thể để đảm bảo người thử nghiệm có thể sử dụng công cụ này.
Trang 862.2.5Tài liệu đặc tả yêu cầu phần mềm
Trang 872.4.1.1 Đặc tả yêu cầu chức năng (Functional)
Trang 88a UC_001_Xem bài học
Use case: UC_001_Xem bài học
Mục đích: Xem danh sách bài học
Tác nhân: Sinh Viên, Giảng viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
3 Tác nhân kích nút vào một khóa học
4 Hệ thống lấy dữ liệu liệu từ bảng BAIHOC theo mãkhóa học, hiển thị danh sách các bài học lên màn hình
“Chưa có khóa học nào”
2 Tại bước 4 của luồng sự kiện chính nếu trong bảngBAIHOC chưa có dữ liệu liệu thì hiển thị thông báo
“Chưa có bài học nào”
3 Tại tất cả các bước trong luồng sự kiện chính nếu khôngtruy cập được vào CSDL thì hiển thị thông báo lỗi
Điều kiện sau: Xem được danh sách bài học
Trang 89b UC_002_Tra cứu kết quả học tập
Use case: UC_002_Tra cứu kết quả học tập
Mục đích: Tra cứu được kết quả học tập của sinh viên
Tác nhân: Sinh Viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
Luồng sự kiện
chính (Basic
flows)
1.Sinh viên kích nút “Trang chủ”
2.Hệ thống sẽ hiển thị giao diện trang chủ lên màn hình
3.Sinh viên kích nút “Kết quả thi”
4.Sinh viên nhập mã sinh viên5.Sinh viên kích nút “Tra cứu”
6.Hệ thống truy cập vào bảng KETQUA và lấy điểm thi theo mã sinh viên, hiển thị điểm lên màn hình
Trang 90c UC_003_Học online
Trang 91Use case: UC_003_Học online
Mục đích: Sinh viên tham gia học online trên hệ thống
Tác nhân: Sinh Viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
Luồng sự kiện
chính (Basic
flows)
1 Sinh viên kích vào bài học
2 Hệ thống lấy dữ liệu bài học từ bảng BAIHOChiển thị lên màn hình
3 Sinh viên học và làm bài theo hướng dẫn
4 Hệ thống ghi nhận kết quả học của sinh viên và lưuvào bảng BAIHOC và mở khóa bài học tiếp theocho sinh viên
2 Tại bước 4 của luồng sự kiện chính nếu sinh viên hoànthành xong hết các bài học thì hiển thị thông báo
“Chúc mừng bạn đã học xong bài này”
3 Tại bất kỳ bước nào trong luồng sự kiện chính nếukhông truy cập được vào CSDL thì hiển thị thông báolỗi
Điều kiện sau: Sinh viên học được bài
Trang 92d UC_004_Xem lịch thi
Trang 93Use case: UC_004 - Xem lịch thi
Mục đích: Sinh viên và Giảng viên xem được lịch thi trên hệ thống
Tác nhân: Sinh viên và Giảng viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
2 Giảng viên nhập mã giảng viên đã có trong cơ sở
dữ liệu và ấn nút Tra cứu
3 Hệ thống hiển thị giao diện lịch thi gồm stt, thờigian thi, mã môn thi, mã dự thi, địa điểm thi
2 Hệ thống hiển thị thông báo “không có lịch thi”
3 Tại bất kỳ bước nào của luồng sự kiện chính, nếukhông kết nối được với cơ sở dữ liệu thì hệ thống hiểnthị thông báo lỗi
Điều kiện sau: Xem được lịch thi
Trang 94e UC_005_Tên use case
Use case: UC_005_Làm bài thi
Mục đích: Use case này cho phép sinh viên tham gia làm bài thi trên hệ
thống
Tác nhân: Sinh viên
Điều kiện trước: Sinh viên cần đăng nhập vào hệ thống
3 Sinh viên kích nút Hoàn thành
4 Hệ thống hiển thị kết quả thi của Sinh viên
Điều kiện sau: Sinh viên tham gia thi được
Trang 95f UC_006_Tên use case
Use case: UC_006_Cập nhật thông tin cá nhân
Mục đích: Sinh viên và Giảng viên cập nhật được thông tin cá nhân của
mình
Tác nhân: Sinh viên và Giảng viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
Luồng sự kiện
chính (Basic
flows)
Sinh viên:
1 Sinh viên chọn chức năng Cá nhân
2 Hệ thống hiển thị 3 chức năng gồm: thông tin, đổimật khẩu, ảnh đại diện
3 Sinh viên chọn chức năng Thông tin
4 Hệ thống hiển thị ra màn hình thông tin của sinhviên bao gồm: họ tên, giới tính, địa chỉ, quê quán,
Giảng viên:
1 Giảng viên chọn chức năng Cá nhân
2 Hệ thống hiển thị 3 chức năng gồm: thông tin, đổimật khẩu, ảnh đại diện
3 Giảng viên chọn chức năng Thông tin
4 Hệ thống hiển thị ra màn hình thông tin của sinhviên bao gồm: họ tên, giới tính, địa chỉ, quê quán,
Trang 962 Tại bất kỳ bước nào của luồng sự kiện chính, nếukhông kết nối được với cơ sở dữ liệu thì hệ thống hiểnthị thông báo lỗi.
Điều kiện sau: Cập nhật được thông tin cá nhân
Trang 97g UC_007_Xem thông tin lớp
Use case:UC_007_Xem thông tin lớp
Mục đích:
Sinh viên: xem thông tin các nhân và các bạn trong lớpGiảng viên: xem thông tin của các sinh viên trong các lớp
Tác nhân: Sinh viên, Giảng viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
Trang 98h UC_008_Chơi game TA
Use case: UC_008_Chơi game TA
Mục đích: Sinh viên vừa chơi game vừa học tiếng anh
Tác nhân: Sinh viên
Điều kiện trước: Tác nhân phải đăng nhập vào hệ thống
Luồng sự kiện
chính (Basic
flows)
1 Sinh viên ấn vào nút “Games”
2 Hệ thống hiển thị danh sách các trò chơi
3 Sinh viên ấn vào trò chơi muốn chơi
4 Hệ thống sẽ hiển thị giao diện trò chơi
3 Khi sinh viên muốn thoát ra khỏi trò chơi phải ấn vàomũi tên quay lại trong trình duyệt
Điều kiện sau: Sinh viên chơi được game tiếng anh
Trang 99i UC_009_Xem và nhập điểm SV
Use case: UC_009_Xem và nhập điểm SV
Mục đích: Giảng viên xem và nhập điểm cho sinh viên
Tác nhân: Giảng viên
Điều kiện trước: Giảng viên phải đăng nhập vào hệ thống
3 Giảng viên kích nút “Nhập điểm”
4 Hệ thống lấy danh sách lớp trong bảng LOP theo
mã học phần hiển thị danh sách điểm của lớp họcphần
5 Giảng viên nhập điểm cho từng sinh viên trong lớphọc phần đó và cuối cùng kích nút “Cập nhật”
6 Hệ thống cập nhật dữ liệu vào bảng KETQUA saudód hiển thị thông báo cập nhật thành công