Professional Documents
Culture Documents
Kiểm thử thủ công website
Kiểm thử thủ công website
ĐỒ ÁN MÔN HỌC
NHÚNG
Đề tài:
WEBSITE
LINHKIENCHATLUONG.VN
Hà Nội, 11-2021
LỜI NÓI ĐẦU
Trong thời buổi công nghệ thông tin có mặt khắp các lĩnh vực, các tổ chức cá
nhân, doanh nghiệp ngày càng phát triển mạnh mẽ. Nhu cầu sử dụng các phần mềm
để thực hiện các công việc được nhanh chóng, chính xác và hiệu quả ngày càng
tăng. Việc đảm bảo chất lượng phần mềm ngày càng trở nên quan trọng. Bên cạnh
các phần mềm truyền thống, người ta còn sử dụng các phần mềm chạy trên nền
web. Chính vì điều đó website ngày càng được sử dụng rộng rãi. Ngoài ra, để đáp
ứng nhu cầu chia sẻ thông tin, cũng như truyền tải thông tin một cách nhanh chóng
và tiếp cận với nhiều người nhất thì website chính là phương tiện có khả năng làm
tốt nhất việc đó.
Các website được phát triển một cách cực kỳ mạnh mẽ và nhanh chóng. Tuy
nhiên, đi cùng với sự phát triển vượt bậc và tiện lợi như thế thì cũng có không ít các
trở ngại dẫn đến việc website không được hoạt động một cách hiệu quả nhất. Do đó,
cần thiết phải kiểm thử và đảm bảo chất lượng của website.
Nhóm em xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn cô Thái Thị
Thanh Vân – Giảng viên bộ môn Kiểm thử phần mềm Nhúng, nhóm em thực hiện
đề tài “Kiểm thử thủ công chức năng cho website linhkienthongminh.vn” và thực
hiện trên website có sẵn nhưng vẫn còn thiếu sót trong việc phát triển. Do hạn chế
về mặt kiến thức cho nên không thể tránh khỏi sai sót trong quá trình làm báo cáo,
nhóm em rất mong được sự góp ý từ cô và các bạn.
Bản báo cáo được chia thành chương với nội dung như sau:
Chương 3: Áp dụng
Từ những kiến thức đã tìm hiểu trong 2 chương trước, nhóm em áp dụng xây
dựng các Test-Case cho website bán đồ linh kiện
CHƯƠNG 1. TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
5
Cách thực hiện dựa trên các ca kiểm thử (test case) xác định bằng sự hoạt động
của đối tượng kiểm thử hay toàn bộ chương trình.
Kiểm tra cách thức hoạt động động của mã lệnh, bao gồm luôn cả kiểm tra sự
phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian.
- Mục đích:
Trong kiểm thử động, tester quan tâm đến dữ liệu đầu vào và output đầu ra.
Với mỗi tập dữ liệu đầu vào sẽ phát sinh ra một tập dữ liệu output
Nếu chương trình nhận đầu vào để “chạy” sau đó đưa ra dữ liệu output giống như
yêu cầu. Có thể nói đó là phần mềm đã hoạt động thành công.
7
thiết kế. Người kiểm tra chọn đầu vào để thực hiện các đường dẫn thông qua mã
và xác định đầu ra thích hợp. Kiến thức lập trình và kiến thức thực hiện là rất cần
thiết trong kiểm thử hộp trắng.
Kiểm thử hộp trắng bao gồm phân tích dòng dữ liệu, điều khiển dòng, dòng thông
tin, mã thực hành, ngoại lệ và những lỗi trình bày trong hệ thống để kiểm tra
những hành động của phần mềm không được định hướng trước.
- Ưu điểm:
Test có thể bắt đầu ở giai đoạn sớm hơn, không cần phải chờ đợi cho GUI để có
thể test
Test kỹ càng hơn, có thể bao phủ hầu hết các đường dẫn
Thích hợp trong việc tìm kiếm lỗi và các vấn đề trong mã lệnh
Cho phép tìm kiếm các lỗi ẩn bên trong
Các lập trình viên có thể tự kiểm tra
Giúp tối ưu việc mã hoá
Do yêu cầu kiến thức cấu trúc bên trong của phần mềm, nên việc kiểm soát lỗi tối
đa nhất.
- Nhược điểm:
Vì các bài kiểm tra rất phức tạp, đòi hỏi phải có các nguồn lực có tay nghề cao,
với kiến thức sâu rộng về lập trình và thực hiện.
Maintenance test script có thể là một gánh nặng nếu thể hiện thay đổi quá thường
xuyên.
Vì phương pháp thử nghiệm này liên quan chặt chẽ với ứng dụng đang được test,
nên các công cụ để phục vụ cho mọi loại triển khai / nền tảng có thể không sẵn có.
8
Các developer muốn tìm hiểu chức năng nào được cung cấp bởi một đơn vị và
cách sử dụng chức năng này có thể xem xét các test cases kiểm thử đơn vị để có
được sự hiểu biết cơ bản về unit API.
Kiểm thử đơn vị cho phép lập trình viên cấu trúc lại code vào một ngày sau đó và
đảm bảo mô-đun vẫn hoạt động chính xác (ví dụ: Kiểm thử hồi quy). Quy trình là
viết các trường hợp kiểm thử cho tất cả các hàm và phương thức để mỗi khi thay
đổi gây ra lỗi, nó có thể được xác định và sửa chữa nhanh chóng.
Do tính chất mô-đun của kiểm thử đơn vị, chúng ta có thể kiểm thử các phần của
dự án mà không cần chờ người khác hoàn thành.
- Nhược điểm:
Kiểm thử đơn vị không thể phát hiện được mọi lỗi trong một chương trình. Không
thể đánh giá tất cả các luồng thực hiện ngay cả trong các chương trình tầm thường
nhất
Kiểm thử đơn vị theo bản chất là tập trung vào một đơn vị code. Do đó, kiểm thử
đơn vị không thể bắt lỗi tích hợp hoặc lỗi hệ thống lớn.
- Các kỹ thuật kiểm thử đơn vị:
Statement Coverage:
o Statement Coverage đảm bảo rằng tất cả các dòng lệnh trong mã nguồn đã
được kiểm tra ít nhất một lần. Nó cung cấp các chi tiết của cả hai khối mã
được thực thi và thất bại trong tổng số các khối mã.
o Ưu điểm:
Nó có thể được áp dụng trực tiếp vào mã đối tượng và không yêu
cầu xử lý mã nguồn.
Nó xác minh những gì mã nguồn viết được dự kiến sẽ thực thi và
không thực thi
o Nhược điểm:
Nó chỉ bao gồm các điều kiện “true” của mã nguồn.
Statement Coverage hoàn toàn không quan tâm với các toán tử logic
(|| và &&).
Decision Coverage:
o Các nhà phát triển không thể viết mã trong một chế độ liên tục, tại bất kỳ
điểm nào họ cần phân nhánh mã để đáp ứng các yêu cầu chức năng. Sự
phân nhánh trong mã thực sự là một bước nhảy từ điểm quyết định này
sang điểm khác. Decision coverage kiểm tra mọi đường dẫn có thể hoặc chi
nhánh trong mã được kiểm thử.
9
o Decision coverage có thể được tính bằng cách tìm số đường dẫn tối thiểu để
đảm bảo rằng tất cả các cạnh đã được che phủ. Trong ví dụ đã cho, không
có đường dẫn duy nhất đảm bảo vùng phủ sóng của tất cả các cạnh cùng
một lúc.
o Ưu điểm:
Nó bao gồm cả các điều kiện đúng và sai không có khả năng được
gọi trong statement coverage.
Nó đảm bảo tất cả các nhánh được kiểm thử.
o Nhược điểm:
Nó bỏ qua các nhánh trong các biểu thức Boolean xảy ra do các toán
tử ngắn mạch.
Condition Coverage:
o Condition Coverage sẽ kiểm tra phạm vi điều kiện nếu cả hai kết quả (có
nghĩa là “true” hay “fail”) của mọi điều kiện đã được thực hiện. Kết quả
của điểm quyết định chỉ liên quan để kiểm tra các điều kiện. Nó đòi hỏi hai
trường hợp thử nghiệm cho mỗi điều kiện cho hai kết quả.
10
Các giao diện của các module trong phần mềm với cơ sở dữ liệu có thể không
tương thích.
Khi tích hợp các module vào hệ thống có thể không tương thích với cấu hình
chung của hệ thống.
Xử lý các ngoại lệ không đầy đủ có thể gây ra lỗi.
- Các phương pháp kiểm thử tích hợp:
Kiểm thử tích hợp Big Bang:
11
Tất cả các thành phần được tích hợp cùng một lúc, sau đó tiến hành kiểm thử.
12
o Nhược điểm:
Khó khăn trong việc phát hiện bug.
Với số lượng giao diện cần được kiểm thử theo phương pháp này,
một số giao diện liên kết cần kiểm thử có thể dễ dàng bị bỏ qua.
Vì kiểm thử Tích hợp chỉ có thể bắt đầu sau khi tất cả các module
được thiết kế, nên nhóm kiểm thử sẽ có ít thời gian thực hiện hơn
trong giai đoạn kiểm thử.
Vì tất cả các module được kiểm thử đồng thời, các module quan
trọng có rủi ro cao không bị cô lập và được ưu tiên kiểm thử. Các
module có liên quan đến giao diện người dùng cũng không bị cô lập
và được ưu tiên kiểm thử.
Kiểm thử tích hợp Top-Down:
Việc kiểm tra diễn ra từ trên xuống dưới, theo dòng điều khiển hoặc cấu trúc
kiến trúc.
13
Cơ bản có thể được thực hiện với thời gian ít hơn bởi vì đơn giản
hơn.
Thu gọn phạm vi bug dễ dàng hơn.
Modules quan trọng đang được thử nghiệm trên mức ưu tiên, lỗi
trong thiết kế lớn có thể được tìm thấy và cố định đầu tiên.
o Nhược điểm:
Chức năng cơ bản được kiểm tra vào cuối chu kỳ.
Cần nhiều Stub.
Module ở mức độ thấp hơn sẽ được kiểm tra không đầy đủ.
Kiểm thử tích hợp Bottom-Up:
Mỗi module ở mức thấp hơn được thử nghiệm với các module cao hơn cho đến
khi tất cả các module đều được kiểm tra. Nó được sử dụng cho Driver testing.
14
Không giữ được nguyên mẫu đầu tiên của hệ thống.
15
o Acceptance Testing giúp tìm hiểu và xác định các yêu cầu của người dùng
bằng cách kiểm chứng trực tiếp.
o Thông qua Acceptance Testing sẽ tìm được những vấn đề ở Unit hoặc
Integration Test đã để lọt.
o Acceptance Testing giúp bạn có cái nhìn tổng quan nhất về kết quả hệ
thống đạt được.
o Acceptance Testing được sử dụng để xác định và xác minh nhu cầu của
khách hàng.
Các loại Acceptance Testing:
o Alpha & Beta Testing:
Alpha & Beta Testing thường diễn ra trong môi trường phát triển và
được thực hiện bởi nhân lực nội bộ. Số ít người dùng tiềm năng có thể tiến
hành Alpha Testing với điều kiện nó diễn ra trong môi trường phát triển.
Nhờ những thu thập được từ Alpha & Beta Testing sẽ giúp bạn xác định
được một số vấn đề và cải thiện chúng tốt hơn.
o Contract Acceptance Testing:
Contract Acceptance Testing (Kiểm tra chấp nhận hợp đồng) được thực
hiện nhằm kiểm tra các tiêu chí và thông số kỹ thuật đã xác định trong hợp
đồng. Những tiêu chí và thông số kỹ thuật có liên quan sẽ được nhóm dự án
xác định và chấp nhận khi nhóm đồng ý với hợp đồng.
o Regulation Acceptance Testing:
Regulation Acceptance Testing (Kiểm tra chấp nhận quy định) được thực
hiện nhằm kiểm tra xem phần mềm có tuân thủ các quy định hay không.
Trong quá trình kiểm tra cần đặc biệt lưu ý tới các quy định của chính phủ
và pháp lý.
o Operational acceptance Testing:
Operational Acceptance Testing (Thử nghiệm sẵn sàng hoạt động) giúp
đảm bảo các quy trình thực hiện công việc cho phép phần mềm hoặc hệ
thống được sử dụng. Trong Operational Acceptance Testing bao gồm: các
quy trình công việc cho kế hoạch dự phòng – quy trình đào tạo người dùng
– quy trình bảo trì và quy trình bảo mật.
o Black Box Testing:
16
Black Box Testing (Kiểm thử hộp đen) là một phần của kiểm tra chấp
nhận người dùng. Phương pháp kiểm thử này giúp phân tích các chức năng
mà không cho phép người kiểm tra thấy được cấu trúc code bên trong. Để
làm tốt Black Box Testing, bạn cần biết về các yêu cầu mà phần mềm phải
đáp ứng.
19
Là đường đi xuất phát từ đỉnh vào, đi qua các đỉnh và các cung khác, kết thúc tại
đỉnh ra.
Đơn giản hóa biểu thức đường đi như sau: G1= n 0 (1 2 3 + 1 2 4 + 1 5) ne
- Số lượng lộ trình trong đồ thị luồng điều khiển
Công thức tính: V(G) = E-N+2. Trong đó E là số cung, N là số nút
V(G) = P+1, trong đó P là số miền khép kín tạo ra do các nút và đường trên cùng
mặt phẳng
- Các bước thiết kế test case bằng đồ thị luồng điều khiển
Xây dựng đồ thị luồng điều khiển của chương trình
Tính số lượng đường cơ sở
Xác định tập các đường cơ sở
Thiết kế các Test Case cho các đường cơ sở
Chú ý: việc quan trọng nhất là xác định các điểm nút.
Gộp các nút mà luồng điều khiển “chắc chắn” sẽ đi qua.
Chia nhỏ biểu thức điều kiện
- Kiểm thử đối với vòng lặp đơn giản
Nên chọn các test case sau để kiểm thử lệnh lặp n lần:
Chạy 0 lần
Chạy 1 lần
Chạy k lần, 2<k<n-1
Chạy n-1 lần
Chạy n lần
- Kiểm thử đối với vòng lặp lồng nhau
Kiểm thử tuần tự từng vòng lặp từ trong ra ngoài theo gợi ý sau:
Kiểm thử vòng lặp trong cùng: cho các vòng chạy với giá trị min, kiểm thử vòng
lặp trong cùng bằng 5 test case đã nói trên
20
Kiểm thử vòng lặp còn lại: cho các vòng ngoài chạy với giá trị min, các vòng bên
trong nó chạy với giá trị điển hình đã giới thiệu
21
Có thể bị thiếu lỗi ở biên
22
2.3.2.4. đồ thị nguyên nhân- kết quả
- Là kỹ thuật minh họa mối quan hệ giữa một kết quả và tất cả các yếu tố ảnh hưởng
đến kết quả đó
- Thường được sử dụng trong các trường hợp:
Xác minh vấn đề hiện tại
Mô tả lại các kết nối hệ thống với các yếu tố ảnh hưởng
Xác định nguyên nhân có thể xảy ra
- Các bước thực hiện:
Xác định và mô tả các điều kiện đầu vào (cause) và kết quả (effect)
Xây dựng sơ đồ nguyên nhân – kết quả
Chuyển sang bảng quyết định
Xây dựng các Test Case
CHƯƠNG 3: ÁP DỤNG
23
- Liệt kê những yêu cầu cho việc kiểm thử
24
o V.v….
Kiểm tra chức năng giỏ hàng:
o Tính hợp lệ khi nhập số điện thoại
o Kiểm tra ngữ pháp, chính tả
o Nội dung phải đầy đủ thông tin, dễ hiểu, có liên kết hợp lý
Kiểm tra chức năng đăng ký:
o Tính hợp lệ cho dữ liệu đầu vào
o Giao diện dễ sử dụng, có hướng dẫn khi người dùng nhập sai thông tin
o Các nút, link liên kết cần được thiết kế dễ sử dụng, tương thích với
nhiều thiết bị và nhiều màn hình khác nhau
- Những yêu cầu phi chức năng:
Trang web chạy ổn định trên nhiều trình duyệt khác nhau Cốc Cốc, Google
Chrome, Microsoft Edge.
Trang web chạy được trên nhiều nền tảng Windows, Phone, Tabbet
Không treo trang, các trang không chứa các link chết, link hỏng, …
Màn hình hiển thị không bị vỡ bố cục, tương thích với nhiều loại màn hình
khác nhau.
- Những chức năng không được kiểm thử:
Chức năng tìm kiếm.
Chức năng trang chủ
Chức năng đăng nhập
v.v….
3.1.4. Định nghĩa vai trò từng các nhân trong nhóm
25
Bùi Đình Hùng - Test Designer/ Tester
+ Thiết kế và viết các Test Case cho chức năng
Liên Hệ
+Thiết kế và viết các Test Case cho chức năng Giỏ
Hàng
+Thực thi và viết Test Case bổ sung cho chức
năng Đăng Ký
Cao Ngọc Hiền - Test Designer/ Tester
+ Thiết kế và viết các Test Case cho chức năng
Đăng Ký
+ Thực thi và viết Test Case bổ sung cho 2 chức
năng còn lại
Trần Minh Quảng - Test Designer/ Tester
+Thiết kế và viết các Test Case cho chức năng
Đăng Ký
+Thực thi và viết Test Case bổ sung cho 2 chức
năng còn lại
26
3.4. Đánh giá kết quả kiểm thử
Mức độ nghiêm trọng Đặc tả lỗi
Cao - Không có định dạng chuẩn số điện thoại (có thể nhập
số tùy ý và tùy kích thước)
- Mật khẩu không giới hạn số ký tự
- Emal không định dạng chuẩn
- Không xác thực số điện thoại
Vừa - Không nhập nội dung, tiêu đề mà trang web vẫn hiển
thị thành công
- Các trường hợp nhập nội dung cần thiết không có
dấu (*)
Thấp - Giao diện trang web còn khá đơn sơ, không được căn
giữa, hiệu ứng
- Không có chức năng chuyển ngôn ngữ sang Tiếng
Anh
- Zoom màn hình sẽ bị mất nội dung
27
TÀI LIỆU THAM KHẢO
1. The Art of Software Testing, Glenford J. Myers, Second Edition, John Wiley and
Sons, Inc.
4. http://en.wikipedia.org/wiki/Software_testing
5. https://codelearn.io/sharing/toan-tap-kiem-thu-phan-mem?
fbclid=IwAR2zPU5fZH7-7d4jYqjj9yPweps2u-0rSe4GQitOdwU4tjskZO19dv4Z0-
Y
28
6. https://freetuts.net/kiem-thu-thu-cong-1495.html?
fbclid=IwAR3BlORC0xy3WB8qRqeVpBl7ytzJpexs0oHdmH-
D0xgAPB_eQ_q2baAZUHQ
7. https://freetuts.net/quy-trinh-quan-ly-kiem-thu-1622.html?fbclid=IwAR1sbGjA-
AwGaLJ2nQhg-l-BQM48NkqVfhH3Ghg02m3EYldUx1omv_8d7-w
8. https://freetuts.net/cach-tao-test-plan-1642.html?
fbclid=IwAR0i_EKbFwWvhfZpEpUwiY2-
pS2c0p0tYjZGo6kD6YDyQl7ezVwzC2tluO8
9. https://freetuts.net/cach-viet-test-cases-1556.html?
fbclid=IwAR0kIGejfpPZKpkZrkNGLOsnihVR7O62MTIbT5ninTCz5oE4o78VhQ
FMkZc
29