Trang chủ » Tổng hợp các kỹ thuật kiểm thử phần mềm mới nhất

Tổng hợp các kỹ thuật kiểm thử phần mềm mới nhất

Hoa Nhài

Để quá trình kiểm thử đạt được hiệu quả các kiểm thử viên không chỉ có các kiến thức chuyên ngành mà cần phải nắm vững các kỹ thuật kiểm thử của từng dự án. Có như vậy thì bạn mới hoàn thành tốt việc bắt Bug và đảm bảo chất lượng tốt nhất cho các dự án phần mềm. Những kỹ thuật kiểm thử phần mềm nào bạn mà bạn cần phải biết? Hãy cùng trung tâm đào tạo Tester khám phá trong bài viết dưới đây nhé!

cac ky thuat kiem thu

Tổng hợp các kỹ thuật kiểm thử phần mềm

Kỹ thuật kiểm thử phần mềm động – Dynamic Testing technique

Đây là phương pháp kiểm thử phần mềm thông qua việc dùng máy chạy chương trình để điều tra trạng thái tác động của chương trình đó. Kiểm thử này dựa trên các ca kiểm thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chương trình.

Kiểm thử động tiến hành kiếm tra cách thức hoạt động của mã lệnh hay kiểm tra sự phản ứng vật lý từ hệ thống tới các biến thay đổi theo thời gian. Ở Dynamic Testing thì phần mềm sẽ được biên dịch và chạy: làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra đầu ra có đúng như mong muốn.

cac ky thuat kiem thu

Những phương pháp kiểm thử động gồm: Unit Test (kiểm thử đơn vị), Intergration Tests (Kiểm thử tích hợp), System Tests (Kiểm thử hệ thống). Ở Dynamic Testing có 3 loại kỹ thuật kiểm tra gồm:

  • Các kỹ thuật kiểm tra dựa trên cấu trúc (Structure-based (White box)) hay còn gọi là các kỹ thuật kiểm thử hộp trắng. Nó bao gồm: Statement testing, Decision testing, Condition testing.
  • Specification-based (Black box) – Các kỹ thuật kiểm tra dựa trên đặc tả hay các kỹ thuật kiểm thử hộp đen. Bao gồm: Equivalent partition (Phân vùng tương đương), Marginal Value Analysis (Phân tích giá trị biên), Decision table (Bảng quyết định), Status table (Bảng trạng thái), Use case testing.
  • Experience based (Các kỹ thuật kiểm tra dựa trên kinh nghiệm) gồm: Error Suggestion (gợi ý lỗi) và Test thăm dò.

cac ky thuat kiem thu

Kỹ thuật kiểm thử phần mềm tĩnh – Static testing technique

  • Phương pháp kiểm thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc tả thủ công bằng tay. Thông qua việc sử dụng giấy, bút để kiểm tra sự logic, lần lượt từng chi tiết mà không cần chạy chương trình. Loại kiểm thử này được áp dụng bởi chuyên viên thiết kế người viết ra code hoặc review code.
  • Static testing có thể được tiến hành bằng tay hoặc thông qua việc sử dụng các công cụ kiểm thử khác nhau (tự động hóa). Nó được thực hiện kiểm tra toàn bộ gồm các chương trình được phân tích bởi một trình thông dịch hoặc biên dịch mà xác nhận tính hợp lệ về cú pháp chương trình.
  • Các loại kỹ thuật có trong kiểm thử tĩnh bao gồm: Reviewing (gồm: Inspection, Infomal reviews, Formal reviews, Walkthroughs) và Static Analysis. Trong đó Inspection có mục đích là tìm ra các khiếm khuyết được thực hiện bởi người kiểm duyệt. Còn Walkthroughs thì Leader sẽ mở ra một cuộc họp để giải thích sản phẩm và những người tham gia có thể đặt những câu hỏi nếu chưa hiểu và ghi chú lại. Informal reviews là Static testing mà tài liệu được xem xét, nhận xét và đưa ra ý kiến không chính thức.

cac ky thuat kiem thu

7 Nguyên tắc quan trọng trong kiểm thử phần mềm

Khi tiến hành kiểm thử và đạt được kết quả tối ưu, không bị lệch khỏi mục tiêu là điều cực kỳ quan trọng. Vậy làm thế nào để bạn có thể xác định được mình đang theo đúng chiến lược kiểm thử? Để làm được điều đó thì bạn cần tuân thủ các nguyên tắc về kiểm thử cơ bản sau.

cac ky thuat kiem thu

Kiểm thử đưa ra lỗi

Thông qua việc kiểm thử sẽ giúp giảm lượng bugs khi áp dụng nhiều phương pháp kiểm thử lên phần. Khi đưa vào môi trường thật thì người dùng cuối hoàn toàn có thể thấy nhiều lỗi khác mà không tìm thấy trong quá trình kiểm thử. Tuy kiểm thử chứng minh được phần mềm có lỗi nhưng không thể chứng minh rằng phần mềm không còn lỗi. Như vậy thì sẽ luôn có lỗi không được phát hiện trong phần ngay cả khi không tìm thấy lỗi. Do đó chúng tôi cần phải tìm được càng nhiều lỗi càng tốt.

Kiểm thử toàn bộ là không khả thi

Thực sự rất khó để kiểm tra toàn bộ các module cũng như các tính năng cùng sự kết hợp với đầu ra và đầu vào trong suốt quá trình kiểm tra. Các phần mềm hiện nay rất đá dạng và phức tạp được phát triển trên nhiều nền tảng. Đồng thời ngày càng có nhiều công nghệ mới, khả năng kết nối dữ liệu lớn,… khiến việc kiểm thử toàn bộ là không khả thi. Thay vì cố gắng kiểm thử tòn bộ thò bạn sẽ xác định mức độ quan trọng và ưu tiến của các module để kiểm thử nhưng phần cần thiết hoặc có nguy cơ lỗi cao hơn.

Kiểm thử càng sớm càng tốt

Điều này có nghĩa là việc kiểm thử cần phải được thực hiện càng sớm càng tốt trong vòng đời phát triển của phần mềm. Nguyên tắc này cho thấy cần phải phát hiện bug ngay từ giai đoạn đầu tiên: nghiên cứu yêu cầu (requirement) hay design trong hoạt động kiểm thử phần mềm. Nó cho phép chuyển giao phần mềm theo yêu cầu đúng thời gian với chất lượng dự kiến.

Lỗi thường được phân bố tập trung

  • Nguyên lý này chỉ ra rằng chỉ một số ít Module chứa phần lớn số lỗi phát hiện được. Các module này bao gồm: những thành phần, chức năng chính của hệ thống. Nó cũng đúng với nguyên lý Pareto: 80 – 20: 80% số lỗi tìm thấy ở chỉ 20% module.
  • Dựa trên kinh nghiệm thì các QA/Tester có thể xác định được các module có tính rủi ro và nhiều lỗi để tập trung tìm kiếm lỗi nhanh và hiệu quả hơn. Tuy nhiên cách tiếp cận này cũng ẩn chứa một số vấn đề. Nếu thực hiện kiểm thử lặp đi lặp lại thì sẽ dễ thấy những test case khó tìm được bug mới.

Nghịch lý thuốc trừ sâu

  • Nếu bạn lặp đi lặp lại một test case thì xác suất để tìm ra được lỗi mới là rất thấp. Nguyên nhân là hệ thống đã hoàn thiện hơn và lỗi tìm thấy đã được sửa theo theo test case cũ. Điều này dẫn đến hiệu quả của các test case bị giảm xuống sau một số lần thực hiện.
  • Bạn muốn khắc phục hiệu ứng “thuốc trừ sâu” này thì test case cần phải được thường xuyên xem lại và chỉnh sửa. Đồng thời bổ sung thêm nhiều test case mới để tìm lỗi mới (regression test). Ngoài ra, QA/ Tester cũng không nên phụ thuộc quá nhiều vào các kỹ thuật test sẵn có mà cần phải liên tục cải tiến các phương pháp để kiểm thử hiệu quả hơn.

Kiểm thử phụ thuộc vào ngữ cảnh

Dựa theo nguyên tắc này thì việc kiểm thử phụ thuộc vào ngữ cảnh và chúng ta cần phải tiếp cận theo các ngữ cảnh khác nhau. Nói cách khác thì việc kiểm thử trang thương mại điện tử sẽ khác với cách test một ứng dụng đọc tin tức. Tất cả các phần mềm đều được phát triển theo cách khác nhau. Bạn cần sử dụng cách tiếp cận khác nhau, phương thức và kỹ thuật test khác nhau. Loại test phụ thuộc vào loại phần mềm/ứng dụng và Website.

Quan niệm sai lầm về việc không có lỗi

  • Một phần mềm sạch bug 99% thì vẫn có thể không được sử dụng để tung ra thị trường. Bởi đây là trường hợp phần mềm được kiểm thử bằng requirement sai. Việc kiểm thử không chỉ để tìm ra lỗi và còn để kiểm tra xem phần mềm có đpá ứng được nhu cầu hay không. Do đó việc không còn lỗi hay hết lỗi là quan điểm sai lầm.
  • Các nguyên tắc kiểm thử giúp tạo ra một chiến lược kiểm thử rõ ràng. Tạo ra những Test case sát sao và dễ phát hiện được bug. Những Tester dày dặn kinh nghiệm sẽ áp dụng những nguyên tắc kiểm thử nhuần nhuyễn đến độ họ không nghĩ rằng mình đang áp dụng chúng.

Kinh nghiệm lựa chọn kỹ thuật kiểm thử phần mềm

Trong mỗi trường hợp cụ thể thì từng kỹ thuật có thể phát huy được hiệu quả nhất định. Mỗi kỹ thuật có thể tốt cho việc tìm thấy những lỗi này nhưng lại không thể tìm được những lỗi khác. Do đó để tìm được nhiều lỗi nhất có thể thì cần kết hợp nhiều kỹ thuật cho từng yêu cầu cụ thể. Điều này được quyết định dựa trên một số yêu tố gồm bên trong lẫn bên ngoài.

cac ky thuat kiem thu

Các tiêu chí nội tại

  • Mô hình của phần mềm: Các kỹ thuật kiếm tra được dựa trên các mô hình được sửu dụng để phát triển hệ thống đó. Nên nếu nắm bắt được các mô hình này thì sẽ dựa đoán được những kỹ thuật kiểm tra nào có thể sử dụng.
  • Kinh nghiệm và sự hiểu biết của Tester: Kiểm thử viên có nhiều kinh nghiệm và sự am hiểu sâu sắc về các loại kỹ thuật kiểm thử thì có khả năng vận dụng càng cao. Từ đó họ có thể đưa ra các kỹ thuật test phù hợp nhất. Những tester mới thì thường hay sử dụng nhất các kỹ thuật test thuộc nhóm các kỹ thuật kiểm tra dựa trên đặc tả (Specification-based (Black box)).
  • Các loại lỗi tương tự: Việc am hiểu về các loại lỗi tương tự sẽ hữu ích trong việc lựa chọn các kỹ thuật kiểm tra. Mỗi kỹ thuật sẽ có khả năng tìm được khiếm khuyết nhất định. Kiến thức có thể được tích lũy qua kinh nghiệm kiểm tra phiên bản trước của hệ thống và mức thử nghiệm trước ở phiên bản hiện tại.
  • Mục tiêu thử nghiệm: Nếu mục tiêu thử nghiệm chỉ là đạt được sự đảm bảo rằng phần mềm sẽ xử lý tốt các hoạt động điển hình. Việc sử dụng các kỹ thuật dựa trên đặc tả sẽ là cách tiếp cận hợp lý. Khi ở mục tiêu kiểm tra kỹ lưỡng thì nên chọn các kỹ thuật chặt chẽ và chi tiết gồm các kỹ thuật dựa trên cấu trúc.
  • Tài liệu: Việc có hay không tài liệu và độ chính xác của nó sẽ không làm ảnh hưởng đến sự lựa chọn của kỹ thuật kiểm tra. Thay đó là nội dung và phong cách của tài liệu sẽ tác động đến quyết định lựa chọn kỹ thuật Test.
  • Mô hình chu trình phát triển của phần mềm: Một mô hình chu trình phát triển phần mềm tuần tự sẽ cho phép sử dụng các kỹ thuật chính thức hơn. Trong khi mô hình vòng đời lặp thì sử dụng phương pháp thử nghiệm thăm dò sẽ thích hợp hơn.

Các yếu tố bên ngoài

  • Đánh giá rủi ro: Khi rủi ro càng lớn thì nhu cầu thử nghiệm càng kỹ và chính thức hơn. Các rủi ro về thương mại có thể bị gây ra bởi: vấn đề chất lượng hoặc các vấn đề theo thời gian của thị trường.
  • Yêu cầu của khách hàng và hợp đồng: Đôi khi ngay trong hợp đồng đã chỉ định cụ thể các kỹ thuật thử nghiệm cần sử dụng gồm commonly statement hoặc branch coverage. Trong trường hợp này thì việc của người kiểm thử là tuân theo những gì khách hàng chỉ định mà thôi.
  • Loại hệ thống được sử dụng: Yếu tố này cũng sẽ ảnh hưởng đến việc lựa chọn các kỹ thuật kiểm thử. Cụ thể là ứng dụng tài chính liên quan đến nhiều tính toán thì sử dụng kỹ thuật phân tích giá trị biên.
  • Các yêu cầu về quy định: Một số ngành công nghiệp có các tiêu chuẩn chung hoặc những hướng dẫn quy định về các kỹ thuật kiểm tra được sử dụng.
  • Thời gian và ngân sách của dự án: Yếu tố này ảnh hưởng mạnh mẽ đến việc lựa chọn kỹ thuật kiểm thử. Bởi khi có nhiều thời gian thì chúng ta có thể lựa chọn nhiều kỹ thuật hơn. Khi thời gian bị giới hạn thì cần phải giới hạn ở những kỹ thuật mà dựa trên kinh nghiệm để tìm ra những khuyết điểm quan trọng.

Với những nội dung đã chia sẻ ở trên về các kỹ thuật kiểm thử thì bạn đọc đã có thêm nhiều hiểu biết bổ ích. Đặc biệt là các kiểm thử viên sẽ có thêm hành trang vững chắc khi bước vào nghề kiểm thử. Nếu có vấn đề gì cần thắc mắc thì hãy để lại bình luận phía dưới, chúng tôi sẽ giải đáp chi tiết cho bạn.

5/5 - (1 bình chọn)
Từ khóa:
Bình luận
Đăng ký nhận ưu đãi hấp dẫn
Đăng ký nhận ưu đãi hấp dẫn

    Icon Phone Icon Zalo