KHÁI NIỆMKiểm thử ứng dụng web là quá trình kiểm tra và đánh giá tính năng, chất lượng và độ tin cậy của một ứng dụng web trước khi nó được phát hành đến khách hàng hoặcngười dùng cuối..
Trang 1TRƯỜNG ĐẠI HỌC GIA ĐỊNH
KHOA CÔNG NGHỆ THÔNG TIN
LỚP: K15DCPM02
NGÀNH: KỸ THUẬT PHẦN MỀM
TP HỒ CHÍNH MINH, NĂM 2023
Trang 2MỤC LỤC
1 KHÁI NIỆM 4
2 CÁCH KIỂM THỬ TRANG WEB VÀ PHÂN LOẠI CÁC KỸ THUẬT KIỂM THỬ4 3 CÁC QUY TRÌNH KIỂM THỬ CHUNG 5
3.1 Requirement Analysis 5
3.2 Test Planning 6
3.3 Test Case Development 6
3.4 Environment Setup 7
3.5 Test Execution 7
3.6 Test Cycle Closure 8
4 ĐẶC ĐIỂM CỦA ỨNG DỤNG WEB 8
4.1 Khả năng truy cập đa nền tảng 8
4.2 Tính đa nền tảng 9
4.3 Tiết kiệm chi phí và quản lý 10
4.4 Tích hợp và mở rộng 11
4.5 Cập nhật nhanh chóng 12
5 QUY TRÌNH KIỂM THỬ CHO ỨNG DỤNG WEB 13
5.1 Functionality Testing 13
5.2 Usability testing 14
6 CÁC CÔNG CỤ HỖ TRỢ KIỂM THỬ CHO ỨNG DỤNG WEB 17
6.1 Testuff 17
6.2 Zephyr 17
6.3 TestingWhiz 18
6.4 Ranorex 18
6.5 LoadStorm 19
6.6.Telerik Test Studio 19
6.7 Selenium 19
7 CÁC BIỂU MẪU / TÀI LIỆU KIỂM THỬ CHO ỨNG DỤNG WEB 21
8 VÍ DỤ 22
Trang 3LỜI NÓI ĐẦU
Được sự phân công của Khoa Công Nghệ thông tin Trường Đại học Gia Định, và dưới sự hướng dẫn của Thầy giáo hướng dẫn ThS Huỳnh Phước Danh, em
đã hoàn thành đề tài “Kiểm thử ứng dụng web”.
Để hoàn thành bài luận này, em xin chân thành cảm ơn Thầy Huỳnh Phước Danh đã tận tình hướng dẫn, giảng dạy trong suốt quá trình học tập và nghiên cứu ở môn Công nghệ phần mềm.
Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất Song do trình độ hiểu biết và nhận thức còn chưa cao nên bài tiểu luận khó tránh khỏi sơ sài, còn thiếu sót, em rất mong nhận được sự đóng góp ý kiến của các thầy
cô và bạn bè để em có thể học hỏi thêm và rút kinh nghiệm cho những lần tới.
Em xin chân thành cảm ơn!
Thành phố Hồ Chí Minh, ngày 1 tháng 6 năm 2023
Trang 41 KHÁI NIỆM
Kiểm thử ứng dụng web là quá trình kiểm tra và đánh giá tính năng, chất lượng và
độ tin cậy của một ứng dụng web trước khi nó được phát hành đến khách hàng hoặcngười dùng cuối Mục đích của kiểm thử ứng dụng web là tìm ra các lỗi, vấn đề hoặc
sự cố có thể gây ra hỏng hóc hoặc ảnh hưởng đến trải nghiệm người dùng trên cáctrình duyệt web khác nhau Qua đó giúp cho nhà phát triển và nhà sản xuất phầnmềm có thể sửa lỗi và cải thiện ứng dụng của họ trước khi phát hành để đảm bảo sự
ổn định và đáp ứng được nhu cầu của người dùng trên nhiều nền tảng khác nhau Cáccông cụ phần mềm kiểm thử ứng dụng web bao gồm các kỹ thuật như kiểm thử đơn
vị, kiểm thử tích hợp, kiểm thử chấp nhận người dùng, kiểm thử bảo mật và kiểm thửtốc độ tải trang web
Kiểm thử web theo thuật ngữ đơn giản là kiểm tra ứng dụng web của bạn để tìmlỗi tiềm ẩn trước khi deloy lên môi trường production Trong giai đoạn này, các vấn đềnhư bảo mật ứng dụng web, chức năng trang web, quyền truy cập và khả năng xử lýlưu lượng của nó sẽ được kiểm thử
2 PHÂN LOẠI CÁC KỸ THUẬT KIỂM THỬ
Các bước kiểm thử có thể được thực hiện tùy thuộc vào yêu cầu kiểm thử web củabạn
Một ứng dụng web thường có rất nhiều nhóm người sử dụng với nhiều nền tảngkhác nhau (hệ điều hành, trình duyệt…), người ta cũng rất khó có thể đoán được sốlượng người sử dụng một ứng dụng web là bao nhiêu, rồi thời gian hồi đáp yêu cầucủa người sử dụng đối với ứng dụng là một trong những yếu tố mang tính quyết địnhthành bại của ứng dụng…dẫn đến việc kiểm thử ứng dụng web sẽ có những khác biệtnhất định so với kiểm thử phần mềm truyền thống Trong đó, kiểm thử giao diệnngười dùng, kiểm thử hiệu năng và kiểm thử bảo mật là những loại kiểm thử mà ứngdụng web cần chú trọng
– Các kỹ thuật kiểm thử web có thể được phân loại vào những hạng mục chính sau:
Trang 5 Kiểm thử đơn vị (Unit Testing): Kiểm thử đơn vị là kỹ thuật kiểm thử phầnmềm mà ta sẽ kiểm tra từng phần riêng lẻ của mã nguồn, giúp kiểm tra xemcác phần này hoạt động chính xác hay không.
Kiểm thử tích hợp (Integration Testing): Kiểm thử tích hợp (IntegrationTesting) là kỹ thuật kiểm thử phần mềm mà ta kiểm tra các phần của phầnmềm đã kết hợp hiệu quả với nhau hay không
Kiểm thử hệ thống (System Testing): Kiểm thử hệ thống là kỹ thuật kiểm thửphần mềm mà ta kiểm tra cả hệ thống phần mềm, kiểm tra hành vi của cácthành phần phần mềm cùng với các tính năng và yêu cầu của phần mềm
Kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT): UAT chính
là kỹ thuật kiểm tra thực tế, được thực hiện bởi khách hàng hoặc người dùngcuối cùng để đảm bảo rằng sản phẩm phần mềm đáp ứng đầy đủ nhu cầu vàyêu cầu của khách hàng hoặc người dùng cuối
Kiểm thử hiệu năng và tải (Performance and Load Testing): Kiểm thử hiệunăng và tải là kỹ thuật kiểm thử phần mềm để đánh giá sức mạnh và khả năngcủa hệ thống khi gặp tải và sử dụng cao
Kiểm thử bảo mật (Security Testing): Là kỹ thuật kiểm thử phần mềm nhằmkiểm tra khả năng bảo mật của ứng dụng trên các khía cạnh như chống XSS(Cross-Site Scripting), chống SQL Injection, chống Tràn bộ đệm, chống DDos(Distributed Denial of Service), phân quyền, SSL
Kiểm thử tương thích (Compatibility Testing): Là kỹ thuật kiểm thử phầnmềm để kiểm tra xem ứng dụng của bạn có tương thích với các trình duyệtweb khác nhau, hệ điều hành và thiết bị như điện thoại di động, máy tínhbảng, máy tính để bàn hay không
3 CÁC QUY TRÌNH KIỂM THỬ CHUNG
3.1 Requirement Analysis
Giai đoạn đầu tiên của quy trình kiểm thử phần mềm là Requirement Analysis(Phân tích yêu cầu) Trong giai đoạn này, các tester sẽ phân tích tài liệu Prototype
Trang 6(Tài liệu đặc tả yêu cầu) được tạo trong Software Development Life Cycle (Vòng đờiphát triển phần mềm) để kiểm tra các yêu cầu do khách hàng đưa ra.
Yêu cầu được chia làm 2 dạng: Functional (Chức năng) và Non-Functional(Phi chức năng) Yêu cầu về Functional sẽ mô tả tính năng còn Non-Functional sẽ mô
tả hiệu năng, tính bảo mật, tính hữu dụng của phần mềm Trong quá trình phân tích,nếu yêu cầu còn mơ hồ sẽ được xem xét lại, tester đồng thời làm việc với các bên liênquan để làm rõ vấn đề Cuối cùng, tester sẽ xác định loại kiểm thử sẽ dùng và độ ưutiên của các hoạt động kiểm thử, xác định môi trường test cần chuẩn bị
3.2 Test Planning
Sau giai đoạn một, tester tiến hành Lập kế hoạch kiểm thử để kiểm tra xem phầnmềm có đáp ứng các yêu cầu hay không Kế hoạch kiểm thử là một tài liệu tổng quan
về việc kiểm thử dự án bao gồm những thông tin sau:
Phạm vi kiểm thử, hướng tiếp cận, quy trình kiểm thử, tài nguyên và nhân lựctest
Các chức năng/module cần được kiểm tra; các công cụ và môi trường kiểmthử cần có
Ai test chức năng nào? - Khi nào bắt đầu thực hiện viết và hoàn thành testcase?
Khi nào bắt đầu thực hiện và hoàn thành test?
3.3 Test Case Development
Sau khi có được Test Plan, Tester bắt đầu xây dựng bộ Test Case dựa trên yêu cầucủa phần mềm Test Case cần mô tả được chi tiết dữ liệu đầu vào, hành động, kết quảmong đợi để xác định một chức năng của ứng dụng phần mềm có hoạt động đúnghay không Template của Test Case có nhiều trường hợp nhưng bắt buộc phải có 5mục chính: ID, mục đích kiểm thử, các bước thực hiện, kết quả mong đợi & kết quảthực tế
Trang 7Nếu sử dụng tool để thực hiện test tự động (Automation testing) chức năng vàgiao diện của sản phẩm, tester sẽ tạo thêm một kịch bản kiểm thử gọi là Test Script.Test Script là bản hướng dẫn chi tiết được viết bằng mã code nhằm hỗ trợ kiểm thửnhững trường hợp nếu test thủ công bằng tay sẽ rất khó khăn.
Các Tester trong cùng một team sẽ review chéo Test Case của nhau tránh bỏ sótnhững trường hợp test quan trọng Một bộ Test Case chất lượng sẽ giúp đảm bảo chấtlượng sản phẩm, hạn chế lỗi và rủi ro nhất cho khách hàng
3.4 Environment Setup
Thiết lập môi trường thử nghiệm là một hoạt động độc lập và có thể được bắt đầucùng với giai đoạn phát triển kịch bản kiểm thử Môi trường kiểm thử sẽ dodevelopers tạo ra để deploy sản phẩm đã được hoàn thiện về phần lập trình.Sau khi thiết lập môi trường thử nghiệm, tester thực hiện nhanh Smoke Testing(Kiểm thử khói) để kiểm tra tính sẵn sàng của môi trường thử nghiệm đồng thời tính
ổn định của bản build sản phẩm Trường hợp xuất hiện lỗi như môi trường không ổnđịnh hay bản build lỗi chức năng chính, tester sẽ báo lại developers sửa ngay Nếumôi trường và bản build đã đủ ổn định để tiến hành test chi tiết, tester sẽ tiến hànhgiai đoạn tiếp theo - Thực hiện kiểm thử
Trong cả quá trình kiểm thử phần mềm, tester ưu tiên kiểm tra chức năng chínhtrước, chức năng phụ và giao diện sẽ thực hiện test sau Quá trình kiểm thử phần
Trang 8mềm bắt buộc phải tuân thủ thời gian đã đề ra, mọi người trong team đôn đốc nhau
để kịp tiến độ bàn giao sản phẩm Cuối cùng, tester thực hiện làm báo cáo tùy theoyêu cầu của dự án để đánh giá việc kết thúc quy trình kiểm thử phần mềm
3.6 Test Cycle Closure
Ở giai đoạn cuối cùng, tester chuẩn bị báo cáo kết thúc kiểm thử, tổng hợp lại cácchỉ số trong quá trình test Cả team phát triển sẽ ngồi họp để đánh giá toàn bộ các tiêuchí xác định kiểm thử đã đủ hay chưa Những tiêu chí này khác nhau tùy theo từng
dự án, thông thường bao gồm:
Số lượng test case tối đa được thực thi Passed
Tỷ lệ lỗi giảm xuống dưới mức nhất định
Deadline được chốt từ giai đoạn làm kế hoạch kiểm thử
Quy trình kiểm thử phần mềm thường chỉ được kết thúc khi sản phẩm được bàngiao cho khách hàng Ngoài ra, hoạt động kiểm thử có thể kết thúc trong các trườnghợp sau:
Khi 1 dự án bị hủy bỏ
Khi các mục tiêu chính đã hoàn thành
Khi việc bảo trì hoặc cập nhật đã hoàn thành
4 ĐẶC ĐIỂM CỦA ỨNG DỤNG WEB
Dưới đây là 5 đặc điểm nổi bật của ứng dụng web rõ ràng và chi tiết
4.1 Khả năng truy cập đa nền tảng
Khả năng truy cập đa nền tảng của ứng dụng web là một đặc điểm quan trọng,cho phép người dùng truy cập và sử dụng ứng dụng trên nhiều thiết bị khác nhau nhưmáy tính, điện thoại di động, máy tính bảng và các thiết bị khác Điều này mang lạinhiều lợi ích cho người dùng, nhưng cũng đồng thời gặp phải một số bất lợi Dướiđây là các lợi ích và bất lợi của khả năng truy cập đa nền tảng của ứng dụng web,kèm theo ví dụ cụ thể:
- Lợi ích:
Trang 9 Cải thiện trải nghiệm người dùng: Khả năng truy cập đa nền tảng giúp ngườidùng truy cập và sử dụng ứng dụng trên nhiều thiết bị khác nhau, mang lại trảinghiệm tốt hơn cho người dùng Ví dụ: Ứng dụng Google Drive có thể truycập và sử dụng trên nhiều thiết bị như máy tính, điện thoại di động và máytính bảng, giúp người dùng dễ dàng lưu trữ và chia sẻ dữ liệu.
Tăng tính linh hoạt và sự tiện lợi: Khả năng truy cập đa nền tảng giúp ngườidùng dễ dàng truy cập và sử dụng ứng dụng mọi lúc, mọi nơi, trên nhiều thiết
bị khác nhau Ví dụ: Ứng dụng Viber cho phép người dùng truy cập và sửdụng trên nhiều thiết bị khác nhau như máy tính, điện thoại di động, máy tínhbảng, giúp người dùng dễ dàng liên lạc với bạn bè và gia đình bất kể ở đâu
- Bất lợi:
Khó khăn trong việc tối ưu hóa trải nghiệm người dùng: Vì ứng dụng webphải hỗ trợ nhiều nền tảng và thiết bị khác nhau, việc tối ưu hóa trải nghiệmngười dùng trên tất cả các nền tảng là rất khó khăn Ví dụ: Một số trang webchưa được tối ưu hóa cho các thiết bị di động, gây khó khăn cho người dùngkhi truy cập từ điện thoại di động
Cần phải thường xuyên cập nhật và bảo trì: Vì ứng dụng web phải hỗ trợ nhiềunền tảng và thiết bị khác nhau, nên việc cập nhật và bảo trì cho tất cả cácphiên bản và thiết bị là rất quan trọng Nếu không thường xuyên cập nhật vàbảo trì, ứng dụng có thể sẽ gặp sự cố hoặc không tương thích với một số thiết
bị hoặc nền tảng Ví dụ: Trang web eBay thường xuyên cập nhật để hỗ trợnhiều nền tảng và thiết bị khác nhau
4.2 Tính đa nền tảng
Tính đa nền tảng của ứng dụng web được thể hiện thông qua việc phát triển mộtứng dụng web duy nhất và có khả năng chạy trên nhiều nền tảng và thiết bị khácnhau thông qua trình duyệt web
- Lợi ích: Đạt tới đông đảo người dùng: Tính đa nền tảng cho phép ứng dụng củabạn chạy trên nhiều loại thiết bị và nền tảng khác nhau, từ điện thoại di động, máy
Trang 10tính bảng đến máy tính và thiết bị IoT Điều này giúp bạn tiếp cận đa dạng ngườidùng và mở rộng lượng khách hàng tiềm năng.
- Bất lợi:
Giới hạn chức năng: Đôi khi, việc phát triển đa nền tảng có thể gặp hạn chế vềcác chức năng đặc biệt bởi sự khác biệt giữa các nền tảng Điều này có thể yêucầu phải giới hạn một số tính năng hoặc tuỳ chỉnh cho phù hợp với mỗi nềntảng cụ thể Điều này có thể ảnh hưởng đến trải nghiệm người dùng và khảnăng tương thích trên các nền tảng khác nhau
Hiệu suất và tối ưu hóa: Một ứng dụng đa nền tảng có thể không đạt được hiệusuất tốt nhất trên tất cả các nền tảng Do sự đa dạng của các thiết bị và nềntảng, có thể cần phải đánh đổi hiệu suất hoặc tối ưu hóa cho từng nền tảngriêng biệt Điều này có thể ảnh hưởng đến tốc độ hoạt động và trải nghiệm củaứng dụng trên một số thiết bị hoặc hệ điều hành cụ thể
4.3 Tiết kiệm chi phí và quản lý
Tiết kiệm chi phí và quản lý dễ dàng: So với phần mềm truyền thống cần cài đặttrên mỗi máy tính cá nhân, ứng dụng web giảm thiểu chi phí phát triển, triển khai vàduy trì Nó cho phép quản lý tập trung dễ dàng, bảo mật dữ liệu tốt hơn và cung cấpkhả năng theo dõi và điều chỉnh hoạt động của ứng dụng một cách hiệu quả
- Lợi ích:
Tiết kiệm chi phí về phần cứng: Do không yêu cầu phần cứng đặc biệt, ứngdụng web giúp tiết kiệm chi phí cho việc mua sắm và duy trì phần cứng chotừng nền tảng Người dùng có thể truy cập vào ứng dụng từ bất kỳ thiết bị nào
có kết nối internet, mà không cần phải mua các thiết bị đặc biệt
Dễ dàng cập nhật và triển khai: Với ứng dụng web, việc cập nhật và triển khaiphiên bản mới trở nên dễ dàng Người dùng chỉ cần tải lại trang web để truycập vào phiên bản mới nhất của ứng dụng, mà không cần phải cài đặt bản cậpnhật mỗi lần Điều này giúp tiết kiệm thời gian và công sức trong việc quản lý
và triển khai ứng dụng
Trang 11 Quản lý dễ dàng: Do ứng dụng web chạy trên trình duyệt web, việc quản lý vàduy trì ứng dụng trở nên dễ dàng hơn Việc cập nhật và sửa lỗi có thể đượcthực hiện tại máy chủ và được áp dụng cho tất cả người dùng cùng một lúc.Điều này giúp đơn giản hóa quy trình quản lý và hỗ trợ ứng dụng.
- Bất lợi:
Phụ thuộc vào kết nối internet: Ứng dụng web yêu cầu kết nối internet liên tục
để hoạt động Nếu người dùng không có kết nối internet hoặc kết nối không ổnđịnh, họ không thể truy cập vào ứng dụng và sử dụng các tính năng của nó
Giới hạn tính năng: Một số tính năng phức tạp và đặc biệt có thể khó triểnkhai trong ứng dụng web Một số khả năng mạnh mẽ của hệ điều hành hoặcthiết bị có thể không được hỗ trợ hoặc khó đạt được trong môi trường web
4.4 Tích hợp và mở rộng
Tích hợp và mở rộng: Ứng dụng web có khả năng tích hợp với các dịch vụ và hệthống khác, cho phép chia sẻ dữ liệu và tương tác với các ứng dụng và nguồn tàinguyên khác
- Lợi ích:
Linh hoạt và mở rộng: Ứng dụng web có thể dễ dàng tích hợp với các dịch vụ
và API khác để mở rộng chức năng và tính năng của nó Điều này cho phépphát triển ứng dụng web theo nhu cầu và thay đổi của doanh nghiệp hoặcngười dùng
Tích hợp dữ liệu: Ứng dụng web có khả năng tích hợp và tương tác với cácnguồn dữ liệu bên ngoài như cơ sở dữ liệu, hệ thống quản lý nội dung (CMS),dịch vụ web, API của bên thứ ba và hơn thế nữa Điều này cho phép ứng dụngweb truy cập và sử dụng dữ liệu từ các nguồn khác nhau để cung cấp thông tin
và chức năng phong phú
Mở rộng tính năng: Tích hợp và mở rộng cho phép ứng dụng web được mởrộng tính năng mà không cần phải xây dựng lại toàn bộ ứng dụng Việc tích