1. 3 Các kỹ thuật kiểm thử
2.3. Giới thiệu về công cụ DBeaver
2.3.1 . DBeaver
DBeaver là phần mềm hoạt động như một công cụ cơ sở dữ liệu chung dành cho các nhà phát triển và quản trị cơ sở dữ liệu.
DBeaver có giao diện người dùng được thiết kế tốt, nền tảng dựa trên khung mã nguồn mở và cho phép viết nhiều phần mở rộng, cũng như tương thích với bất kỳ cơ sở dữ liệu nào.
Cũng bao gồm hỗ trợ cho các máy khách MySQL và Oracle, quản lý trình điều khiển, trình soạn thảo SQL và định dạng. DBeaver là một ứng dụng đa nền tảng vì nó hỗ trợ cho các nền tảng MacOS, Windows và Linux.
Một số lợi ích và tính năng của ứng dụng này được liệt kê ở đây bao gồm:
- Câu lệnh SQL / thực thi tập lệnh
- Tự động điền và siêu liên kết siêu dữ liệu trong trình soạn thảo SQL. - Bộ kết quả có thể cuộn
- Xuất dữ liệu (bảng, kết quả truy vấn)
- Tìm kiếm các đối tượng cơ sở dữ liệu (bảng, cột, ràng buộc, thủ tục)
- DBeaver tiêu thụ ít bộ nhớ hơn nhiều so với các chương trình phổ biến khác (SQuirreL, DBVisualizer)
- Tất cả các hoạt động cơ sở dữ liệu từ xa hoạt động ở chế độ mở khóa, vì vậy DBeaver không bị sập nếu máy chủ cơ sở dữ liệu không phản hồi hoặc có sự cố mạng liên quan
2.3.2 . Tại sao sử dụng DBeaver
Một công cụ quản trị cơ sở dữ liệu miễn phí được cho là xịn sò nhất hiện nay. DBeaver hỗ trợ tất cả các cơ sở dữ liệu phổ biến nhất như: MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Derby, v.v
Bên cạnh đó, Nó dựa trên khung mã nguồn mở và cho phép viết các phần mở rộng (plugin) khác nhau.
Có một tập hợp các trình cắm thêm cho một số cơ sở dữ liệu nhất định (MySQL, Oracle, DB2, SQL Server, PostgreSQL, Vertica, Informix, MongoDB, Cassandra, Redis trong phiên bản 3.x) và các tiện ích quản lý cơ sở dữ liệu khác nhau (ví dụ như ERD).
Với DBeaver, các tác vụ phân tích và quản trị cơ sở dữ liệu phức tạp dễ dàng hơn so với cái nhìn đầu tiên. DBeaver không yêu cầu bất kỳ kiến thức kỹ thuật đặc biệt nào để sao lưu cơ sở dữ liệu của bạn ở trạng thái cập nhật và cung cấp hỗ trợ khi được yêu cầu.
2.3.3 . Cài đặt và cách sử dụng DbeaverCài đặt DBeaver Cài đặt DBeaver
Bước 1: Tải file cài đặt về trước, download file cài đặt (bản Installer) tại địa chỉ sau:
Hình 2.61. Bước 1
Bước 2: Nháy đúp chuột vào file vừa tải về để tiến hành cài đặt, một cửa sổ sẽ hiện ra như hình ảnh bên dưới. Các bạn chọn ngôn ngữ English => rồi bấm OK.
Hình 2.62. Bước 2 Bước 3: Bấm Next
Hình 2.63. Bước 3
Bước 4: Bước này đề cập đến License, bấm I Agree để đồng ý và tiếp tục.
Bước 5: Tiếp theo đến bước này có một vài lưu ý về vị trí cài đặt (đường dẫn mặc định là: C:\Program Files\Dbeaver). Để cài đặt thì yêu cầu không gian ổ cứng tối thiểu là khoảng 110MB cho phiên bản hiện tại.
Hình 2.65. Bước 5
Hình 2.66. Bước 6
Bước 7:Quá trình cài đặt tương đối nhanh (khoảng 1-2 phút).
Hình 2.67. Bước 7
Bước 8: Đến bước này thì chúng ta đã cài đặt xong Dbeaver. Bấm Finish để kết thúc quá trình cài đặt.
Hình 2.68. Bước 8
Sau khi cài đặt xong thì mở phần mềm Dbeaver lên, trong lần mở đầu tiên thì có thể sẽ được yêu cầu sự đồng ý của Windows Security.
=> Bấm ‘Allow access’ để cho Windows không chặn một số tính năng của DBeaver.
Hình 2.69. Windows Security
Tab Properties: Ở đây em đã chọn bảng CUSTOMERS (thực tế chúng ta làm việc với các bảng rất nhiều). Tab này cho chúng ta thông tin của bảng đó (các trường trong bảng, khóa chính, khóa ngoại… Nói chung là thông tin chi tiết về bảng đó).
Hình 2.70. Tab Properties
Tab Data: Ở tab này xem được toàn bộ dữ liệu trong bảng, có thể dưới dạng lưới (Grid hoặc dạng Text) – (3)
Ngoài ra, một điểm rất hay em rất thích đó là chúng ta có thể viết một SQL Script ngắn gọn để lọc dữ liệu trên bảng ở tab này – (4)
Hình 2.71. Tab Data
Tab ER Diagram: Đây cũng làm một tab em đánh giá rất cao, đặc biệt là với ai đang làm việc với các hệ quản trị cơ sở dữ liệu có quan hệ. Nó giúp cho chúng ta xem được mối liên hệ giữa các bảng.
Khả năng viết các câu lệnh SQL nhanh trong DBeaver
Để viết các câu lệnh SQL thì có thể bấm phím F3 hoặc chọn như hình bên dưới.
Hình 2.72. Open SQL script
Sau khi viết xong để thực thi câu lệnh đó các bạn có thể bẩm vào biểu tượng excute như mình khoanh ở hình bên dưới or nhấn Ctrl + Enter để chạy câu lệnh.
CHƯƠNG 3: TRIỂN KHAI SỬ DỤNG CÔNG CỤ DBEAVER CHO KIỂM THỬ DATABASE TRÊN CƠ SỞ DỮ LIỆU ORACLE
Chương cuối này sẽ là kết quả của quá trình thực hiện kiểm thử Database. Do còn nhiều hạn chế đồ án này em sẽ thực hiện kiểm thử trên công cụ DBeaver với 2 nghiệp vụ chính là Import và Update dữ liệu vào bảng.
Dưới đây là quá trình thực hiện kiểm thử đi từ thu thập dữ liệu, tìm hiểu hệ thống, đến viết testcase và cuối cùng là thưc hiện kiểm thử cho ra kết quả mong muốn.
Hình 3.74. Quá trình kiểm thử
3.1 . Lấy dữ liệu và tìm hiểu hệ thống
3.1.1 . Thu thập dữ liệu và đọc yêu cầu nghiệp vụ
Những dữ liệu cần thiết trước khi thực hiện kiểm thử: -File Tài liệu giải pháp:
+ Bảng mapping: Thông tin các trường Import và Update
Thông tin VBI và trường trong PBH: Luồng trả tháng N+1 và N+2 đối với đóng cước trước.
Hiển thi tên bảng và tên trường cần Import và Update từ Trường VBI cung cấp đến Bảng phí bán hàng (RP_SALE_GROUPS)
Nghiệp vụ cũ: Chưa có luồng Import và thực hiện trả phí cho việc điều chỉnh luồng trả phí bán hàng nhóm FMC
Nghiệp vụ mới: Xây dựng luồng Import thực hiện trả phí cho việc điều chỉnh luồng trả phí bán hàng FMC cho tháng N+1, N+2 đối với cước đóng trước
Đây là thông tin các trường cần thêm mới vào bảng RP_SALE_GROUPS
Hình 3.76. Các trường thêm mới -File txt: Thông tin các bản ghi mình cần Import và Update
3.1.2 . Tìm hiểu hệ thống
Đến đây DEV sẽ gửi cho chúng ta hệ thống mà DEV đã Import và Update dữ liệu xong (Hệ thống được sử dụng qua Tool ETL). Hệ thống này sẽ kết nối đến DB HOAHONG_TEST.
Hình 3.78. Hệ thống PBH
Khi test hệ thống chúng ta chỉ cần quan tâm đến các trans import, trans update staff, trans update shop. Vì khi mở các trans này ra mình có thể biết được những trường nào mình cần Import, trường nào cần Update và trường nào sẽ Update ở trans staff, trường nào Update ở trans shop.
Nhìn vào file mapping chúng ta sẽ không năm rõ được sẽ cần Import trường nào. Khi đó chúng ta sẽ phải vào hệ thống mở trans Import ra và mở Table Output lên.
Trong Table sẽ hiện thông tin các trường cần Import để có thể viết Testcase. Và hiện thông tin hệ thống kết nối đến DB HOAHONG_TEST
Hình 3.81. Luồng Trans Update staff và shop
Luồng của Trans_update_staff và Trans_update_shop sẽ giống nhau như hình (3.8)
Cũng tương tự như Trans Import thì Trans update staff và Trans update shop chúng ta cũng sẽ cần lấy thông tin các trường cần Update và trường nào Update ở staff, trường nào Update ở shop.
Hình 3.83. Trans_update_shop
3.2 . Tiến hành kiểm thử và kết quả
Thực hiện kiểm thử Database trên công cụ DBeaver, kết nối đến DB HOAHONG_TEST
Thông tin kết nối Dbeaver:
Host: 128.199.239.168
Database: XE
Username: da_lifesup
Hình 3.84. Kết nối DB HOAHONG_TEST
3.2.1 . Kiểm thử các trường thêm mới vào bảng RP_SALE_GROUPS
Kịch bản kiểm thử thêm mới các trường dựa vào thông tin ở Tài liệu giải pháp đưa ra chúng ta sẽ có các testcase sau:
Hình 3.86. Testcase thêm mới trường
Hình 3.87. Kiểm tra các trường thêm mới
Từ kết quả trả về cho thấy trường hợp kiểm thử đúng với kết quả mong muốn, các trường prepaid billing, config group code, config group name, telecom service id, status n2, act status n2, Data type đã được thêm mới vào bảng RP_SALE_GROUPS. Phần kết quả test sẽ hiện P khi trường hợp kiểm thử đó đúng.
3.2.2 . Kiểm thử các trường Import vào bảng RP_SALE_GROUPS
Kịch bản kiểm thử Import các trường dựa vào thông tin ở file mapping, thông tin hệ thống đưa ra và dữ liệu các bản ghi ở file txt chúng ta sẽ có các testcase sau:
Hình 3.90. Kết quả của các trường Import
Kết quả đúng như mong đợi. Các giá trị bản ghi từ trường VBI cung cấp đã được Import vào bảng RP_SALE_GROUPS và giá trị các bản ghi giống với giá trị các bản ghi trong File txt. Phần kết quả test sẽ hiện P khi trường hợp kiểm thử đó đúng.
3.2.3 . Kiểm thử các trường Update vào bảng RP_SALE_GROUPS
Kịch bản kiểm thử Update các trường dựa vào TLGP có nói lấy giá trị từ PBH, Update từ staff_code hoặc shop_code
Hình 3.91. Testcase Update st_channel_type_id
- Lấy dữ liệu Staff_code và RP_SALE_GROUP_ID từ bảng RP_SALE_GROUP để tìm giá trị bản ghi trường channel_type_id, sau đấy sẽ só sánh giá trị bản ghi trường channel_type_id với giá trị bản ghi trường st_channel_type_id. Khi giá trị bản ghi 2 trường bằng nhau => hệ thống đã Update và Update đúng giá trị bản ghi.
Hình 3.93. Giá trị bản ghi trường channel_type_id
Hình 3.94. Kết quả giá trị bản ghi st_channel_type_id
- Lấy dữ liệu Staff_code và RP_SALE_GROUP_ID từ bảng RP_SALE_GROUP để tìm giá trị bản ghi trường staff_id, sau đấy sẽ só sánh giá trị bản ghi trường staff_id (bảng staff_daily) với giá trị bản ghi trường staff_id (bảng RP_SALE_GROUP). Khi giá trị bản ghi 2 trường bằng nhau => hệ thống đã Update và Update đúng giá trị bản ghi.
Hình 3.96.Giá trị trường bản ghi Staff_code
Hình 3.97. Giá trị bản ghi trường Staff_id (bảng Staff_daily)
Hình 3.98. Kết quả giá trị bản ghi trường Staff_id (RP_SALE_GROUP)
Hình 3.99. Testcase Update s_channel_type_id
- Lấy dữ liệu Shop_code và RP_SALE_GROUP_ID từ bảng RP_SALE_GROUP để tìm giá trị bản ghi trường channel_type_id, sau đấy sẽ só sánh giá trị bản ghi trường channel_type_id với giá trị bản ghi trường s_channel_type_id. Khi giá trị bản ghi 2 trường bằng nhau => hệ thống đã Update và Update đúng giá trị bản ghi.
Hình 3.101. Giá trị bản ghi trường channel_type_id
Hình 3.102.Kết quả giá trị bản ghi trường s_channel_type_id
- Lấy dữ liệu Shop_code và RP_SALE_GROUP_ID từ bảng RP_SALE_GROUP để tìm giá trị bản ghi trường shop_id, sau đấy sẽ só sánh giá trị bản ghi trường shop_id (bảng Shop_daily) với giá trị bản ghi trường shop_id (bảng RP_SALE_GROUP). Khi giá trị bản ghi 2 trường bằng nhau => hệ thống đã Update và Update đúng giá trị bản ghi.
Hình 3.104. Giá trị trường bản ghi Shop_code
Hình 3.105. Giá trị bản ghi trường shop_id (bảng shop_daily)
- Lấy dữ liệu Shop_code và RP_SALE_GROUP_ID từ bảng RP_SALE_GROUP để tìm giá trị bản ghi trường IS_SHOP_1400 theo điều kiện như hình dưới, sau đấy sẽ so sánh giá trị bản ghi trường IS_SHOP_1400 (bảng Shop_daily) với giá trị bản ghi trường IS_SHOP_1400 (bảng RP_SALE_GROUP). Khi giá trị bản ghi 2 trường bằng nhau => hệ thống đã Update và Update đúng giá trị bản ghi.
Hình 3.107. Testcase Update IS_SHOP_1400
Hình 3.109. Giá trị bản ghi trường IS_SHOP_1400 (bảng shop_daily)
Hình 3.110. Giá trị bản ghi trường IS_SHOP_1400 (bảng RP_SALE_GROUP) Tổng hợp tất cả các kết quả thì kết quả trả về đúng như mong đợi. Các trường Update theo yêu cầu của TLGP được Update bảng RP_SALE_GROUPS và giá trị các bản ghi giống với giá trị các bản ghi trong bảng staff_daily và shop_daily. Phần kết quả test sẽ hiện P khi trường hợp kiểm thử đó đúng.
Dựa vào bảng so sánh kết quả bộ kịch bản kiểm thử và kết quả cho thấy hệ thống hoạt động rất tốt và đúng yêu cầu khách hàng đưa ra. Bên cạnh đó kết quả trả về của công cụ DBeaver thời gian phản hồi rất nhanh và không cảm thấy bị gián đoạn .
KẾT LUẬN
Kiểm thử nói chung và kiếm thử Database nói riêng là một vấn đề hết sức quan trọng đối với các tổ chức phát triển phần mềm hiện nay. Trong qua trình Thực tập tốt nghiệp của mình do thời gian nghiên cứu và kinh nghiệm bản thân còn hạn chế nên một số phần của đồ án nghiên cứu chưa được sâu.
Sau một thời gian tìm hiểu và nghiên cứu đề tài này, em đã đạt được một số kết quả sau:
- Tìm hiểu được cách xây dựng được Kịch bản kiểm thử
- Chỉ ra được sự khác biệt của việc kiểm thử Database và các kiểm thử khác (như kiểm thử WEB, kiểm thử API)
- Tìm hiểu chi tiết cách cài đặt và sử dụng công cụ DBeaver
- Chưa nghiên cứu được các kỹ thuật nâng cao khi sử dụng DBeaver
Em rất mong nhận được sự góp ý của các Thầy, Cô và các bạn để có thêm kinh nghiệm và kiến thức để tiếp tục nghiên cứu và hoàn thiện nội dung nghiên cứu trong đề tài này.
TÀI LIỆU THAM KHẢO
[1]. Giáo trình kiểm thử phần mềm – Phạm Ngọc Hùng, Trương Anh Hoàng và Đặng Văn Hưng (Tháng 1 năm 2014).
[2]. Nguyễn Văn Vỵ - Nguyễn Việt Hà, Giáo trình Kỹ nghệ phần mềm, Nhà xuất bản Giáo dục Việt Nam, 2009.
[3]. Bai-8_Software-Testing.pdf , Bai-3_Software-Testing.pdf, TesterTOP_Tài-liệu- Phỏng-vấn-Tester_v11.pdf
[4]. Website VIBLO : https://viblo.asia/p/kiem-thu-co-so-du-lieu-database-testing- L4x5xN9rZBM
[5]. Website TECHACADEMY : https://techacademy.edu.vn/cac-phuong-phap- kiem-thu-phan-mem
[6]. Website CHIASEKIENTHUC : https://blogchiasekienthuc.com/phan-mem- mien-phi/dbeaver.html [7]. Website 2KVN : https://2kvn.com/kiem-tra-co-so-du-lieu-nhung-thong-tin-ban- can-biet-p5f333331 [8]. https://lib.hpu.edu.vn/bitstream/handle/123456789/30602/Vu-Cong-Minh- CT1801.pdf?sequence=1&fbclid=IwAR2uGzGgQEFZ34KazviQQ_A02MVEEJc- EuIm9kMkiqwQSfayXODkme1J-qY