Hình ảnh minh hoạ cho “Types of software testing”

 

Sơ đồ này mô tả các loại kiểm thử phần mềm (Types of Software Testing) với các phân loại chính và chi tiết như sau:

Phân loại chính

  1. Manual Testing (Kiểm thử thủ công)
  2. Automation Testing (Kiểm thử tự động)

1. Manual Testing

Manual Testing được chia thành ba loại kiểm thử:

  • White Box Testing (Kiểm thử hộp trắng): Kiểm thử với kiến thức về source code và cấu trúc bên trong của hệ thống.
  • Black Box Testing (Kiểm thử hộp đen): Kiểm thử mà không cần biết đến source code hoặc cấu trúc bên trong của hệ thống.
  • Grey Box Testing (Kiểm thử hộp xám): Kết hợp giữa kiểm thử hộp trắng và hộp đen, có một chút hiểu biết về cấu trúc bên trong.

Phân loại kiểm thử hộp đen và hộp xám

  1. Functional Testing (Kiểm thử chức năng): Tập trung vào việc kiểm tra các chức năng cụ thể của phần mềm.
    • Unit Testing (Kiểm thử đơn vị): Kiểm thử các thành phần nhỏ nhất của phần mềm.
    • Integration Testing (Kiểm thử tích hợp): Kiểm thử sự tương tác giữa các thành phần khác nhau.
      • Incremental Testing (Kiểm thử gia tăng):
        • Top-down (Từ trên xuống dưới)
        • Bottom-up (Từ dưới lên trên)
      • Non-Incremental Testing (Kiểm thử không gia tăng)
    • System Testing (Kiểm thử hệ thống): Kiểm thử toàn bộ hệ thống như một thể thống nhất.
  2. Non-Functional Testing (Kiểm thử phi chức năng): Tập trung vào các khía cạnh không liên quan đến chức năng của phần mềm như hiệu suất, khả năng sử dụng và tương thích.
    • Performance Testing (Kiểm thử hiệu suất): Kiểm thử để đo lường hiệu suất của hệ thống.
      • Load Testing (Kiểm thử tải): Kiểm thử hệ thống dưới tải trọng lớn.
      • Stress Testing (Kiểm thử chịu tải): Kiểm thử hệ thống dưới điều kiện quá tải.
      • Scalability Testing (Kiểm thử khả năng mở rộng): Kiểm thử khả năng mở rộng của hệ thống.
      • Stability Testing (Kiểm thử độ ổn định): Kiểm thử độ ổn định của hệ thống dưới các điều kiện khác nhau.
    • Usability Testing (Kiểm thử khả năng sử dụng): Kiểm thử mức độ dễ sử dụng của hệ thống.
    • Compatibility Testing (Kiểm thử khả năng tương thích): Kiểm thử khả năng tương thích của hệ thống với các môi trường khác nhau.

2. Automation Testing

Automation Testing là quá trình sử dụng các công cụ phần mềm để thực hiện các trường hợp kiểm thử thay vì làm thủ công. Nó giúp tiết kiệm thời gian, tăng độ chính xác và có thể lặp lại nhiều lần mà không cần nỗ lực thủ công. Kiểm thử tự động thường được sử dụng cho các loại kiểm thử lặp lại nhiều lần và kiểm thử hồi quy.

Các loại kiểm thử thường dùng

  1. Unit Testing (Kiểm thử đơn vị):
    • Đây là mức kiểm thử thấp nhất, kiểm tra các chức năng cụ thể và nhỏ nhất của mã nguồn. Nó thường được các nhà phát triển thực hiện để đảm bảo rằng mỗi đơn vị phần mềm hoạt động như mong đợi.
  2. Integration Testing (Kiểm thử tích hợp):
    • Kiểm thử này nhằm đảm bảo rằng các module hoặc thành phần khác nhau của phần mềm hoạt động tốt khi kết hợp với nhau. Kiểm thử tự động có thể giúp nhanh chóng kiểm tra sự tương tác giữa các module sau mỗi lần thay đổi mã nguồn.
  3. System Testing (Kiểm thử hệ thống):
    • Kiểm thử toàn bộ hệ thống như một thể thống nhất để đảm bảo rằng hệ thống hoạt động đúng với các yêu cầu ban đầu. Automation Testing có thể được sử dụng để thực hiện các kịch bản kiểm thử phức tạp và kiểm thử hồi quy toàn diện.
  4. Performance Testing (Kiểm thử hiệu suất):
    • Bao gồm Load Testing, Stress Testing, Scalability Testing, và Stability Testing. Automation Testing giúp thực hiện các kiểm thử này với khối lượng dữ liệu lớn và trong thời gian dài mà không cần sự can thiệp của con người.
  5. Regression Testing (Kiểm thử hồi quy):
    • Đây là loại kiểm thử để đảm bảo rằng các thay đổi, sửa lỗi hoặc cải tiến không làm ảnh hưởng đến các chức năng hiện tại của hệ thống. Kiểm thử hồi quy thường được tự động hóa để tiết kiệm thời gian và công sức.
  6. Smoke Testing (Kiểm thử khói):
    • Kiểm thử ban đầu để xác định xem các chức năng cơ bản của phần mềm có hoạt động hay không. Automation Testing giúp nhanh chóng thực hiện các kiểm thử này sau mỗi lần build.

Hình ảnh minh họa cho testcase của hệ thống booking ticket

HỘI THOẠI MẪU

アン:本日はテストに絞って打ち合わせします。弊社で準備を進めておりますが、本日の確認をもって来週から着手いたします。

An: Cuộc họp hôm nay sẽ tập trung vào vấn đề kiểm thử (testing). Công ty chúng tôi đã sẵn sàng xúc tiến thực hiện test và sẽ bắt đầu thực hiện từ tuần sau sau khi xác nhận nội dung trong cuộc họp hôm nay.

斎藤:承知しました。本題に入る前に少しお伺いしたいのですが、社ではCMMIを取得されているそうですね。実際のプロジェクト、特にテストの工程では、どのように取り入れられているのでしょうか。

Saito: Tôi hiểu rồi. Trước khi đi vào vấn đề chính tôi muốn hỏi một chút. Nghe nói công ty đã đạt được chứng nhận CMMI, đúng không? Trong dự án thực tế, đặc biệt là trong quá trình kiểm thử, CMMI được tích hợp như thế nào?

アン:弊社ではCMMIベル5の認定を取得しています。このことは、定量的データによって組織全体で改善活動を継続的に推進できる能力を備えている、という評価を受けていることになります。テスト工程においても、発生した課題を解決するだけでなく、発生し得る課題を未然に防いだり、問題が起こる原因を定量的に把握して、継続的な改善を図っています。

An: Công ty của chúng tôi đã đạt được chứng nhận CMMI level 5. Điều này đánh giá khả năng của tổ chức tiến hành hoạt động cải tiến liên tục trên toàn bộ tổ chức dựa trên dữ liệu định lượng. Trong quá trình test, chúng tôi không chỉ giải quyết vấn đề đã phát sinh mà còn ngăn chặn các vấn đề có thể xảy ra trước và hiểu rõ nguyên nhân gây ra vấn đề để thực hiện cải tiến liên tục.

斎藤:そうですか。では、今回のテストでは何か工夫されることはありますか。

Saitou: Vậy à. Vậy thì có bất kỳ cải tiến hoặc điều chỉnh nào được thực hiện trong việc test lần này không? ハー:今回のテストでは、ご送付しているテスト計画にも記載した通り、工数削減のため、積極的に自動化を取り入れることにしております。

Ha: Trong đợt test lần này, theo như mô tả trong test plan mà chúng tôi gửi cho anh, chúng tôi sẽ tích hợp tự động hóa mạnh mẽ để giảm công số (thời gian làm việc).

斎藤:自動化というのは、個社でお持ちのツールが何かしらあるのらしょうか。ツール作成は計画になかったはずなので、これからスクリプトを書いてから自社開発されるわけではないと想像しています。

Saitou: Về tự động hóa, có phải là công ty bạn có công cụ nào để làm điều này đúng không? Vì việc tạo tool không có trong kế hoạch, nên tôi đang hình dung là các bạn sẽ không phát triển nội bộ sau khi viết script.

ハー:テストツールは、すでに使用許可をいただいているオープンソースのテスト自動化ツールを使用します。オープンソースなのでライセンス費は発生しません。

Ha: Chúng tôi sẽ sử dụng các công cụ tự động hóa để test open source đã được cho phép. Vì đó là open source nên không phát sinh chi phí license.

斎藤:これは、以前キックオフ会議でおっしゃっていた自動化サーバの中のテストツールとは異なるものですか。

Saitou: Vậy đó không phải là tool test nằm trong server tự động hóa mà các các bạn đã đề cập trong meeting kick-off lúc trước à?

ハー:それとは別のものです。今回は複数のブラウザでのUIのテストが必要なので、UIテストの効率化を図るツールを導入します。ツールを使用することで、ブラウザで直接操作することなく、APIを利用して複数のブラウザを自動的に操作することが可能です。

Ha: Đúng như anh nói, đây là một công cụ khác. Trong đợt test lần này, chúng tôi cần test UI trên nhiều browser khác nhau, vì vậy chúng tôi sẽ triển khai một công cụ để tối ưu hóa việc test UI. Việc sử dụng công cụ này cho phép chúng tôi tự động hoá việc thao tác trên nhiều browser thông qua API mà không cần thao tác trực tiếp trên browser.

斎藤:確か以前ご説明いただいたかと思いますが、ツールを使った場合は、どの程度工数を節減できるのでしたか。

Saitou: Y hình là các bạn đã giải thích cho tôi nghe về tool này rồi, nhưng các bạn đã estimate được công số sẽ giảm bao nhiêu khi sử dụng công cụ chưa?

ハー:今回のプロジェクトの場合、テスト工数の約2割を削れると見込んでいます。

Ha: Trong dự án này, chúng tôi dự kiến có thể giảm khoảng 20% thời gian test.

斎藤:かなりのものですね。ありがとうございます。

Saitou: Quả là một công số đáng kể. Cảm ơn bạn.

ハー:ところで、テストは来週から始めますが、実行していくテスト項目数は2280件です。そのうち3分の1は自動化します。テストのシナリオやマトリックス、仕様書については既にお送りしている通りで、今後テストをしていきますが、それらの結果を順次共有いたします。

Ha: Việc kiểm thử bắt đầu từ tuần sau, số lượng mục test dự kiến là 2280. Trong đó, một phần ba sẽ được tự động hóa. Chúng tôi sẽ chia sẻ kết quả của từng phần sau khi thực hiện test theo như fille test scenario (kịch bản kiểm thử), matrix (ma trận) và spec mà chúng tôi đã gửi.

斎藤:よろしくお願いいたします。一部の機能について、リリース前にデモ版で確認したいとお願いしていましたが、ご対応いただけそうですか。

Saitou: Cảm ơn bạn. Chúng tôi đang mong chờ bản demo của một số tính năng trước khi release, bạn có thể đối ứng được không?

アン:はい、デモ版で事前にご確認いただけるように準備しています。

An: Vâng anh, chúng tôi đang chuẩn bị bản demo để bên anh có thể xác nhận trước.

 

Từ vựng trong bài

 

  • CMMI - Capability Maturity Model Integration - Mô hình năng lực trưởng thành tích hợp

        CMMI (能力成熱度モデル統合) là một mô hình, cung cấp các hướng dẫn và kinh nghiệm thực tế dùng để phát triển, đánh giá và cải tiến năng lực quy trình.

  •   自社開発-In-house development

       Phát triển nội bộ là việc công ty tự phát triển sản phẩm từ giai đoạn lập kế hoạch, thiết kế cho đến hoàn thiện.

  • オープンソース -Open source

       Open source là bộ mã nguồn miễn phí mà người dùng có thể dễ dàng tải về, sửa đổi, hay nâng cấp thêm các tính năng cần thiết nhằm đáp ứng nhu cầu của mình và không vì mục đích thương mại.

  • デモ版 Demo version

       Demo version là bản duyệt trước của sản phẩm phần mềm để khách hàng dễ dàng hình dung về các tính năng của chương trình.

  • テストシナリオ:kịch bản test, test scenario
  • マトリックス:ma trận, matrix
  • テスト仕様書:tài liệu đặc tả test
  • ~に絞って:tập trung vào...
  • 認定:chứng nhận
  • 未然に防ぐ:phòng chống, ngăn chặn trước
  • 把握:nằm bắt, hiểu
  • 継続的な改善:cải tiến liên tục
  • スクリプト:script, tập lệnh
  • 1割:10%
  • ~は、事前に~してある:.. thì đã (làm).. sẵn rồi
  • 〜をもって〜:bằng/với..., (làm)...
  • 本題に入る前に少しお伺いしたいのですが、:Tôi muốn hỏi một chút trước khi vào vấn đề chính,...

Bài dịch cũ 

Lesson 1

https://ngontumathuat.com/.../dich-sach-tieng-nhat-cong.../

Lesson 2

https://ngontumathuat.com/.../dich-sach-tieng-nhat-cong.../

Lesson 3

https://ngontumathuat.com/.../dich-sach-tieng-nhat-cong.../

Lesson 4

https://ngontumathuat.com/.../dich-sach-tieng-nhat-cong.../

Lesson 5

https://ngontumathuat.com/.../dich-sach-tieng-nhat-cong.../

Lesson 6

https://ngontumathuat.com/.../dich-sang-tieng-nhat-cong.../

Lesson 7

https://ngontumathuat.com/post/dich-sach-tieng-nhat-cong-nghe-thong-tin-lesson-7-thay-doi-yeu-cau-LMLPdALlXyKtBsLG6KaD/

Lesson 8 

https://ngontumathuat.com/post/dich-sach-tieng-nhat-cong-nghe-thong-tin-lesson-8-thiet-ke-chi-tiet-REPDpPqc4lARMvEZkSbj/

Lesson 9

https://ngontumathuat.com/post/dich-sach-tieng-nhat-cong-nghe-thong-tin-lesson-9-weekly-report-4uQnlCKtRAM9ToOop3cw/

Lesson 10

https://ngontumathuat.com/post/dich-sach-tieng-nhat-cong-nghe-thong-tin-lesson-10-security-info-lXp5UCR9p7QCy8INV6FS/

Lesson 11

https://ngontumathuat.com/post/dich-sach-tieng-nhat-cong-nghe-thong-tin-lesson-11-coding-standards-2lisoNP4Cn0jQK1UFgJX/