Home Tester Các mức độ Test Level trong kiểm thử phần mềm

Các mức độ Test Level trong kiểm thử phần mềm

by Hoàng Tú

Kiểm thử phần mềm là một việc làm cần thiết để kiểm tra sản phẩm trước khi bàn giao cho khách hàng. Vậy các mức độ của việc kiểm thử (test levels) như thế nào để đạt được chất lượng kiểm thử tốt? Mời các bạn xem các test level trong kiểm thử phần mềm.

cac muc do kiem thu test levers

Unit Test – Kiểm thử đơn vị

Khái niệm: Kiểm thử đơn vị (Unit Test hay còn gọi Component test) là loại kiểm thử phần mềm trong đó các đơn vị/thành phần đơn lẻ của phần mềm sẽ được kiểm tra như: Hàm (Function), Lớp (Class), Phương thức (Method) và người thực hiện kiểm tra thường là các developer. Kiểm thử đơn vị được thực hiện trong quá trình phát triển ứng dụng. Lỗi ở level này thường được fix ngay sau khi chúng được tìm ra mà không cần lưu lại và quản lý như các test level khác.

Mục đích

    • Tách riêng từng phần để kiểm tra và chứng minh các thành phần đó thực hiện chính xác các yêu cầu chức năng trong đặc tả.
    • Lỗi được sửa sớm trong chu trình phát triển phần mềm vì vậy tiết kiệm thời gian và chi phí sửa lỗi.
    • Mã nguồn được tái sử dụng nhiều hơn.
    • Tăng sự tin tưởng trong việc thay đổi hoặc bảo trì.
    • Mã nguồn đáng tin cậy hơn.

Sử dụng phương pháp: Kiểm thử hộp trắng.

Người thực hiện: Thường là do developer thực hiện.

Trong kiểm thử đơn vị (Unit Test) có 2 khái niệm là StubDriver.

Stub

Khi cần kiểm tra phương thức A, nhưng phương thức A lại cần dữ liệu từ phương thức B, mà phương thức B lại chưa được viết. Trong trường hợp này ta có thể giả lập một phương thức B để có dữ kiện giúp chúng ta kiểm thử phương thức A, khi đó phương thức giả lập B sẽ gọi là Stub.

Ví dụ: Học các trường cao đăng hoặc đại học, khi cần kiểm thử chức năng đăng ký môn học nhưng phương thức kiểm tra điều kiện tiên quyết lại chưa được viết thì ta có thể giả lập phương thức kiểm tra điều kiện tiên quyết để có dữ liệu giúp kiểm thử chức năng đăng ký môn học, khi đó phương thức giả lập đó gọi là Stub.

Driver

Ngược lại với Stub, khi chúng ta cần kiểm thử Module B hoặc phương thức B nhưng cần phải qua Module A hoặc phương thức A mới kiểm thử được B, khi đó ta có thể giả lập Module hoặc phương thức A để ta có thể vào kiểm thử được B, lúc đó phương thức giả lập A gọi là Driver.

Ví dụ: Khi cần kiểm thử chức năng đăng ký môn học nhưng chức năng đăng ký tài khoản lại chưa được viết thì ta có thể giả lập một phương thức đăng ký tài khoản để có dữ liệu sinh viên giúp ta vào kiểm thử chức năng đăng ký môn học, khi đó phương thức giả lập đăng ký tài khoản gọi là Driver.

stub va driver trong test lever

Integration Test – Kiểm thử tích hợp

Khái niệm: Kiểm thử tích hợp là loại kiểm thử trong đó các module phần mềm hay từng chức năng riêng lẻ được tích hợp logic và được kiểm tra theo nhóm chung với nhau. Mỗi dự án phần mềm gồm nhiều module, được code bởi nhiều người khác nhau, vì vậy kiểm thử tích hợp tập chung vào việc kiểm tra truyền dữ liệu giữa các module.

Ví dụ: sau khi đã unit test chức năng đăng nhập và chức năng đăng ký thì ta có thể tiến hành kiểm thử tích hợp của 2 chức năng này để xem chúng có tương tác tốt với nhau không, sau khi đăng ký thành công thì ta có thể tiến hành đăng nhập bằng tài khoản đã đăng ký xem có thực hiện được không.

Mục đích: Phát hiện lỗi tương tác xảy ra giữa các Unit. Tập chung chủ yếu vào các giao diện và thông tin giữa các module. Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ.

Cách tiếp cận:

    • Big Bang: tất cả các thành phần được tích hợp cùng một lúc và sau đó được kiểm thử. Cách tiếp cận này được thực hiện khi nhóm kiểm thử nhận được toàn bộ phần mềm.big bang integration testing
    • Top Down: Kiểm tra diễn ra từ trên xuống theo luồng điều khiển của hệ thống. Các đơn vị cao nhất được kiểm tra trước và các cấp đơn vị thấp hơn được kiểm tra từng bước sau đó.top down integration testing
    • Bottom up: Ngược lại với Top Down, ở phương pháp tiếp cận này các đơn vị cấp thấp được kiểm tra trước và các cấp đơn vị cao hơn được kiểm tra sau đó.bottom up integration testing
    • Sandwich/Hybrid: (còn gọi Phương thức gia tăng chức năng) Là sự kết hợp của hai phương pháp Top DownBottom Up. Ở đây, các module hàng đầu được kiểm tra với các module thấp hơn đồng thời các module thấp hơn được tích hợp với các module hàng đầu và được kiểm thử.sandwich hybrid integration testing
    • Người thực hiện: Test level này thường là Tester thực hiện.
    • Ví dụ: Có 2 module Login, Tạo tài khoản cho người dùng.
      • Admin tạo tài khoản cho người dùng thành công, tài khoản có trạng thái là đang hoạt động. Người dùng sử dụng tài khoản vừa tạo đăng nhập thành công vào hệ thống.
      • Nếu Admin chuyển tài khoản này thành trạng thái ngừng hoạt động. Người dùng sử dụng tài khoản này đăng nhập, hệ thống sẽ báo không thành công.

System Test – Kiểm thử hệ thống

Khái niệm: Kiểm thử hệ thống là kiểm thử toàn bộ chức năng và giao diện của hệ thống.

Mục đích: Đánh giá hệ thống có đáp ứng theo đúng yêu cầu nghiệp vụ, yêu cầu về chức năng theo bản đặc tả yêu cầu phần mềm (SRS) đưa ra hay không.

Kiểm thử hệ thống thuộc phạm vi Kiểm thử hộp đen (tức là Tester chỉ quan tâm đầu vào và kết quả mong đợi ở đầu ra mà không cần kiểm tra code bên trong được viết như thế nào).

Phân loại:
Dưới đây là một số loại kiểm thử thường được thực hiện trong System Test:

    • Kiểm thử chức năng (Functional Test): Là kiểm thử toàn bộ hệ thống, đảm bảo hệ thống hoạt động đúng theo yêu cầu được đưa ra trước đó.
    • Kiểm thử hiệu năng (Performance Test): Là kiểm tra sự tuân thủ của hệ thống với các yêu cầu được chỉ định về hiệu năng. Xác định những thuộc tính chất lượng của hệ thống như khả năng mở rộng, độ tin cậy…
    • Kiểm thử cơ sở dữ liệu ( Database Test): Là kiểm tra dữ liệu hiển thị trên hệ thống có giống với dữ liệu trong cơ sở dữ liệu hay không?
    • Kiểm thử khả năng bảo mật ( Security Test): Là kiểm tra hệ thống được bảo vệ an toàn, không bị đánh cắp dữ liệu, thông tin trước các tấn công từ bên ngoài.
    • Kiểm thử tính khả dụng (Usability Test): Kiểm tra tính thân thiện với người dùng và tính dễ sử dụng của hệ thống.
    • Kiểm tra tính tương thích ( Compatibility Test) : Là kiểm tra xem hệ thống có tương thích với các yếu tố khác của hệ thống mà nó sẽ hoạt động hay không? (Ví dụ: Trình duyệt, hệ điều hành, phần cứng).
    • Kiểm tra khả năng phục hồi ( Recovery Test): Là kiểm tra hệ thống có khả năng khôi phục trạng thái ổn định khi gặp các sự cố bất thường không.

Sử dụng phương pháp: Kiểm thử hộp đen là phổ biến.

Người thực hiện: Test level này thường là Tester thực hiện.

system test kiem thu he thong

Khi kiểm thử hệ thống, môi trường để kiểm thử phải được thiết lập càng giống như môi trường thực tế càng tốt để tối thiểu hóa những rủi ro ngoài ý muốn.

Acceptance Test – Kiểm thử chấp nhận

Khái niệm: Kiểm thử chấp nhận (Acceptance Test) là kiểm tra xem phần mềm đã thỏa mãn tất cả yêu cầu của khách hàng chưa? Và khách hàng có chấp nhận sản phẩm hay không?

Mục đích: Để nghiệm thu hệ thống trước khi hệ thống được đưa vào hoạt động.

Kiểm thử chấp nhận thường là trách nhiệm của người dùng hoặc khách hàng. Trong kiểm thử hệ thống, khách hàng sẽ kiểm tra xem phần mềm được viết có hoạt động đúng như mong đợi của mình không, có đảm bảo tính tiện dụng, hiệu suất hoạt động có như mong đợi không, có bảo mật tốt hay không,….

Tìm lỗi không phải là trọng tâm chính trong kiểm thử chấp nhận, vì việc tìm lỗi đã được đội Developer và Tester thực hiện trong các giai đoạn kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống rồi.

Phân loại
Trong kiểm thử chấp nhận lại chia ra làm 2 loại:

    • Alpha test: Được thực hiện bởi các thành viên của tổ chức phát triển phần mềm nhưng không liên quan trực tiếp đến dự án (Thường là các thành viên của quản lý sản phẩm). Alpha test thực hiện test tại nơi sản xuất phần mềm, là một hình thức kiểm thử nội bộ, trước khi phần mềm được tiến hành kiểm thử Beta.
    • Beta test: Được thực hiện bởi người dùng cuối cùng (thường là khách hàng). Beta test thực hiện tại địa điểm của khách hàng, người dùng test hay sử dụng hệ thống trong môi trường riêng của họ – không phải nơi phát triển phần mềm.

Sử dụng phương pháp: Kiểm thử hộp đen.

Người thực hiện: Test level này thường là khách hàng hoặc bên thứ ba.

Xem thêm

via viblo guru99

Related Posts

Leave a Comment