Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và trọn vẹn theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra. Software testing cũng gửi tới mục tiêu, cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Căn cứ là gì? Hãy cùng LVN Group nghiên cứu thông qua nội dung trình bày dưới đây
1. Kiểm thử là gì?
Đây là một trong những loại kiểm thử phần mềm cần thiết để xác nhận xem hệ thống có hoạt động đúng yêu cầu được không. Ở tất cả các mức độ kiểm thử đều được kiểm thử chức năng.
Testing of function là một trong những loại kiểm thử phần mềm cần thiết
Testing of function có thể thực hiện theo 2 quan điểm: business – process – based và requirements-based. Với business – process – based, kiểm thử viên sẽ sử dụng các kiến thức về quy trình nghiệp vụ (mô tả các kịch bản liên quan đến nghiệp vụ của hệ thống mỗi ngày).
Trong khi đó, requirements-based sử dụng các đặc tả yêu cầu của hệ thống làm cơ sở để design test. Để đảm bảo những thành phần cần thiết nhất đều được kiểm thử, hãy xem xét độ ưu tiên của yêu cầu dựa trên tiêu chí rủi ro, theo đó, chúng ta sẽ sử dụng độ ưu tiên để kiểm thử.
Các bước kiểm thử chức năng gồm:
Bước 1: Xác định phần mềm sẽ kiểm thử và chức năng của nó
Bước 2: Dựa trên tài liệu đặc tả chức năng để tạo dữ liệu đầu vào
Bước 3: Dựa vào tài liệu đặc tả chức năng để xác định đầu ra
Bước 4: Thực hiện các trường hợp kiểm thử phần mềm
Bước 5: So sánh kết quả thực tiễn với mong muốn đạt được
2. Kỹ thuật kiểm thử phần mềm là gì?
Kỹ thuật kiểm thử phần mềm giúp bạn thiết kế các trường hợp kiểm thử tốt hơn. Vì kiểm thử toàn diện là không thể nên kỹ thuật kiểm tra thủ công sẽ giúp giảm số lượng các trường hợp kiểm thử được thực thi trong khi tăng phạm vi kiểm thử. Chúng giúp xác định các điều kiện kiểm tra khó nhận biết.
Dưới đây là các loại kỹ thuật kiểm thử thông dụng
Phân vùng tương đương (Equivalence Class Partitioning)
Phân tích giá trị biên (Boundary Value Analysis (BVA) )
Bảng quyết định (Decision Table based testing)
Đoán lỗi (Error Guessing)
3. Phân vùng tương đương
Phân vùng lớp tương đương cho phép bạn phân chia tập hợp các điều kiện kiểm tra thành một phân vùng nên được coi là giống nhau.
Phương pháp kiểm thử phần mềm này chia miền đầu vào của chương trình thành các lớp dữ liệu mà từ đó các trường hợp kiểm thử nên được thiết kế.
Với các giá trị đầu vào chia thành các vùng tương đương:
Vùng tương đương hợp lệ: tập hợp các giá trị kiểm thử thỏa mãn điều kiện của hệ thống
Vùng tương đương không hợp lệ: Tập hợp các giá trị kiểm thử mô tả trạng thái khác của hệ thống: sai, thiếu, không đúng,…
Mục đích : Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp tương đương ta chỉ cần test trên các phần tử uỷ quyền.
Thiết kế Test-case bằng phân lớp tương đương tiến hành theo 2 bước:
Xác định các lớp tương đương
Xác định các ca kiểm thử
Nguyên tắc:
1 lớp các giá trị lớn hơn
1 lớp các giá trị nhỏ hơn
n lớp các giá trị hợp lệ
Ví dụ: Thiết kế testcase cho ô text chỉ cho nhập số nguyên với độ dài ký tự thuộc [1-10] hoặc [20-30]
Với yêu cầu trên ta có các vùng:
nhỏ hơn 1 : vùng không hợp lệ
[1-10] : vùng hợp lệ
lớn hơn 10 và nhỏ hơn 20 : vùng không hợp lệ
[20-30] : vùng hợp lệ
lớn hơn 30: vùng không hợp lệ
Nhập các ký tự không phải số nguyên : vùng không hợp lệ
Vì vậy có các case:
Case hợp lệ:
Nhập 5 ký tự
Nhập 25 ký tự số
Case không hợp lệ:
Không nhập vào trường
Nhập 15 ký tự
Nhập số thập phân
Nhập 35 kí tự
Nhập ký tự chữ: Tiếng việt, Tiếng anh, Full-size, Half-size
Nhập ký tự đặc biệt, space, kí tự Enter
Nhập câu lệnh SQL injection, HTML, XSS
4. Phân tích giá trị biên
Phân tích giá trị biên dựa trên việc kiểm thử tại các ranh giới giữa các phân vùng, Chúng ta sẽ tập trung vào các giá trị biên chứ không test toàn bộ dữ liệu. Thay vì chọn nhiều giá trị trong lớp đương tương để làm uỷ quyền, phân tích giá trị biên yêu cầu chọn một hoặc vài giá trị là các cạnh của lớp tương đương để làm điều kiện test.
Chúng ta thường thấy rằng một số lượng lớn lỗi xảy ra tại các ranh giới của các giá trị đầu vào được xác định thay vì các giá trị giữa, còn được gọi là các giá trị biên. Từ đó đưa ra lựa chọn các test cases thực hiện giá trị đầu vào các giá trị biên.
Kỹ thuật thiết kế test cases này bổ sung cho phân vùng tương đương. Kỹ thuật kiểm thử phần mềm này dựa trên nguyên tắc: Nếu một hệ thống hoạt động tốt với các giá trị biên thì nó sẽ hoạt động tốt cho tất cả các giá trị nằm giữa hai giá trị biên.
Phân tích giá trị biên sẽ chọn các giá trị:
Giá trị ngay dưới giá trị nhỏ nhất
Giá trị nhỏ nhất
Giá trị ngay trên giá trị nhỏ nhất
Giá trị ngay dưới giá trị lớn nhất
Giá trị lớn nhất
Giá trị ngay trên giá trị lớn nhất
Ví dụ: Với ví dụ trên ta có các case:
Không nhập ký tự nào (Giá trị ngay dưới giá trị nhỏ nhất vùng 1)
Nhập 1 ký tự (giá trị nhỏ nhất vùng 1)
Nhập 2 ký tự (giá trị ngay trên giá trị nhỏ nhất vùng 1)
Nhập 9 ký tự (giá trị ngay dưới giá trị lớn nhất vùng 1)
Nhập 10 ký tự(giá trị lớn nhất vùng 1)
Nhập 11 ký tự(giá trị ngay trên giá trị lớn nhất vùng 1)
Nhập 19 ký tự (giá trị ngay dưới giá trị nhỏ nhất vùng 2)
Nhập 20 ký tự(giá trị nhỏ nhất vùng 2)
Nhập 21 ký tự (giá trị ngay trên giá trị nhỏ nhất vùng 2)
Nhập 29 ký tự(giá trị ngay dưới giá trị lớn nhất vùng 2)
Nhập 30 ký tự(giá trị lớn nhất vùng 2)
Nhập 31 ký tự(giá trị ngay trên giá trị lớn nhất vùng 2)
→ Kết hợp kỹ thuật phân vùng tương đương với phân tích giá trị biên ta có các case:
Không nhập ký tự nào
Nhập 1 ký tự
Nhập 5 ký tự
Nhập 10 ký tự
Nhập 11 ký tự
Nhập 19 ký tự
Nhập 20 ký tự
Nhập 21 ký tự
Nhập 25 ký tự
Nhập 30 ký tự
Nhập 31 ký tự
Nhập số thập phân
Nhập ký tự chữ: Tiếng việt, Tiếng anh, Full-size, Half-size
Nhập ký tự đặc biệt, space, kí tự Enter
Nhập câu lệnh SQL injection, HTML, XSS
5. Bảng quyết định
Bảng quyết định còn được gọi là bảng Nguyên nhân – Kết quả (Cause-Effect).
Kỹ thuật kiểm thử phần mềm này được sử dụng cho các chức năng cần sự kết hợp của các yếu tố đầu vào các biến.
Ví dụ: Nút Submit phải được enable nếu người dùng đã nhập tất cả các trường bắt buộc.
Đầu tiên là xác định đầu ra của các chức năng có phụ thuộc vào sự kết hợp của các đầu vào. Nếu có tập hợp kết hợp đầu vào lớn, thì hãy chia nó thành các tập hợp nhỏ hơn hữu ích cho việc quản lý bảng quyết định.
Đối với mọi chức năng, cần tạo một bảng và liệt kê tất cả các loại kết hợp đầu vào và đầu ra tương ứng. Điều này giúp xác định các điều kiện bị tester bỏ qua.
Các bước để tạo bảng quyết định:
Nhập đầu vào theo hàng
Nhập tất cả các quy tắc trong cột
Điền vào bảng với sự kết hợp của đầu vào
Trong hàng cuối cùng, ghi chú đầu ra so với kết hợp đầu vào.
Ví dụ: Nút Submit chỉ được enable khi tất cả các đầu vào được nhập bởi người dùng cuối.
6. Đoán lỗi
Đoán lỗi là một kỹ thuật kiểm thử phần mềm dựa trên việc đoán lỗi có thể chiếm ưu thế trong code. Đây là một kỹ thuật dựa trên kinh nghiệm, trong đó nhà phân tích kiểm thử sử dụng kinh nghiệm của mình để đoán phần có vấn đề hoặc có lỗi của ứng dụng kiểm thử.
Kỹ thuật xác định danh sách các lỗi có thể xảy ra hoặc các tình huống dễ xảy ra lỗi. Sau đó, người kiểm thử viết test cases để tìm kiếm những lỗi đó. Để thiết kế các test cases dựa trên kỹ thuật kiểm thử phần mềm này, nhà phân tích có thể sử dụng các kinh nghiệm trong quá khứ để xác định các điều kiện.
Cách đoán lỗi:
- Tester nên sử dụng kinh nghiệm trước đây để kiểm thử các ứng dụng tương tự
- Hiểu biết về hệ thống đang kiểm thử
- Kiến thức về các lỗi thực hiện điển hình
- Nhớ những chức năng phức tạp trước đây
- Đánh giá lịch sử dữ liệu và kết quả kiểm thử