LÀM THẾ NÀO ĐỂ LỰA CHỌN KỸ THUẬT KIỂM THỬ TỐT NHẤT?
Nhắc tới kỹ thuật kiểm tra phần mềm chính là đề cập đến phương pháp hoặc cách thức để kiểm tra một phần mềm hoặc một phần của phần mềm. Mỗi kỹ thuật kiểm tra đều có những lợi ích riêng. Các kỹ thuật khác nhau nhắm tới các loại khiếm khuyết khác nhau. Vì vậy, sẽ không đúng khi gọi một kỹ thuật tốt ...
Nhắc tới kỹ thuật kiểm tra phần mềm chính là đề cập đến phương pháp hoặc cách thức để kiểm tra một phần mềm hoặc một phần của phần mềm. Mỗi kỹ thuật kiểm tra đều có những lợi ích riêng. Các kỹ thuật khác nhau nhắm tới các loại khiếm khuyết khác nhau. Vì vậy, sẽ không đúng khi gọi một kỹ thuật tốt nhất. Dựa vào phần mềm và yêu cầu của nó, một kỹ thuật kiểm tra có thể phù hợp hơn so với phần mềm khác. Và đôi khi, sự kết hợp của các kỹ thuật kiểm tra khác nhau có thể là một cách tốt nhất để kiểm tra một phần mềm.
A. Các yếu tố để xác định kỹ thuật kiểm tra nào nên được sử dụng
1. Giới hạn về thời gian (Time constraint) Nó giúp loại bỏ và / hoặc lựa chọn các loại kiểm thử, tùy thuộc vào thời gian được phân bổ để thử nghiệm. Ví dụ, một phần mềm với một thời gian ngắn để thử nghiệm có nhiều khả năng bỏ qua Thử nghiệm Độ bền.
2. Ngân sách (Budget)
Ngân sách có thể đặt một hạn chế về các khía cạnh khác nhau của thử nghiệm cho các tài nguyên cũ. các trường hợp thử nghiệm vv, có thể ảnh hưởng đến việc lựa chọn kỹ thuật kiểm tra.
3. Thông số kỹ thuật được cung cấp bởi khách hàng (Specifications provided by Client) Đôi khi khách hàng có thể cung cấp hướng dẫn rõ ràng về những gì cần phải được thực hiện kiểm tra . Họ cũng có thể can thiệp để loại bỏ các loại thử nghiệm được xác định trong quá trình lập kế hoạch.
4. Rủi ro liên quan (Risks involved) Trên cơ sở đánh giá rủi ro của phần mềm, có thể lựa chọn kỹ thuật kiểm tra. Ví dụ, Các phần về lĩnh vực Y tế và Tài chính. Đối với những phần mềm loại này, nguy cơ cao và yêu cầu kiểm tra hệ thống, đồng bộ, tốc độ, việc truy suất dữ liệu chung… Do đó, cần phải kiểm tra thật kỹ lưỡng phần mềm của họ. Cách tiếp cận kiểm tra phải dựa trên rủi ro và cần phải kiểm tra hiệu năng.
5. Các yêu cầu hệ thống (System Requirement Specifications) Dựa trên các tài liệu và yêu cầu do các doanh nghiệp soạn thảo, các kỹ thuật kiểm tra như thử nghiệm hệ thống, thử nghiệm đột xuất ... được quyết định. Ví dụ: nếu không có yêu cầu cụ thể được cung cấp thì người thử nghiệm có thể đi thử nghiệm Ad-hoc.
6. Khiếm khuyết phần mềm (Defects) Nó dựa trên các khiếm khuyết tìm thấy trong một phát hành trước đó của phần mềm. Kiểm tra hồi quy (Regression testing) có thể được tham gia vào bộ thử nghiệm để phát hành tiếp theo để kiểm tra lại các vùng bị ảnh hưởng.
7. Vòng đời phát triển phần mềm (Software Development Lifecycle) Vòng đời phát triển phần mềm theo sau cho phần mềm cũng hoạt động như một yếu tố quyết định cho kỹ thuật kiểm tra. Đối với ví dụ, Exploratory Testing ( thử nghiệm khám phá ) có nhiều khả năng được sử dụng trong một phương pháp thử nghiệm lặp đi lặp lại hơn là phương pháp Thác nước.
8. Mục đích của phần mềm (Purpose of the software) Nó có thể bao gồm người dùng cuối. Ví dụ, một phần mềm dành cho người khuyết tật hoặc khuyết tật phải được kiểm tra khả năng tiếp cận.
B. Một số kỹ thuật kiểm tra, lợi ích của chúng và những lợi ích của kỹ thuật đó
1. Thử nghiệm tĩnh (Static Testing)
Kỹ thuật kiểm tra này được bao gồm trong tất cả các kiểm thử phần mềm. Nó giúp phát hiện khuyết tật trước khi bắt đầu thử nghiệm chính thức. Nó bao gồm việc kiểm tra hoặc xem lại tài liệu hoặc mã trong các giai đoạn phát triền phần mềm mà không thực hiện bất kỳ thực hiện thực tế. Kỹ thuật này giúp phát triển phần mềm theo các cách sau:
- Xem xét các yêu cầu hoặc thiết kế để tìm ra bất kỳ yêu cầu thiếu hoặc tối nghĩa và thiết kế không khả thi. - Một phân tích tĩnh của mã code có thể giúp trong việc tìm kiếm các khuyết tật cấu trúc mà không thực hiện bất kỳ thực hiện trên thực tế.
Như chúng ta đã biết, khuyết điểm sớm hơn được xác định trong vòng đợi phát triển phần mềm, thì nó sẽ rẻ hơn để khắc phục nó. Kỹ thuật này yêu cầu chuyên môn trong công việc. Ngoài ra, những nỗ lực được tăng lên trong suốt quá trình thử nghiệm nhờ sự tham gia của các bên trong các giai đoạn khác nhau.
2. Kiểm tra dựa trên kỹ thuật (Specification based testing technique)
Kỹ thuật này là cách tốt nhất để đảm bảo rằng tất cả các yêu cầu đã được đảm bảo và dự kiến sẽ phù hợp với thực tế. Nó dựa trên đặc điểm kỹ thuật hoặc yêu cầu của phần mềm như được soạn thảo trong các tài liệu. Nó còn được gọi là Kiểm thử hộp đen. Dựa trên logic được sử dụng trong quá trình phát triển, một trong những kỹ thuật hộp đen sau đây có thể được lựa chọn:
a. Thử nghiệm phân vùng tương đương (Equivalence partitioning testing) Được sử dụng khi các điều kiện kiểm tra có thể được chia thành các bộ khác nhau. Ví dụ: Để thử nghiệm trang web thương mại điện tử cung cấp giảm giá khi mua hàng như giảm giá 5% từ 1000 trở lên, 10% từ 1500 trở lên và 20% từ 2500 trở lên Ta phân chia tương đương có thể được sử dụng để chia thử nghiệm trong phạm vi như sau
Vùng | Giá trị trong vùng |
---|---|
Không giảm giá | 0-999 |
Giảm giá 5% | 1000-1499 |
Giảm giá 10% | 1500-2499 |
Giảm giá 20% | >=2500 |
b. Kiểm tra giá trị biên (Boundary Value testing) Việc kiểm tra có thể được tối ưu hóa bằng cách tính các giá trị ranh giới từ mỗi phân vùng để có độ bao phủ nhiều hơn. Từ ví dụ trên thì giá trị biên sẽ được set:
Giá trị trong vùng | Giá trị biên |
---|---|
0-999 | 0; 1; 998; 999 |
1000-1499 | 1000; 1001; 1498; 1499 |
1500-2499 | 1500; 1501; 2498; 2499 |
>=2500 | 2500; 2501.. |
3. Bảng quyết định (Decision Table)
Bảng quyết định chủ yếu được sử dụng để kiểm tra các ứng dụng tài chính. Ví dụ tốt nhất là xin vay vốn, tùy thuộc vào sự kết hợp của câu trả lời cho những câu hỏi khác nhau như loại tài khoản trong cùng một ngân hàng, nếu anh ta vay một khoản vay khác ... thì số tiền vay tối đa được tính.
Sơ đồ chuyển trạng thái (State Transition Diagram): Thường dùng để kiểm tra một trang web để gửi biểu mẫu trực tuyến. Các kết quả đầu ra khác nhau sẽ xuất hiện khi nhấp vào nút Tiếp theo tùy thuộc vào các chi tiết được điền.
Ví dụ: nếu tất cả các chi tiết được điền chính xác thì trang tiếp theo sẽ hiển thị, thông báo lỗi sẽ hiển thị trong trường hợp có thông tin không chính xác hoặc không điền thông tin bắt buộc.
4. Kỹ thuật kiểm tra dựa trên rủi ro (Risk based Testing Technique)
Kỹ thuật kiểm tra này rất quan trọng đối với các lĩnh vực tài chính và y tế. Nó được sử dụng để kiểm tra điểm phá vỡ của hệ thống và phản ứng của nó trong những điều kiện đó. Nếu một hệ thống trong Tổ chức Nghiên cứu lâm sàng gặp sự cố và dữ liệu bị mất thì nhiều lần thử nghiệm và nhiều năm làm việc có thể bị lãng phí. Kiểm tra hiệu suất luôn đi kèm theo kỹ thuật này.
a. Kỹ thuật kiểm tra dựa trên cấu trúc (Structure Based Testing Technique) Nó còn được gọi là thử nghiệm hộp trắng (White Box Testing). Nó đòi hỏi kiến thức về mã và thường được thực hiện bởi các nhà phát triển. Nó giúp cải thiện chất lượng mã như là mã chết và dư thừa có thể được phát hiện bằng cách sử dụng kỹ thuật này. Nó cũng giúp xác định khuyết tật trong giai đoạn đầu có thể được sửa ngay. Kiểm tra đơn vị (Unit testing) thuộc loại Kiểu Kỹ thuật Cấu trúc.
b. Kỹ thuật kiểm tra dựa trên khiếm khuyết (Defects based Testing Technique) Kỹ thuật này tập trung vào khu vực có khiếm khuyết lớn nhất. Các trường hợp thử nghiệm được viết dựa trên các khuyết tật tìm thấy trong quá khứ. Thử nghiệm hồi quy (Regression testing) thuộc loại này. Nó không thể được sử dụng làm kỹ thuật kiểm tra duy nhất nhưng nó được sử dụng để cung cấp phạm vi bảo đảm nhiều hơn để kiểm tra tổng thể.
c. Kỹ thuật kiểm tra dựa trên kinh nghiệm (Experience based testing technique) Kỹ thuật dựa trên kinh nghiệm, kiến thức và kỹ năng của một người trong lĩnh vực kiểm tra. Thử nghiệm được thực hiện trên cơ sở ý tưởng rằng những gì có thể sai hoặc khuyết điểm có thể xảy ra. Các phương pháp thử nghiệm như Ad-hoc Testing và Monkey Testing kiểm tra theo kỹ thuật này. Kỹ thuật kiểm tra này thường được sử dụng cho hệ thống rủi ro thấp hoặc khi các yêu cầu không rõ ràng hoặc không đủ. Nó cũng được sử dụng khi có một thời gian hạn chế và không đủ thời gian để thử nghiệm.
Kết luận: Từ những phần luận ở trên, chúng ta có thể kết luận rằng mỗi kỹ thuật thử nghiệm đều có ưu và nhược điểm riêng. Không có kỹ thuật nào tốt hơn các kỹ thuật khác. Nó phụ thuộc vào các yếu tố như thời gian, ngân sách, khách hàng, loại phần mềm vv và nên được lựa chọn theo tính phù hợp của nó với phần mềm và yêu cầu của nó.