Tester luôn là nơi “hạ cánh an toàn” của một người học ngành công nghệ thông tin nhưng lại không giỏi về lập trình và trong quá trình tìm hiểu, bạn biết về System Testing cũng là một dạng nghề. Vậy System Testing là gì? Công việc của một System Testing ra sao? Những thắc mắc này sẽ được Tino Group giải đáp trong bài viết.
Tìm hiểu về System Testing
System Testing là gì?
System Testing là quá trình kiểm tra một sản phẩm phần mềm/ ứng dụng đã hoàn chỉnh và tích hợp đầy đủ các chức năng.
Thông thường, một sản phẩm phần mềm sẽ hoạt động và test thử trên 1 môi trường nhất định. Tuy nhiên, System Testing phải đảm bảo hệ thống có thể vận hành được trên nhiều môi trường khác nhau và tích hợp với những phần mềm, ứng dụng khác nhau.
System Testing là một dạng kiểm thử hộp đen và liên quan đến các hoạt động từ phía bên ngoài phần mềm và từ phương pháp sử dụng của người dùng phần mềm.
Người kiểm nghiệm không nhất thiết phải có các kiến thức về lập trình, đồ họa hay thiết kế mà dựa hoàn toàn vào quan điểm, góc nhìn của người dùng để thực hiện test.
Vì sao System Testing lại cần thiết?
Để thấy được sự cần thiết của System Testing, Tino Group sẽ đưa ra một số ví dụ cụ thể thường gặp trong đời sống hằng ngày như:
- Chuyện gì xảy ra nếu Gmail bị lỗi và bạn không thể gửi thư cho khách hàng?
- Phần mềm của ngân hàng đang hoạt động bình thường và gặp các lỗi giao dịch, tiền chuyển đi nhưng chưa được xác nhận?
- Người truy cập vào website bạn xây dựng sử dụng sai so với cách bạn tạo và mong muốn người sử dụng dùng trang web của mình?
- Bạn đặt hàng online nhưng sản phẩm chỉ nằm trong giỏ và không thể thanh toán?
- Nếu trang web của bạn quá chậm đến nỗi người dùng không thể truy cập và mua một món hàng , chuyện gì sẽ xảy ra?
- Hệ thống của bạn đột nhiên gặp lỗi và bạn không biết phải giải quyết như thế nào…
Trong thực tế sẽ có nhiều tính huống “oái oăm” hơn nữa đối với website, phần mềm của bạn khi đưa vào hoạt động.
Ví dụ điển hình nhất chính là hệ điều hành Windows. Sau mỗi bản cập nhật tốt nhất Microsoft đưa ra cho người dùng, hàng tá lỗi sẽ bị người dùng phát hiện và báo cáo ngược lại cho Microsoft để họ tiếp tục sửa lỗi. Đến một tập đoàn công nghệ khổng lồ còn có thể mắc lỗi, liệu những phần mềm, chương trình được thực hiện toàn diện không có bất cứ lỗi nào hay không?
Vì vậy, System Testing là một giai đoạn cần thiết để hạn chế tối đa lỗi có thể xảy ra và gia tăng trải nghiệm người dùng. Và ta có thể rút ra thêm một số lý do System Testing quan trọng như:
- Đảm bảo chất lượng của phần mềm
- Đáp ứng đầy đủ yêu cầu chức năng kỹ thuật, kinh doanh của doanh nghiệp/ khách hàng
- Ngăn ngừa và giảm thiểu lỗi phát sinh trong thực tế
- Đảm bảo kết quả đầu vào và đầu ra đều như mong đợi
Điều kiện cần thiết của một System Testing là gì?
Để System Testing có hiệu quả tốt nhất theo mong đợi, phần mềm sẽ cần phải đáp ứng những điều kiện cơ bản cần thiết như sau:
- Đã phát triển hoàn chỉnh phần mềm
- Có tích hợp sẵn phần mềm kiểm thử và đã kiểm thử
- Đảm bảo được kết quả đầu ra thống nhất
- Môi trường hệ thống phải sẵn sàng khi thực hiện testing
Tìm hiểu chi tiết về nghề System Testing
Sau khi biết được về khái niệm, lý do và những điều kiện cần thiết để tiến hành System Testing, chúng ta sẽ tìm hiểu chi tiết hơn và tìm hiểu về nghề System Testing sẽ làm những công việc gì nhé!
Quy trình làm việc của System Testing
Lên kế hoạch test
Bước đầu tiên, các tester cần phải lập ra một kế hoạch để test. Team leader sẽ phải xác định được mục tiêu, chiến lược và phạm vi test.
Quá trình thực hiện test sẽ sử dụng phần mềm tự động hay thực hiện thủ công, kết quả mong đợi sau khi test là gì….
Tạo case test
Trong giai đoạn này, các case test sẽ được xây dựng dựa trên usecase trong bản mô tả trước khi phần mềm được ra đời. Từ usecase, ta sẽ có được một số trường hợp như:
- Người dùng tương tác với giao diện, chức năng ra sao
- Hiệu suất phần mềm thế nào
- Các phi chức năng có ổn hay không,…
Chọn data để test
Quá trình test cần có một lượng data mẫu. Điều này sẽ cần phải được thống nhất giữa team với các đơn vị khác và phối hợp thực hiện. Nguồn dữ liệu đầu vào chính xác sẽ làm cho bài test được qua dễ dàng hơn.
Thực hiện các case test
Cuối cùng, đến lúc chúng ta thực hiện chạy thử các test. Trong quá trình test, bạn và đội nhóm sẽ cần phải ghi lại từng sự kiện và theo dõi sát sao quá trình này.
Bất cứ một lỗi nào cũng cần phải được ghi lại nhằm để báo cáo và thực hiện sửa lỗi.
Báo cáo và thực hiện sửa lỗi
Sau khi báo cáo về các sự cố, các lỗi được ghi nhận và đưa cho bộ phận liên quan. Team có thể lập một báo cáo đầy đủ để gửi đến bộ phận phát triển hoặc nhóm kiểm thử để giải quyết vấn đề một cách nhanh chóng.
Test lại lần nữa nếu cần thiết
Sau khi chỉnh sửa, chắc chắn chúng ta sẽ cần phải kiểm tra lại lần nữa để đảm bảo các chức năng đã chính xác theo yêu cầu của người dùng và các kết quả đều như mong đơi.
Một số loại System Testing thường thấy
Gần giống với kiểm thử phần mềm, kiểm thử hệ thống cũng có sự kết hợp giữa nhiều kỹ thuật lại với nhau nhằm đánh giá tổng thể sản phẩm. Mỗi loại kiểm thử khác sẽ phù hợp với từng hành vi của người dùng như:
- Kiểm tra cài đặt: phần mềm được cài đặt đúng cách sẽ ra sao, nếu cố tình làm sao chúng sẽ như thế nào.
- Kiểm tra chức năng: tuy một số chức năng bạn và nhà phát triển nghĩ rằng nó được dùng cho cách A nhưng người dùng sử dụng cho mục đích khác thì sao?
- Kiểm tra khả năng phục hồi: lúc này chúng ta sẽ đóng vai ác và cố tình làm cho phần mềm bị hỏng, fail, crash,… nhằm đánh giá phần mềm có khả năng tự phục hồi hay không.
- Kiểm tra về năng suất: trong quá trình sử dụng thực tế, phần mềm sẽ có sự phản ứng ra sao, có khả năng ổn định và các số liệu “tốt” với một khối lượng công việc lớn hay không.
- Kiểm tra tương tác: phần mềm của bạn sẽ tương tác với phần cứng hay những phần mềm khác trên hệ thống ra sao,…
- Kiểm tra tài liệu: vâng tài liệu tham khảo và hướng dẫn sử dụng cho người dùng là rất cần thiết. Vì vậy, việc chuẩn bị những tài liệu hướng dẫn sử dụng đúng cách cũng có thể làm ra trong quá trình kiểm thử.
- Kiểm tra bảo mật: một trong những yếu tố được quan tâm hàng đầu hiện nay chính là bảo mật. Vì vậy, một cuộc kiểm tra bảo mật sẽ mang lại nhiều lợi ích cho cả bạn lẫn người dùng.
Ngoài ra, có đến hơn 50 loại System Testing khác mà Tino Group không thể kể chi tiết hết trong bài viết này. Ngoài ra, bạn cũng sẽ cần phải tìm hiểu thêm những yếu tố cần có cho ngành tester nói chung như: yêu cầu nghề nghiệp, kỹ năng cần có để trở thành một Tester chuyên nghiệp,… .Bạn có thể tham khảo thêm tại bài viết Tester là gì? Những yếu tố cần thiết để trở thành một Tester.
Cuối cùng, Tino Group chúc bạn sẽ có thể thành công trên con đường System Testing mà bạn đang hướng đến!
Những câu hỏi thường gặp về System Testing
Mức lương của tester là bao nhiêu?
Theo Got It, mức lương tester tại Việt Nam có giá từ 7 -22 triệu đồng. Và họ có thể hoạt động trên nhiều lĩnh vực khác nhau.
System Testing có phải biết về code hay không?
Không, bạn không nhất thiết phải là một người giỏi code để có thể trở thành một System Testing xuất sắc.
Làm thế nào để quá trình System Testing hiệu quả?
Để quy trình trở nên hiệu quả hơn, tester cần phải:
- Kiểm đúng kỹ thuật, đúng thời điểm
- Tìm các lỗi và từ các lỗi đó tìm san xung quanh để tạo thành các cụm lỗi
- Việc kiểm thử này cần phải có sàng lọc và không phải kiểm “đại cho có”.
System Testing có thể tìm thấy toàn bộ lỗi hay không?
Không, quá trình System Testing chỉ có thể tìm thấy một số lỗi nhất định và việc không tìm ra lỗi sẽ không đồng nghĩa với việc phần mềm không có lỗi.