Quality Assurance QA trong Software là gì

3417

QA là gì? Quality Assurance (viết tắt là QA) là quá trình đảm bảo kiểm tra (development process) sản phẩm để đưa ra quy trình hoạt động phù hợp như mong muốn. Các phương pháp thực tế được sử dụng trong quá trình QA rất đa dạng tùy vào quy mô cũng như tính chất của sản phẩm.

Xem thêm định nghĩa QA QC là gì?

Với mỗi project cá nhân thì chỉ cần nhờ người khác góp ý và phản hồi. Ngược lại với App Banking thì cần phải kiểm tra mọi khía cạnh của từng tính năng để không những hoạt động tố mà còn phải đảm bảo tính an toàn và bảo mật.

Dù quy trình QA có chi tiết hay formal như thế nào thì chung quy lại mục đích của nó là để xác định và giải quyết bugs kịp thời trước khi release product.

Xem thêm công việc của nhân viên QA là gì tại đây

Phương pháp QA là gì

Agile

Phương pháp agile trong development có thể hiểu nôm na là với mỗi chu kỳ của (‘sprint’) tạo ra một software có thể add vào tổng thể và cải thiện nhiều lần theo vòng lặp, đây là quá trình tương tác và tích hợp miễn sao có thể đưa sản phẩm đến tay người dùng càng nhanh càng tốt. Vì thế, testing các thành phần trong software tại mỗi stage của quá trình production sẽ làm giảm rủi ro gặp bug khi release sản phẩm.

Xem thêm việc làm Front-end Developer hấp dẫn nhất tại TopDev

Thuật ngữ QA software là gì

Automation Testing

Automation Testing – kiểm thử tự động là kiểm thử được thực hiện với các script được viết sẵn theo quy trình đã được định sẵn.

Black Box

Hay còn gọi là Testing hộp đen, là phương pháp được thực hiện không cần biết cấu tạo bên trong của software. Khi test thì các tester sẽ trải nghiệm quan điểm của end-user (người dùng cuối) lên sản phẩm.

Defect

Bất kỳ sai lệch nào so với thông số của application (khiếm khuyết trong thành phần hay hệ thống mà từ đó chức năng không thực hiện đúng như mong đợi) hay còn được gọi là “bug”.

Exploratory Testing

Một cách test khá thú vị khi không được “hẹn trước”, không sử dụng bộ testcase hay một kế hoạch nào cả, mà chỉ dựa trên sự sáng tạo của tester, để tìm ra bugs và xác định regression.

Integration Testing

Test các modules/component độc lập cùng nhau để chắc rằng chúng có kết nối và tương tác với nhau.

Xem thêm Tại sao lại nên dùng integration tests với React, Redux và Router

Negative Path Testing

Kịch bản testing thử nghiệm được viết ra nhằm hình dung ra được trạng thái lỗi của một tính năng/application, từ đó xác định được những lỗi sẽ cần được xử lý.. Ví dụ về cách test này các bạn có thể thử nhập định dạng số vào field email (trong user account registration) và kiểm tra đảm bảo rằng user sẽ không tiến hành đăng ký được cho đến khi cung cấp địa chỉ email đúng định dạng.

Tham khảo các việc làm IT hot nhất tại Sendo Vietnam

Regression Testing

Kiểm thử hồi quy là cách test xem là các chức năng mới khi được add vào sẽ không “phá” các thành phần khác trước đó của application.

Smoke Tests

Quy trình testing tối giản, đảm bảo các chức năng cơ bản hoạt động chính xác trước khi diễn ra các giai đoạn testing sâu hơn.Thường diễn ra ở giai đoạn đầu của quá trình testing.

Test Case

Test case bao gồm những yếu tố như preconditions (điều kiện), steps (bước) và expected results (kết quả mong đợi) được QA tester dựa vào để test tính năng của các task có thực hiện đúng như mong đợi không.

White Box

Trái với Black box thì white box (hay còn gọi là Glass Box, Clear Box hay Transparent Box) là phương pháp testing mà trong đó các thành phần bên trong phần mềm đều có thế “thấy” được. Bước testing này sẽ được thực hiện với level structural trong codebase.

Các thành phần chính:

  • Unit test: unit (đơn vị) hay component (thành phần) riêng lẻ của software được test xem có làm đúng chức năng không.
  • Integration test: các unit và component tương tác với nhau đúng cách
  • Regression test: áp dụng lại các test ở những giai đoạn sau của quá trình development, chắc chắc chúng còn hoạt động

Có ba kỹ thuật chính

  • Equivalence partitioning (phân vùng tương đương): phân vùng tập điều kiện thành nhiều vùng. mỗi vùng có thuộc tính tương đương nhau. Khi test chỉ cần làm trên giá trị đại diện.
  • Boundary Value Analysis (phân tích giá trị biên): là phương pháp testing tập trung vào điểm cuối hoặc ranh giới giữa các phân vùng của giá trị input.
  • Cause-Effect Graphing (đồ thị nhân quả): là kỹ thuật testing black box dựa trên, minh họa mối quan hệ giữa input-output.

Tham khảo thêm tại freeCodeCamp

Có thể bạn quan tâm:

Xem thêm việc làm Software Developer hấp dẫn nhất tại TopDev