Chủ nhật, ngày 9 tháng 8 năm 2020
Trang chủ Development

Kiểm thử hệ thống/System Testing là gì - Hướng dẫn tối ưu cho người mới bắt đầu

Kiểm thử hệ thống trong kiểm thử phần mềm là gì?

Kiểm thử hệ thống hay còn gọi là System Testing, là kiểm tra lại toàn bộ hệ thống sau khi tích hợp, nhằm đảm bảo hệ thống đáp ứng các yêu cầu đề ra. 

System Testing sẽ được thực hiện sau integration testing. Đây là một bước giữ vai trò quan trọng trong việc cho ra đời một sản phẩm chất lượng cao.

Quá trình kiểm thử hệ thống phần cứng và phần mềm tích hợp được thực hiện để xác minh xem hệ thống có đáp ứng được các yêu cầu đặt ra hay không.

Verification/Xác minh: Thông qua kiểm tra và cung cấp bằng chứng khách quan về việc thỏa mãn các yêu cầu cụ thể.

Kiểm thử hệ thống/System Testing là gì - Hướng dẫn tối ưu cho người mới bắt đầu - Ảnh 1.

Nếu một ứng dụng có ba module A, B và C, thì việc kiểm tra sẽ được thực hiện bằng cách kết hợp các module A & B hoặc module B & C hoặc module A & C, và quy trình được gọi là kiểm thử Tích hợp/ Integration testing. Tích hợp toàn bộ 3 module và thực hiện kiểm tra như một hệ thống hoàn chỉnh được gọi là kiểm thử hệ thống.

Ví dụ về kiểm thử hệ thống:

Một nhà sản xuất xe hơi thường sẽ không sản xuất toàn bộ chiếc xe. Mỗi thành phần của xe như ghế ngồi, tay lái, gương, cáp, động cơ, khung xe, bánh xe, v.v sẽ.được sản xuất riêng biệt,

Sau khi sản xuất, từng thành phần sẽ được kiểm tra độc lập để xác định xem có hoạt động đúng cách hay không và xác minh này được gọi là Unit testing/kiểm thử Đơn vị.

Bây giờ, với việc một thành phần được ráp với thành phần khác, chúng sẽ được kiểm tra xem nếu việc lắp ráp gây ra bất kỳ tác động nào đến chức năng của từng thành phần và liệu cả hai thành phần này có hoạt động trơn tru cùng với nhau hay không, thì được gọi là kiểm thử tích hợp.

Và khi tất cả các bộ phận được lắp ráp, có phải chiếc xe đã sẵn sàng? Thực ra thì chưa.

Toàn bộ chiếc xe cần được kiểm tra khả năng thỏa mãn theo các yêu cầu cụ thể như: vô lăng điều khiển có mượt mà, phanh xe, bánh xe và các chức năng khác có hoạt động bình thường?, xe liệu vẫn chạy bền bỉ sau 2500 dặm liên tục, màu xe mcos hài hòa, xe có thể lái được trên bất kỳ loại địa hình nào, từ bằng thẳng đến gập ghềnh hay không v.v… Toàn bộ quá trình kiểm tra này được gọi là kiểm thử hệ thống và hoàn toàn tách biệt với kiểm thử tích hợp.

Phương pháp thực hiện

Quy trình được thực hiện sau khi làm xong kiểm thử tích hợp.

Kiểm thử hệ thống/System Testing là gì - Hướng dẫn tối ưu cho người mới bắt đầu - Ảnh 2.

Kiểm thử hệ thống thuộc loại kiểm thử hộp đen( Black Box Testing), là một phương pháp kiểm thử phần mềm dựa trên đầu vào và đầu ra của chương trình để test mà không cần quan tâm code bên trong của phần mềm ra sao. Mục đích chính là liệu nó có đáp ứng được sự mong đợi của người dùng hay không?

Kiểm thử bao gồm kiểm tra các vùng chức năng và phi chức năng của ứng dụng/sản phẩm.

Các tiêu chí chủ đạo: 

- Quá trình sẽ chủ yếu tập trung vào các yếu tố sau:

- Giao diện bên ngoài (UI/ UX) 

- Cách hoạt động của các function

- Độ tin cậy, Bảo mật

- Khả năng phục hồi

- Hiệu suất

- Vận hành và trải nghiệm người dùng

- Khả năng cài đặt

- Tài liệu tham khảo, hướng dẫn

- Tính khả dụng

- Load/Stress

Tại sao phải kiểm thử hệ thống?

# 1. Kiểm thử phần mềm là khâu vô cùng quan trọng trong quá trình phát triển 1 sản phẩm công nghệ. Nó chỉ ra lỗi và sai sót đã được thực hiện trong các giai đoạn phát triển. 

# 2. System testing đảm bảo độ tin cậy của khách hàng và sự hài lòng của họ về ứng dụng mà mình tạo ra  

# 3. Giúp tăng hiệu suất công việc do giảm được tối đa thời gian để tìm lỗi trên ứng dụng phần mềm hoặc sản phẩm nhiều lần

#4. Kiểm thử phần mềm là cần thiết vì nó giúp cung cấp các ứng dụng phần mềm cho khách hàng phân phối được hướng sản phẩm chất lượng cao hoặc chi phí bảo trì ứng dụng phần mềm thấp hơn, tiết kiệm hơn và do đó dẫn đến hiệu quả cao nhất và đáng tin cậy hơn.

Quá trình này đặc biệt đảm bảo rằng ứng dụng không dẫn đến bất kỳ lỗi nào, hạn chế tối đa những tốn kém trong tương lại hoặc trong các giai đoạn của quá trình phát triển sản phẩm 

Một số ví dụ về các nhiệm vụ thường ngày mà ST giúp giải quyết để thấy tầm quan trọng của quá trình này:

- Điều gì xảy ra nếu một giao dịch trực tuyến bị lỗi sau bước xác nhận?

- Điều gì xảy ra nếu một sản phẩm trong giỏ hàng trên web bán hàng trực tuyến không cho phép đặt hàng?

- Điều gì xảy ra nếu tab tạo thư mới trong tài khoản Gmail có lỗi?

- Điều gì xảy ra khi tải tăng lên trên hệ thống gây sự cố?

- Điều gì xảy ra nếu hệ thống gặp sự cố và không thể khôi phục dữ liệu như mong muốn?

- Điều gì xảy ra nếu cài đặt một phần mềm trên hệ thống mất nhiều thời gian hơn dự kiến và gặp lỗi?

- Điều gì xảy ra nếu thời gian phản hồi của website tăng nhiều hơn so với dự kiến trong khung giờ cao điểm?

- Điều gì sẽ xảy ra nếu website tải quá chậm đến nỗi người dùng không thể book được vé du lịch?

Trên đây chỉ là một vài ví dụ để cho thấy việc kiểm tra hệ thống sẽ ảnh hưởng như thế nào nếu không được thực hiện đúng cách.

Tất cả các ví dụ trên sẽ cho ra kết quả của việc kiểm tra hệ thống được thực hiện đúng hay không đúng. Tất cả các module tích hợp phải được kiểm tra để đảm bảo rằng sản phẩm hoạt động như yêu cầu.

System testing là kiểm thử White-box hay Black-box?

Kiểm thử hệ thống/System Testing là gì - Hướng dẫn tối ưu cho người mới bắt đầu - Ảnh 3.

Kiểm thử hệ thống có thể được xếp vào test Black-box.

Kỹ thuật test Black-box không yêu cầu kiến thức về code như với test White-box

Thực hiện kiểm thử hệ thống như thế nào?

Về cơ bản,System testing là một phần trong kiểm thử phần mềm và một kế hoạch kiểm thử phải luôn dành không gian cho loại kiểm thử này.

Để kiểm tra toàn bộ hệ thống, các yêu cầu và kỳ vọng phải rõ ràng và tester cũng cần phải hiểu cách sử dụng ứng dụng theo thời gian thực.

Ngoài ra, hầu hết các công cụ của bên thứ ba, các phiên bản và kiến trúc của HĐH đều có thể ảnh hưởng đến chức năng, hiệu năng, bảo mật, khả năng phục hồi hoặc khả năng cài đặt của hệ thống.

Bởi vậy, kiểm thử hệ thống đem đến một cái nhìn rõ ràng về cách ứng dụng sẽ được sử dụng và loại vấn đề nào nó có thể gặp phải trong thời gian thực. Thêm vào đó, tài liệu yêu cầu cũng quan trọng như việc hiểu ứng dụng.

Tài liệu cần rõ ràng và cập nhật có thể giúp người kiểm tra tránh được một số hiểu lầm, giả định và câu hỏi.

Nói tóm lại, một tài liệu yêu cầu rõ ràng và sâu sắc với các bản cập nhật mới nhất, kết hợp với sự hiểu biết về việc sử dụng ứng dụng thời gian thực sẽ giúp ST hiệu quả hơn.

Thử nghiệm này cần được thực hiện một cách có kế hoạch và có hệ thống.

Dưới đây là các bước trong quá trình thực hiện kiểm thử: 

Bước 1: Lên plan test

Bước 2: Phân tích và thiết kế ( Tạo testcase và các bước kiểm tra chi tiết cho mỗi version) 

Bước 3: Thực thi test bao gồm thực hiện test và chạy test( chuẩn bị data test, chạy case và so sánh kết quả) 

Bước 4: Đánh giá kết quả thực thi và báo cáo kết quả test: 

Bước 5: Đóng hoạt động kiểm thử 

Kiểm thử hệ thống/System Testing là gì - Hướng dẫn tối ưu cho người mới bắt đầu - Ảnh 4.

Các vấn đề cần test?

Các vấn đề nêu dưới đây là các yếu tố trong quá trình kiểm thử:

- Test đầu cuối/end to end bao gồm xác minh sự tương tác giữa tất cả các thành phần cũng như với các thiết bị ngoại vi bên ngoài để chắc chắn rằng hệ thống hoạt động ổn định trong bất kỳ tình huống nào được đưa ra trong bài test.

- Test sẽ xác minh input được cung cấp cho hệ thống có cung cấp kết quả như kỳ vọng hay không.

- Xác minh nếu tất cả các yêu cầu về chức năng & phi chức năng được đã được test hay chưa và có hoạt động như mong đợi hay không.

- Ad-hoc test và chạy chẩn đoán có thể được thực hiện trong kiểm thử sau khi hoàn thành các test theo kịch bản. Các test này giúp phát hiện các lỗi không thể tìm thấy trong test theo kịch bản nhờ cho phép các tester tự do kiểm tra dựa trên kinh nghiệm và trực giác của mình.

Ưu điểm của System Testing: 

- Dễ dàng tự động hóa.

- Không cần truy cập mã nguồn, một số lượng lớn tester có kỹ năng vừa phải có thể kiểm tra ứng dụng mà không cần có nhiều kiến thức, ngôn ngữ lập trình hoặc hệ điều hành.

- Phù hợp và hiệu quả khi số lượng các dòng lệnh của hệ thống là lớn.

- Phân biệt được rõ ràng quan điểm của người dùng với quan điểm của nhà phát triển, hay còn gọi là có sự đánh giá khách quan.

Tham khảo https://www.softwaretestinghelp.com/system-testing/

>> Có thể bạn quan tâm: Tìm hiểu công cụ đánh giá tốc độ Google Speed Test

BizFly Cloud là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp - Công ty dẫn đầu trong lĩnh vực công nghệ và truyền thông tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web..., chúng tôi có đủ khả năng để hỗ trợ đưa ra những giải pháp và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do BizFly Cloud cung cấp có thể truy cập tại đây.