Kiểm thử (Testing) trong phát triển phần mềm

Bài viết gần đây

HỌC VIÊN RTEP K1 – HÀNH TRÌNH MỚI CỦA CÔ NÀNG DIỆU HIỀN TRÊN ĐẤT NƯỚC NHẬT BẢN

Cuối tháng 10 này, Chương trình đào tạo kỹ sư tài năng Việt Nhật (RTEP) đã thành công đưa...

HỌC KỲ CŨ – HÀNH TRÌNH MỚI, RTEP K2 BƯỚC VÀO GIAI ĐOẠN MỚI CỦA HÀNH TRÌNH CHINH PHỤC MỤC TIÊU “ĐẶT CHÂN ĐẾN...

Ngày 6/10/2022, Chương trình RTEP đã tổ chức Lễ tổng kết và trao học bổng tích lũy, khen thưởng...

OFFER ĐẦU TIÊN CỦA CHƯƠNG TRÌNH RTEP – CHẠM ĐẾN MỤC TIÊU ĐẶT CHÂN ĐẾN XỬ SỞ HOA ANH ĐÀO

Tháng 8 vừa qua, Chương trình đào tạo kỹ sư CNTT tài năng Việt Nhật (RTEP) nhận được tin...

Ở đây có Chương trình RTEP sẵn sàng tuyển sinh khóa K3

Trong chuỗi các hoạt động Rikkeisoft tham gia tại “Tuần lễ việc làm DTU 2022”, chương trình đào tạo...

Học kỳ mới đã tới, khai giảng lớp đào tạo tiếng Nhật IT thôi!

Ngày 1/3/2022, chương trình RTEP đã Khai giảng lớp Đào tạo tiếng Nhật IT dành cho các RTEP-er K1...

Kiểm thử phần mềm (Testing) – một công việc không thể thiếu trong việc xây dựng bất kỳ chương trình nào, nhằm đảm bảo chương trình hoạt động đúng với những yêu cầu thực tế đề ra.

Cùng tìm hiểu một số khái niệm cơ bản về kiểm thử phần mềm nhé!

1. Kiểm thử phần mềm (Software Testing)

Kiểm thử (testing) là một quá trình đánh giá một hệ thống hay là các thành phần của nó với mục đích là xác định xem nó có thỏa mãn những yêu cầu được đưa ra hay không, có sự khác biệt nào giữa phần mềm thực tế đang tồn tại và những điều kiện được yêu cầu (requirement). Hiểu một cách đơn giản, kiểm thử – test là chạy một quá trình để xác nhận bất kỳ thiếu sót (defect), lỗi (bug), sai sót (error) hay những yêu cầu bị bỏ quên, những yêu cầu không đúng so với yêu cầu thực tế đề ra.

2. Người phụ trách kiểm thử phần mềm

Trong hầu hết các trường hợp, người kiểm thử (tester) có thể là:

  • Software Tester: Nhân viên kiểm thử phần mềm.
  • Software Developer: Nhân viên phát triển phần mềm (unit test)
  • Leader hoặc Manager của dự án.
  • User: Người sử dụng cuối cùng.

3. Thời điểm bắt đầu test

Việc kiểm thử – test sớm sẽ giúp giảm chi phí và thời gian để xây dựng lại và sửa lỗi để bàn giao sản phẩm phần mềm. Trong một vòng đời của phần mềm, việc test nên được bắt đầu từ khi có những yêu cầu từ phía khách hàng và được kéo dài đến cho đến khi triển khai phần mềm.

4. Khi nào thì dừng việc test

Rất khó để xác định khi nào thì dừng kiểm thử – test, vì test là quá trình không bao giờ kết thúc và không ai có thể yêu cầu phần mềm được test 100%. Các khía cạnh dưới đây có thể được cân nhắc cho việc dừng lại quy trình test:

  • Hạn chót phát triển phần mềm (deadline).
  • Đã thực hiện hết các test-case được đề ra.
  • Hoàn thiện các chức năng và toàn bộ code đã đảm bảo được các yêu cầu đề ra.
  • Tỷ lệ bug phải trong giới hạn mong muốn.
  • Không có những bug nghiêm trọng.
  • Quyết định của quản lý dự án.

5. Phương pháp kiểm thử

Theo phương thức tiếp cận có thể chia làm 2 loại testing: phương thức kiểm thử hộp đen (black-box testing) và phương thức kiểm thử hộp trắng (white-box testing).

5.1. Black-box testing: Kiểm thử hộp đen là phương pháp kiểm thử mà tester chỉ xem xét đến đầu vào và đầu ra của chương trình mà không quan tâm code bên trong được viết ra sao.

5.2. White-box testing: Kiểm thử hộp trắng là phương pháp kiểm thử mà cấu trúc thuật toán của chương trình được đưa vào xem xét. Người kiểm thử truy cập vào mã nguồn của chương trình để kiểm tra nó.

Thông thường, Black-box testing sẽ là Acceptance Testing do bộ phận QA thực hiện, White-box testing sẽ là Unit Testing/ Integration Testing/ Functional Testing do Developer thực hiện.

6. Các mức kiểm thử

6.1. Unit Testing (UT) – Kiểm thử đơn vị

Kiểm thử đơn vị là hoạt động kiểm thử nhỏ nhất, được thực hiện trên các hàm hay thành phần riêng lẻ. Đây là công việc để thực hiện được nó thì người kiểm thử phải hiểu biết về code, về chương trình, các hàm, …

Thời gian thực hiện UT

UT là mức kiểm thử đầu tiên trong các mức kiểm thử phần mềm, nó được thực hiện trước khi Integration Testing.

Mục đích

  • Cô lập từng thành phần của chương trình và chứng minh các bộ phận riêng lẻ chính xác về các yêu cầu chức năng.
  • Tăng đảm bảo khi có sự thay đổi mã.
  • Code dễ sử dụng, dễ hiểu, có thể tái sử dụng nhiều hơn, debug dễ dàng.
  • Chi phí sửa lỗi thấp hơn so với các mức kiểm thử giai đoạn sau.

6.2. Integration Testing (Kiểm thử tích hợp)

Định nghĩa

Integration Testing (IT) là một mức của kiểm thử phần mềm với mục đích kiểm tra một nhóm các module nhỏ liên quan đến nhau xem chúng có hoạt động được với nhau đúng chức năng như trong thiết kế hay không.

Thời gian thực hiện IT

IT là mức thứ hai trong các mức kiểm thử phần mềm. Nó được thực hiện sau Unit Test và trước System Test.

Người phụ trách IT

IT có thể được thực hiện bởi developer, một test team chuyên biệt hay một nhóm chuyên developer/kiểm thử viên tích hợp bao gồm cả kiểm thử phi chức năng.

Mục đích

  • Kiểm tra sự tích hợp một nhóm các thành phần riêng lẻ có liên quan xem chúng có hoạt động đúng như mong đợi hay không.
  • Nhằm phát hiện lỗi giao tiếp xảy ra giữa các thành phần cũng như lỗi của bản thân từng thành phần (nếu có). Phát hiện lỗi giao tiếp xảy ra giữa các Unit.
  • Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ (sub-system) và cuối cùng là nguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểm tra ở mức hệ thống (System Test).
  • Thành phần có thể là: các module,  các ứng dụng riêng lẻ, các ứng dụng Client/ Server.

6.3. System Testing (Kiểm thử hệ thống)

Định nghĩa

System Testing là một mức của kiểm thử phần mềm. Giai đoạn này sẽ hoàn thiện và hợp nhất phần mềm để kiểm thử. 

Thời gian thực hiện

Kiểm thử hệ thống là mức kiểm thử thứ ba trong các mức kiểm thử phần mềm được thực hiện sau kiểm thử tích hợp (Integration Testing) và trước kiểm thử chấp nhận (Acceptance Testing).

Người phụ trách

Thông thường, các tester thực hiện kiểm thử hệ thống. Các tester này thường hoàn toàn độc lập với nhóm phát triển dự án.

Mục đích

Mục đích của giai đoạn này là để đánh giá sự hoạt động của hệ thống có đúng theo như tài liệu đặc tả.

6.4. Acceptance Test (Kiểm thử chấp nhận)

Định nghĩa

Acceptance Testing về cơ bản là mô phỏng các thao tác của người dùng sử dụng sản phẩm để xem kết quả người dùng nhận được có đúng như mong muốn không.

Thời gian thực hiện

Acceptance Testing là mức thứ tư được thực hiện sau khi hoàn thành kiểm thử hệ thống và trước khi đưa sản phẩm vào sử dụng chính thức.

Người phụ trách

Kiểm thử chấp nhận được chia thành 2 mức khác nhau:

  • Kiểm thử alpha: được thực hiện bởi những người trong tổ chức nhưng không tham gia phát triển phần mềm.
  • Kiểm thử beta: được thực hiện bởi khách hàng/ người dùng cuối tại địa điểm của người dùng cuối (hoặc ủy quyền cho một nhóm thứ ba thực hiện).

Lưu ý: không nhất thiết phải thực hiện tất cả các loại kiểm tra nêu trên. Tùy yêu cầu và đặc trưng của từng hệ thống, tuỳ khả năng và thời gian cho phép của dự án, khi lập kế hoạch, quản lý dự án sẽ quyết định áp dụng những loại kiểm thử nào.

Mục đích của kiểm thử nhằm đảm bảo phần mềm đáp ứng đúng yêu cầu nghiệp vụ của khách hàng. Sản phẩm nhận được sự chấp nhận từ khách hàng/ người dùng cuối.

Hy vọng một số khái niệm và thông tin trên đây sẽ hữu ích và giúp bạn hiểu rõ hơn về kiểm thử phần mềm!

Nguồn: Viblo & GP Coder

Góc Nhật Bản

Những điều cần biết về kì thi năng lực tiếng Nhật JLPT

JLPT là gì? Kỳ thi năng lực tiếng Nhật có tên tiếng Nhật 日本語能力試験(にほんごのうりょくしけん) tiếng Anh: "Japanese Language Proficiency Test" - JLPT) là kì...

Hanami – Độc đáo lễ hội hoa anh đào Nhật Bản

Hoa anh đào (桜, sakura) được xem như là quốc hoa (không chính thức) của đất nước mặt trời mọc. Hàng năm, các ngôi...

Bí quyết đánh đổ bài thi JLPT

Bất kỳ ai khi theo học tiếng Nhật Nhật cũng biết về bài thi JLPT. Đây là bài thi năng lực tiếng Nhật được...

Nét đặc trưng trong văn hóa chào hỏi của người Nhật Bản

Đối với người Nhật Bản, văn hóa chào hỏi chính là một nét văn hóa đặc trưng dần trở thành phong cách của mỗi...

Truyền nghề

THẾ NÀO LÀ MỘT TESTER XUẤT SẮC?

Công việc chính của một Tester là tìm kiếm những lỗi hệ thống, thẩm định xem hệ thống có đáp ứng được các yêu...

BÍ KÍP “NHỜ VẢ” CHO CÁC LẬP TRÌNH VIÊN ÍT KINH NGHIỆM TẠI NƠI CÔNG SỞ

Khi mới chập chững làm quen với công việc của một lập trình viên, chắc chắn bạn sẽ thường xuyên gặp nhiều vướng mắc...

DÙNG EMAIL ĐỈNH CAO, ĐỪNG MẮC NHỮNG SAI LẦM SAU

Hiện nay, email vẫn là phương tiện chủ yếu giúp chúng ta kết nối với mọi người, trong cả việc công lẫn việc cá...

19 Sai Lầm Của Lập Trình Viên

Sưu tầm nhiều sách, tải nhiều video học lập trình nhưng bao giờ đọc và học nghiêm túc Hiện nay, sách Ebook quá nhiều,...