KIỂM THỬ PHẦN MỀM, NGHIÊN CỨU CÁC KỸ THUẬT KIỂM THỬ WEBSITE,Kiểm thử phần mềm là hoạt động thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Hà nội, Năm 2022
Trang 2MỤC LỤC
2 Kiểm thử tính khả dụng (Usability Testing) 10
4 Kiểm thử khả năng tương thích (Compatibility Testing) 12
2 Kiểm thử chức năng của cơ sở dữ liệu (Functional) 22
IV Kiểm thử hiệu năng website (Nguyễn Huy Hưng) 25
4 Các thông số được theo dõi trong kiểm thử hiệu năng 27
Trang 36 Một số công cụ kiểm thử hiệu năng cho website 29
3 Phương pháp tiếp cận để kiểm tra giao diện 33
Trang 4LỜI MỞ ĐẦU
Ngày nay công nghệ thông tin đã có những bước phát triển mạnh mẽ theo
cả chiều rộng và chiều sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người không chỉ ở công sở mà ngay cả trong gia đình Đứng trước vài trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các nghiệp đều tìm mọi biện pháp để xây dựng và hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác vụ của đơn vị Hiện nay các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành thương mại hóa trên Internet Thông qua các sản phẩm và công nghệ này, chúng ta để nhận ra tầm quan trọng và tính tất yếu của thương mại điện tử Với những thao tác đơn giản trên máy có nối mạng internet bạn sẽ có trong tầm tay những gì mà mình cần mà không phải mất nhiều thời gian Từ những nhu cầu của người sử dụng mạng Internet và được sự hướng dẫn tận tình của thầy Hoàng Quang Huy, chúng em chọn đề tài " Nghiên cứu các kỹ thuật kiểm thử website" Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc chắn vẫn không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và góp ý của quý Thầy cô.
Trang 5I Tổng quan về kiểm thử phần mềm
1 Khái niệm
Kiểm thử phần mềm là hoạt động thực tiễn sản phẩm hay dịch vụ phần mềmtrong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người cólợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm
ấy Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềmnhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau
Nội dung của hoạt động kiểm thử bao gồm:
Trong quá trình xây dựng website hay phần mềm, nếu quy trình kiểm thử khôngđược diễn ra, không thể đảm bảo được tính an toàn và độ tin cậy cho sản phẩm Ngượclại, nếu kiểm thử diễn ra tốt sẽ giúp ta có được một phần mềm an toàn, dễ thao tác, cácmục tiêu sẽ được đáp ứng, chi phí bảo trì và sửa chữa cho sản phẩm sẽ được giảmthiểu tối đa, giúp cho sản phẩm đi đúng hướng ban đầu đề ra, phần mềm sẽ có sứcthuyết phục với khách hàng… Chính vì vậy kiểm thử là một phần không thể thiếutrong vòng đời sản phẩm
Nhận thức được sự quan trọng và cũng như để có thể áp dụng được những kiếnthức đã học của môn “Kiểm thử phần mềm” chúng em xin được áp dụng công cụ kiểmthử tự động vào dự án cụ thể là : “ Nghiên cứu các kỹ thuật kiểm thử website”
Trang 63 Vai trò của kiểm thử phần mềm
Việc tạo ra một sản phẩm phần mềm phải trải qua nhiều giai đoạn, người ta gọi
là quy trình phát triển phần mềm, bắt đầu từ khi có ý tưởng cho đến khi đưa ra sảnphẩm phần mềm thực thi Khối lượng công việc trong từng giai đoạn của quá trình sảnxuất phần mềm cũng thay đổi theo thời gian
Giai
đoạn
Phântích yêu
cầu
Thiết kế
sơ bộ
Thiết kếchi tiết
Lậptrình vàkiểm thửđơn vị
Tích hợp vàkiểm thử tíchhợp
Bảng 1 Tỉ lệ công việc của các giai đoạn phát triển phần mềm
Như vậy, một sản phẩm phần mềm không chỉ đơn giản là các đoạn mã chươngtrình mà còn rất nhiều trong khi lập trình mà còn xảy ra cao hơn trong các công đoạnkhách của quy trình phát triển một sản phẩm phần mềm Việc kiểm thử cũng vì thếphải được tiến hành trong tất cả các sản phần tạo nên một sản phẩm phần mềm
4 Một số loại hình kiểm thử phổ biến
Hiện nay, do sự phát triển mạnh mã của công nghệ phần mềm nên có một sốloại hình kiểm thử tiêu biểu như:
- Kiểm thử phần mềm trên Desktop: đây là các ứng dụng được cài đặt trực tiếptrên máy tính cá nhân Đây vẫn đang là những ứng dụng phổ biến nhất
- Kiểm thử Web hay kiểm thử trên đám mây: với sự lớn mạnh của Internet thìcác ứng dụng web cũng ngày càng phát triển và đang dần thay thế các ứngdụng trên Desktop truyền thống như Google Document, Microsoft web apps,
…
Trang 7- Kiểm thử trên Mobile: ngày nay xã hội với sự phát triển nhanh chóng, cácthiết bị di động (điện thoại thông minh, máy tính bảng,…) có số lượng ngườidùng cũng tăng lên chóng mặt, cùng với đó là số lượng phần mềm phục vụcho nhu cầu cũng tăng cao vì vậy đây là một lĩnh vực đầy tiềm năng và tháchthức trong công nghệ phần mềm
Trang 8II Lý thuyết về kiểm thử website
Trước khi đi sâu vào chi tiết, cần hiểu kiểm thử website là gì?
Kiểm thử website hay kiểm thử web là kiểm tra ứng dụng web hoặc trang webcủa bạn để tìm các lỗi tiềm ẩn trước khi xuất hiện trực tuyến và công chúng có thể truycập được Kiểm tra web kiểm tra chức năng, khả năng sử dụng, bảo mật, khả năngtương thích, hiệu suất của ứng dụng web hoặc trang web
Trong giai đoạn này, các vấn đề như bảo mật ứng dụng web, hoạt động củatrang web, quyền truy cập của nó đối với người dùng khuyết tật cũng như người dùngthông thường và khả năng xử lý lưu lượng truy cập sẽ được kiểm tra Trong Kỹ thuậtphần mềm, các loại kỹ thuật kiểm tra sau có thể được thực hiện tùy thuộc vào yêu cầukiểm tra web của bạn
1 Kiểm thử chức năng (Functionality Testing)
Việc kiểm thử chức năng đòi hỏi tester phải thực hiện test tất cả các chức năngchính các link trong trang web, định dạng được sử dụng trong các trang web để gửi vànhận các thông tin cần thiết từ người dùng Ngoài ra còn có kết nối cơ sở dữ liệu, kiểmtra cookies và xác minh HTML/CSS
● Liên kết tới các vị trí trong cùng trang
● Liên kết sử dụng để gửi email tới admin hoặc người dùng khác trong trang
Test Forms
Kiểm tra forms của các trang đảm bảo đã hoạt động như mong đợi, bao gồmcác yêu cầu sau:
Trang 9● Kiểm tra các trường của trang đã hoạt động đúng hay chưa Ví dụ: nếu ngườidùng không nhập vào các trường bắt buộc thì có hiển thị thông báo lỗi haykhông?
● Kiểm tra giá trị mặc định của các trường là gì?
● Nhập đầu vào không đúng validate của các trường thì sao?
● Thao tác trên các trường: xem, nhập, lưu, sửa, xóa…có ổn định hay không
● Các form có thân thiện dễ nhìn và dễ thao tác hay không?
Test Cookies
Kiểm thử Cookies có đang hoạt động như mong đợi Cookies là các tệp đượctạo bởi trang web đã truy cập để lưu trữ thông tin duyệt web, như các tùy chọn trangweb hoặc thông tin đăng nhập của người dùng Người dùng có thể tùy chỉnh trên trìnhduyệt nhằm quản lý cookies, thực hiện các thao tác cho phép lưu, hoặc xóa, hoặcchặn…để kiểm thử các tính năng lưu hoặc không lưu trạng thái đăng nhập, tính năngbảo mật của ứng dụng web Test Cookies sẽ bao gồm:
● Kiểm tra cookie (sessions) sẽ bị xóa khi xóa bộ nhớ cache hoặc khi chúng hếthạn
● Xóa cookie (sessions) và kiểm tra thông tin đăng nhập có được yêu cầu khibạn truy cập trang web lần sau
Test HTML and CSS
Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi developerthực hiện tối ưu hóa trang web cho các công cụ tìm kiếm, chủ yếu liên quan tới lỗi cúpháp HTML Tester sẽ kiểm thử xem trang web có được nhận diện bởi các công cụ tìmkiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)
Test business workflow - Bao gồm:
● Kiểm thử các test case từ khi bắt đầu đến lúc kết thúc, giúp người dùng có thể
đi qua theo 1 flow của trang web
● Kiểm thử các test case abnormal để khi người dùng thực hiện một số bướcunexpected thì sẽ thông báo lỗi hoặc có tương tác phù hợp sẽ được hiển thị đểngười dùng có thể biết khi thao tác
2 Kiểm thử tính khả dụng (Usability Testing)
Kiểm thử tính khả dụng hiện đã trở thành một phần quan trọng của bất kỳ dự ánnào Nó có thể được thực hiện bởi Tester, dev, hoặc bất cứ người nào trong dự án
Trang 10Tính khả dụng của trang web được định nghĩa là trang web dễ sử dụng, cóhướng dẫn sử dụng rõ ràng, rành mạch, mỗi trang đều có menu chính và menu nàyphải nhất quán Tester cần lưu ý những điều này.
Kiểm tra Navigation: Menu, button, textbox, breadcrumb hoặc link đến các
trang khác nhau trên trang web của bạn phải dễ nhìn thấy và nhất quán trên tất cả cáctrang web
Kiểm tra nội dung: Nội dung phải dễ đọc không có lỗi chính tả hoặc ngữ pháp,
thân thiện với người dùng Hình ảnh được sắp xếp gọn gàng, hợp lý
3 Kiểm thử database (Database Testing)
Trong kiểm thử database, các bản ghi dữ liệu phía backend đã được đưa lên ứngdụng web hoặc desktop sẽ được kiểm thử Dữ liệu đang hiển thị trong ứng dụng webphải khớp với dữ liệu được lưu trữ trong database
Những lưu ý khi thực hiện kiểm thử database:
● Người kiểm thử phải hiểu các yêu cầu chức năng, logic nghiệp vụ, luồng ứngdụng và thiết kế database một cách kỹ lưỡng
● Người kiểm tra phải tìm ra các bảng (tables), trình kích hoạt (triggers), thủ tụclưu trữ (stored procedures), dạng xem (views) và con trỏ (cursors) được sửdụng cho ứng dụng
● Người kiểm tra nên hiểu logic của các trình kích hoạt, thủ tục lưu trữ, chế độxem và con trỏ được tạo
● Người kiểm tra phải tìm ra các bảng bị ảnh hưởng khi chèn các thao tác cậpnhật và xóa (DML) được thực hiện thông qua các ứng dụng web hoặc desktop.Với sự trợ giúp của các mục đã đề cập ở trên, người kiểm thử có thể dễ dàngviết các kịch bản kiểm thử cho kiểm thử database Các ca kiểm thử (test cases) mẫuđược sử dụng trong kiểm thử database:
● Xác minh (Verify) tên database: Tên database phải khớp với thông số kỹ thuật
● Xác minh Bảng, cột, loại cột và giá trị mặc định: Tất cả mọi thứ phải khớp vớithông số kỹ thuật
● Xác minh xem cột có cho phép null hay không.
● Xác minh khóa chính (primary key) và khóa ngoại (foreign key) của mỗi bảng
● Xác minh thủ tục lưu trữ (stored procedure): tên, nó đã được cài đặt hay chưa
Trang 11● Xác minh tên tham số, loại và số lượng tham số.
● Kiểm tra các tham số nếu chúng được yêu cầu hoặc không
● Kiểm tra thủ tục lưu trữ bằng cách xóa một số tham số
● Kiểm tra khi đầu ra (output) bằng 0, các bản ghi bằng 0 sẽ bị ảnh hưởng
● Kiểm tra thủ tục lưu trữ bằng cách viết các truy vấn SQL đơn giản
● Kiểm tra xem thủ tục lưu trữ có trả về các giá trị hay không
● Kiểm tra thủ tục lưu trữ với mẫu dữ liệu đầu vào (input)
● Xác minh hành vi của mỗi cờ (flag) trong bảng
● Xác minh dữ liệu có được lưu đúng cách vào database sau mỗi lần nộp trang(page submission)
● Xác minh dữ liệu nếu các hoạt động DML (Cập nhật, xóa và chèn) được thựchiện
● Kiểm tra độ dài của mỗi trường (field): Độ dài trường ở front end và back endphải bằng nhau
● Xác minh tên database của QA, UAT và sản phẩm Tên phải là duy nhất
● Xác minh dữ liệu được mã hóa trong database
● Xác minh kích thước database Đồng thời kiểm tra thời gian phản hồi của mỗitruy vấn được thực thi
● Xác minh dữ liệu được hiển thị trên front end và đảm bảo dữ liệu đó hiển thịgiống với phía giao diện back end
● Xác minh tính hợp lệ của dữ liệu bằng cách chèn dữ liệu không hợp lệ vào cơ
sở dữ liệu
● Xác minh các trình kích hoạt (triggers)
4 Kiểm thử khả năng tương thích (Compatibility Testing)
Được thực hiện để xác định xem website có hoạt động tương thích với các phần
tử trên hệ thống cụ thể hay không, ví dụ: trình duyệt, hệ điều hành, phần cứng, cơ sở
dữ liệu, các vấn đề với kết nối mạng
Các kiểu của kiểm thử tương thích:
a) Kiểm tra website trên các trình duyệt khác nhau (Internet Explorer, Chrome,Safari, Firefox, Opera) để đảm bảo website hiển thị đúng cách
Trang 12b) Kiểm tra website trên các hệ điều hành khác nhau (Windows, Mac, Linux,Android, iOS) bởi có thể công nghệ đồ họa, api, chính sách là khác nhau.c) Kiểm tra phiên bản HTML, mã Javascript đang được sử dụng có tương thíchvới các phiên bản trình duyệt thích hợp không.
d) Kiểm tra tính chính xác của việc hiển thị hình ảnh, hoạt ảnh gif, phông chữtrên các trình duyệt khác nhau
Trong đó, thứ quan trọng nhất để truy cập website là thông qua trình duyệt Mỗitrình duyệt lại giải mã trang web theo những cách riêng, nghĩa là trang web có thể xuấthiện theo các cách khác nhau tùy theo trình duyệt Nhìn chung, hãy tránh phụ thuộcvào hành vi cụ thể của trình duyệt, chẳng hạn như dựa vào trình duyệt để phát hiệnchính xác loại nội dung hay mã hóa trong khi nó không chỉ định cụ thể Ngoài ra, cómột số bước ta có thể thực hiện để đảm bảo trang web hoạt động theo cách mongmuốn
● Thử nghiệm trang web trong càng nhiều trình duyệt càng tốt: Khi đã tạo xong
thiết kế cho trang web, hãy xem lại giao diện và chức năng của trang web trênnhiều trình duyệt để đảm bảo mọi khách truy cập đều có được trải nghiệm mà ta
đã rất nỗ lực để thiết kế Nên bắt đầu thử nghiệm càng sớm càng tốt trong quátrình phát triển trang web Các loại trình duyệt – và thậm chí các phiên bản củacùng một trình duyệt – có thể hiển thị trang web theo các cách riêng Có thểdùng các dịch vụ như Google Analytics để biết các trình duyệt phổ biến nhấtđược dùng để xem trang web
● Viết HTML hợp lệ và không có lỗi: Dù trang web có thể hiển thị đúng cách trên
một số trình duyệt thậm chí khi HTML không hợp lệ, nhưng không có gì đảmbảo rằng trang web đó sẽ hiển thị đúng cách trên tất cả trình duyệt – hoặc trêntất cả trình duyệt trong tương lai Cách tốt nhất để đảm bảo trang web hiển thịnhư nhau trên tất cả trình duyệt là dùng HTML và CSS hợp lệ để viết trang rồithử nghiệm trên càng nhiều trình duyệt càng tốt HTML hợp lệ và không có lỗi
là một cách tốt để đảm bảo Đồng thời, việc sử dụng CSS sẽ giúp tách bản trìnhbày khỏi nội dung và có thể giúp các trang kết xuất và tải nhanh hơn Các công
cụ xác thực (như công cụ xác thực HTML và CSS do W3 Consortium cungcấp) rất hữu ích cho việc kiểm tra trang web Ngoài ra, các công cụ như HTML
Trang 13Tidy có thể giúp dọn dẹp mã một cách nhanh chóng và dễ dàng (Nên sử dụngHTML hợp lệ, tuy nhiên, HTML có thể không phải là một yếu tố ảnh hưởngđến cách thức Google thu thập dữ liệu và lập chỉ mục trang web.)
● Chỉ định chế độ mã hoá ký tự: Để giúp các trình duyệt hiển thị văn bản trên
trang web, hãy luôn luôn chỉ định chế độ mã hóa cho văn bản Hãy đặt chế độ
mã hóa này ở đầu tài liệu (hoặc khung) vì một số trình duyệt sẽ không nhậndạng được các mục khai báo bộ ký tự xuất hiện sâu trong tài liệu Ngoài ra, hãyđảm bảo rằng máy chủ web đang không gửi đi các tiêu đề HTTP xung đột vớinhau Một tiêu đề chẳng hạn như content-type: text/html; charset=ISO-8859-1
sẽ ghi đè mọi mục khai báo bộ ký tự trên trang
5 Kiểm thử giao diện (Interface Testing)
Khi bạn phát triển bất kỳ phần mềm hoặc một trang web nào, nó bao gồm cácthành phần khác nhau trong đó, chẳng hạn như cơ sở dữ liệu, máy chủ, v.v Kết nốigiúp bạn thiết lập giao tiếp giữa các thành phần này được gọi là Giao diện Kiểm thửgiao diện là một loại kiểm thử phần mềm, xác minh giao tiếp giữa hai hệ thống phầnmềm Kiểm tra giao diện là gì trong trình tự sau:
- Kiểm thử giao diện là gì
- Các giai đoạn kiểm thử giao diện
- Các bước liên quan đến kiểm thử giao diện
- Tại sao chúng ta cần kiểm thử giao diện
- Phương pháp tiếp cận để kiểm thử giao diện
Kiểm thử giao diện
Là một loại kiểm thử phần mềm xác minh giao tiếp giữa hai hệ thống phầnmềm khác nhau Nó kiểm tra xác thực của kết nối được thiết lập
Kiểm tra giao diện bao gồm kiểm tra hai phân đoạn chính
- Máy chủ web và giao diện máy chủ ứng dụng
- Máy chủ ứng dụng và giao diện máy chủ cơ sở dữ liệu
Các giai đoạn kiểm thử giao diện
Có ba giai đoạn kiểm thử giao diện trong vòng đời của giao diện
Trang 14Vì vậy, điều quan trọng là phải duy trì tính xác thực của chương trình
Các bước liên quan đến Kiểm tra giao diện
Có một số bước nhất định liên quan đến quá trình Kiểm tra giao diện
Trang 15● Kiểm thử đơn vị: Nó kiểm tra chức năng của một phần riêng lẻ của chươngtrình Nó đảm bảo mọi phần của chương trình chạy tốt và được căn chỉnh phùhợp với phần mềm
● Kiểm tra chức năng: Nó kiểm tra chức năng trong khi tạo trường hợp thửnghiệm, xác thực, v.v
● Kiểm tra bảo mật: Nó kiểm tra cơ chế bảo mật Nó bao gồm kiểm tra thâmnhập cùng với xác thực kiểm soát truy cập, mã hóa, v.v
● Kiểm tra tải: Bằng cách sử dụng các trường hợp kiểm tra chức năng, nó xácnhận hiệu suất dưới tải
● Phát hiện lỗi thời gian chạy: Nó giải quyết các vấn đề về cuộc chạy đua thờigian chạy, rò rỉ tài nguyên, v.v
● Kiểm tra quy trình làm việc: Nó được thực hiện để đảm bảo rằng công cụ giaodiện xử lý tốt quy trình công việc
Tại sao chúng ta cần kiểm thử giao diện? Danh sách dưới đây cho thấy sự
cần thiết của kiểm thử giao diện:
- Để đảm bảo rằng người dùng cuối hoặc khách hàng không gặp bất kỳ sự cốnào khi sử dụng một phần mềm cụ thể
- Để xác định khu vực ứng dụng nào thường được người dùng cuối truy cập vàkiểm tra xem chúng có thân thiện với người dùng hay không
- Để xác minh các yêu cầu bảo mật trong khi truyền thông tin giữa các hệ thống
- Để kiểm tra xem giải pháp có khả năng xử lý lỗi mạng giữa máy chủ ứng dụng
và trang web hay không
- Để đảm bảo rằng phần mềm xử lý lỗi thành thạo
Phương pháp tiếp cận để kiểm tra giao diện
Sau đây là những điểm cần nhớ để thực hiện kiểm tra giao diện thành công:
Trang 166 Kiểm thử hiệu năng (Performance Testing)
Kiểm thử hiệu năng là để website làm việc dưới lượt tải nặng, được phân thànhhai phần: kiểm tra tần suất, kiểm tra lượt tải Bao gồm:
● Kiểm tra thời gian phản hồi của website với tốc độ kết nối khác nhau
● Kiểm tra website có xử lý được nhiều yêu cầu người dùng vào cùng một thờiđiểm
● Kiểm tra website có hoạt động tốt trong thời điểm lượt tải cao
● Kiểm tra dữ liệu đầu vào lớn từ người dùng
● Kiểm tra hành vi của website khi kết nối với cơ sở dữ liệu
● Kiểm tra các phương pháp tối ưu hóa như giảm thời gian tải bằng cách bật bộnhớ cache trên trình duyệt và phía máy chủ, nén gzip…
7 Kiểm thử bảo mật (Security Testing)
Kiểm thử bảo mật rất quan trọng đối với trang web thương mại điện tử lưu trữthông tin khách hàng nhạy cảm như thẻ tín dụng Hoạt động kiểm tra sẽ bao gồm:
● Kiểm tra quyền truy cập trái phép vào các trang an toàn không được phép
● Các tệp bị hạn chế không thể tải xuống nếu không có quyền truy cập thích hợp
● Các phiên kiểm tra sẽ tự động bị ngắt sau khi người dùng không hoạt độngtrong thời gian dài
● Khi sử dụng chứng chỉ SSL, trang web nên chuyển hướng lại các trang SSLđược mã hóa
8 Kiểm thử đám đông (Crowd Testing)
a) Kiểm thử đám đông là gì?
Crowd Testing chỉ đơn giản là thử nghiệm người dùng thông qua các nhómngười rộng hơn Bạn mở rộng phạm vi người thử nghiệm để có được kết quả hiệu quả.Những người kiểm tra có thể trải dài trên các vị trí địa lý khác nhau Họ thậm chí cóthể trải dài các quốc gia và lục địa Bạn có thể có nhiều loại thiết bị để thử nghiệm.Crowd Testing cung cấp các thiết bị và môi trường đa dạng, nhiều phiên bản để thửnghiệm
Cơ hội phát hiện lỗi tăng lên khi có nhiều người thử nghiệm (đám đông) hơn.Hiệu quả về chi phí và kết quả tốt hơn là một số lợi thế chính
Trang 17b) Các phần thường dùng trong kiểm thử đám đông
- Kiểm thử chức năng
- Kiểm thử nội bộ
- Kiểm thử tính khả dụng
Trang 18III Kiểm thử cơ sở dữ liệu (Phạm Thành Đô)
Đối với bất kỳ một ứng dụng nào thì Giao diện (Graphical User Interface –GUI) chính là thành phần giao tiếp với người dùng Chính vì thế, nó luôn được chútrọng nhất bởi các nhà quản lý cũng như đội ngũ phát triển
Nhưng bên cạnh đó, để đảm bảo mọi thông tin “giao tiếp” ấy là hoàn toàn chínhxác, thì Cơ sở dữ liệu (Database) lại là một yếu tố quyết định, là trái tim của ứng dụng.Hãy cùng xét đến ví dụ một người dùng sử dụng một ứng dụng ngân hàng và thực hiệncác giao dịch trên đó Từ quan điểm của kiểm thử database, có những điểm quan trọngsau đây cần phải xác minh:
Ứng dụng lưu trữ và hiển thị thông tin chính xác
1 Không có thông tin bị mất mát trong quá trình xử lý
2 Không lưu trữ các thông tin giao dịch chưa hoàn thành hoặc bị bỏ qua
3 Không thể truy cập thông tin của các người dùng khác
Các loại kiểm thử cơ sở dữ liệu
1 Kiểm thử sơ đồ (Schema)
2 Kiểm thử bảng và cột
3 Kiểm thử thủ tục (Stored Procedures)
4 Kiểm thử Trigger
5 Xác thực máy chủ cơ sở dữ liệu
6 Kiểm thử chức năng của cơ sở dữ liệu
7 Đăng nhập và bảo mật người dùng
8 Kiểm thử phi chức năng
Các loại kiểm thử Cơ sở dữ liệu Có 3 loại:
1 Kiểm thử cấu trúc (Structural)
2 Kiểm thử chức năng (Functional)
3 Kiểm thử phi chức năng (Non-functional)
1 Kiểm thử cấu trúc (Structural)
Việc kiểm thử cấu trúc database bao gồm việc kiểm tra tất cả các phần tử bêntrong kho lưu trữ dữ liệu được sử dụng chủ yếu cho việc lưu trữ data mà không chophép người dùng cuối thao tác trực tiếp Các truy vấn SQL chính là chìa khóa cho sựthành công của giai đoạn này
Trang 19Mục tiêu chính của việc kiểm tra sơ đồ là để đảm bảo sự các sơ đồ được ánh xạgiữa front-end và back-end là như nhau Do đó, chúng ta cũng có thể tham chiếu kiểmthử sơ đồ như kiểm thử ánh xạ (mapping testing).
Những điểm quan trọng trong việc kiểm tra sơ đồ:
1 Kiểm tra các kiểu dữ liệu của sơ đồ liên kết với cơ sở dữ liệu Nhiều khi, việcmapping định dạng của table có thể không tương thích với việc mapping địnhdạng trên giao diện người dùng của ứng dụng
2 Cần thiết kiểm tra các trường hợp: table, view, column không trùng khớp lẫnnhau
3 Ngoài ra, cũng cần thiết phải check các trường hợp dị biến của data (cáctrường hợp thay đổi hay data khác thường) trong môi trường tổng thể của ứngdụng
Một số công cụ hữu ích cho kiểm thử sơ đồ:
DBUnit được tích hợp với Ant rất thích hợp để kiểm thử sơ đồ SQL Server chophép tester có thể test và truy vấn các sơ đồ trong cơ sở dữ liệu của database bằng cáchviết những câu query đơn giản mà không cần thông qua code
1 Nếu một lập trình viên muốn thay đổi cấu trúc của table hoặc xóa nó, testernên kiểm tra toàn bộ các thủ tục và các View mà sử dụng trong bảng tươngthích với các thay đổi
2 Ví dụ khác là tester muốn kiểm tra sơ đồ thay đổi giữa 2 cơ sở dữ liệu, họ cóthể thực hiện việc đó bằng cách sử dụng những câu query đơn giản
Kiểm tra Bảng và Cột trong cơ sở dữ liệu
Các loại kiểm thử khác nhau cho cột và cơ sở dữ liệu:
1 Check sự mapping giữa các trường (field) và cột của cơ sở dữ liệu ở back-end