Ngộ nhận quan điểm “Ai cũng có thể làm kiểm thử phần mềm”
Bài đăng này đã không được cập nhật trong 6 năm
Nghề Tester-Chuyên viên kiểm thử phần mềm ngày càng phổ biến ở Việt Nam. Nhưng không phải ai quan tâm đến lĩnh vực phát triển phần mềm cũng hiểu đúng, hiểu rõ về công việc của những người “vạch lá tìm sâu” này.
Tôi có một cô bạn học Ngân hàng, ra trường chưa xin được vị trí nhân viên quầy giao dịch như mơ ước. Trong nhóm bạn thân chúng tôi, đứa làm lập trình, đứa làm kiểm thử phần mềm. Cô bạn ấy cũng muốn thử sức với vị trí kiểm thử, bắt đầu tìm hiểu và thấy nhiều job tuyển "có vẻ dễ xin việc", rồi tìm hiểu công việc cụ thể, cũng với cảm nhận là "đơn giản".
Tester giữ vai trò kiểm thử, đảm bảo phần mềm hoạt động đúng theo yêu cầu của khách hàng và phải đáp ứng yêu cầu của người dùng. Vậy tại sao nhiều bạn lại ngộ nhận rằng ai cũng có thể làm kiểm thử phần mềm vậy? Chúng ta cùng tìm hiểu một vài nguyên nhân cơ bản sau:
1. Làm Tester đơn giản vì không yêu cầu kỹ năng lập trình.
Từ thực tế rất nhiều tester không phải là sinh viên tốt nghiệp ngành IT hoặc nhiều bạn học IT nhận thấy việc lập trình quá khó nên xác định ra trường làm tester mà không coi trọng các kỹ năng lập trình. Người ta ngộ nhận quan điểm làm kiểm thử không yêu cầu kỹ năng lập trình. Có lẽ vì thế mà họ nghĩ làm tester rất đơn giản.
Đây là một trong những ngộ nhận phổ biến nhất về công việc kiểm thử phần mềm. Đúng là so với công việc của Developer thì nhiệm vụ của Tester có phần nào “nhàn” hơn, vì: Không có Tester thì Developer vẫn làm ra được sản phẩm phần mềm. Nhưng chỉ có Tester thì không thể. Developer viết một sản phần mềm quả thực rất khó so với việc tester đóng vai trò là người dùng để kiểm thử. Nhưng cũng không thể vì thế mà cho rằng trở thành tester là dễ. Nghề Tester cũng có rất nhiều áp lực riêng:
- Khối lượng công việc của Tester không hề nhẹ nhàng (khi mà dev sửa một dòng code cũng có thể gây ra những lỗi nghiêm trọng, hay dev chỉ mất nửa giờ để thêm/bớt/chỉnh sửa một tính năng, sau đó Tester phải dành cả tuần để regression test)
- Tester cũng nên có chút kỹ năng lập trình cũng như kiến thức phát triển phần mềm để hiểu cách hệ thống hoạt động, hiểu công việc của Dev hơn, hợp tác ăn ý hơn, biết được những lỗi hay xảy ra trong lập trình như nhìn vào đoạn code, giúp dev review code,...Hơn nữa ngoài manual test còn có automation test, Tester phải viết script và kiến thức lập trình là điều cần thiết
2. Nếu không làm lập trình được có thể làm kiểm thử.
Có ứng viên chia sẻ trong buổi phỏng vấn vào vị trí kiểm thử phần mềm rằng họ được mong muốn trở thành lập trình viên nhưng chưa tìm được việc phù hợp nên ứng tuyển công việc kiểm thử. Họ không hề đắn đo rằng mình đã được đào tạo bài bản về kiểm thử hay chưa? Phải chăng kiểm thử là những bước đầu tiên của lập trình. Và có cả trường hợp ngược lại nhiều lập trình viên nhận thấy công việc vất vả quá, khó quá lại có suy nghĩ chuyển sang làm Tester.
Thực ra kiểm thử và lập trình là 2 công việc khác nhau và đòi hỏi những kỹ năng chuyên môn khác nhau. Không nên xem thường mức độ khó dễ của nghề kiểm thử.
3. Khoảng cách giữa Tester làm được việc và Tester giỏi là khá lớn.
Nếu chỉ nhìn vào khoảng thời gian một người mới tiếp cận với kiểm thử phần mềm cho đến khi họ có thể làm được việc thì đúng là không lâu. Sau một thời gian trải nghiệm vị trí Tester, họ cũng nhận định công việc kiểm thử “dễ thật”. Tuy nhiên, họ không nhận ra rằng làm được việc và làm xuất sắc là khác nhau. Kiểm thử phần mềm đòi hỏi những kỹ năng chuyên môn mà không phải ai cũng có sẵn như niềm đam mê, tò mò, khả năng sáng tạo, khả năng quan sát, phân tích, trình bày, tranh luận, vv…và cả kiến thức lập trình.
Tố chất của Tester giỏi nằm ở kỹ năng đặt câu hỏi, đặt vấn đề. Testing không chỉ gói gọn trong việc xác nhận sản phẩm có vận hành đúng theo yêu cầu khách hàng hay không, mà còn là đánh giá xem những yêu cầu đó có phù hợp với nhu cầu của người sử dụng? Việc đặt câu hỏi tốt sẽ giúp gợi mở nhiều vấn đề quan trọng của sản phẩm.
Công việc của một Tester không chỉ dừng lại ở việc kiểm thử xác nhận theo yêu cầu mà họ có thể phải tham gia phân tích, đánh giá yêu cầu và đưa ra những đề xuất để cải thiện tính năng của sản phẩm, không phải yêu cầu nào của khách hàng cũng đúng, không phải hướng phát triển nào của dev cũng hợp lý. Thông qua việc đánh giá, phân tích tester mới có thể xác định các rủi ro về chất lượng (quality), thực hiện hoạt động kiểm thử về bảo mật (security), hiệu năng (performance), tính dễ sử dụng (usability),… Vậy nên khả năng phân tích càng tốt và tính sáng tạo càng cao thì công việc của bạn sẽ càng hiệu quả và lý thú. Sự tò mò giúp bạn luôn muốn tìm hiểu, khám phá thêm về sản phẩm. Còn sáng tạo giúp bạn nghĩ ra nhiều trường hợp kiểm thử thú vị mà các đặc tả, tài liệu hướng dẫn ban đầu chưa bao phủ hết, chưa đề cập đến.
Điều đó tạo nên sự khác biệt giữa Tester làm được việc và Tester giỏi.
Ví dụ, khi nhận được yêu cầu, đa số Tester chỉ dừng ở mức nhận yêu cầu, viết – chạy test case. Nếu phần mềm hoạt động đúng theo yêu cầu đặc tả ban đầu thì cho Test Case “Passed.” Tuy nhiên, trong quá trình ấy, sẽ có những Tester luôn đặt ra những câu hỏi sau: Tại sao tính năng được thiết kế như vậy? có thực sự hữu ích cho người dùng? Thực hiện nhiều hành động bất thường khác: sẽ như thế nào nếu người dùng làm [X] thay vì làm [Y] sau đó làm [Z]? v.v… Từ đó, có những gợi ý tốt hơn cho sản phẩm. Khách hàng cũng đồng ý và sản phẩm cũng chất lượng hơn.
4. Thực hiện kiểm thử theo test case có sẵn.
Sở dĩ quan niệm trên tồn tại vì có một số công ty tuyển tester với yêu cầu khá đơn giản, có thể do dự án gấp hoặc chỉ để thực hiện những công việc kiểm thử cơ bản như:
- Thực hiện kiểm thử theo test case đã được các tester có kinh nghiệm viết sẵn.
- Chỉ kiểm thử giao diện dựa trên tài liệu design
- Kiểm thử những chức năng đơn giản
Công việc không có sự sáng tạo, logic bạn sẽ chỉ test như một cái máy, mà không hiểu nguyên nhân, cơ chế hoạt động… ở phía sau. Hệ quả là nhiều lỗi tiềm ẩn bị bỏ sót, không có sự tương tác, trao đổi với khách hàng để thay đổi yêu cầu khi cần thiết, làm ảnh hưởng đến việc bảo trì hoặc mở rộng hệ thống/sản phẩm sau này. Như vậy, có thể coi là Tester thực thụ được không? Còn thực tế, kỹ năng tối thiểu của một Tester bao gồm:
- Đọc và phân tích tài liệu yêu cầu để phát hiện lỗi/thiếu sót sớm.
- Hiểu nghiệp vụ của hệ thống/chức năng sẽ kiểm thử.
- Thiết kế test case hiệu quả.
- Biết sử dụng một số công cụ để chuẩn bị môi trường, và tạo dữ liệu kiểm thử.
- Biết thao tác với cơ sở dữ liệu, ít nhất là để thêm, cập nhật hay truy vấn dữ liệu.
Hậu quả của việc ngộ nhận quan điểm này là:
-
Không chỉ người ngoài nghề, mà một số Tester cũng tự xem nhẹ công việc của mình, dẫn đến việc:
1. Không đầu tư thời gian để trau dồi kiến thức, phát triển nghề nghiệp.
2. Không dành hết trách nhiệm cho công việc, ảnh hưởng xấu tới chất lượng sản phẩm.
-
Ngày càng có nhiều người học trái ngành muốn làm Tester mà không hề chuẩn bị các kiến thức cơ bản về lập trình, kiểm thử.
Dĩ nhiên, nếu muốn, ai cũng có thể bắt đầu công việc Tester ở mức thấp nhất, cơ bản nhất. Song, nếu không nỗ lực gấp 2-3 lần, các bạn sẽ không thể đi xa hơn được những Tester có nền tảng kiến thức về IT.
-
Đẩy mối quan hệ Tester – Developer trở nên căng thẳng
Việc so sánh mức độ công việc giữa Tester – Developer gây ảnh hưởng xấu đến tinh thần của nhóm và gián tiếp ảnh hưởng đến chất lượng sản phẩm.
Dev dễ có tâm lý “cứ code vậy đi, Tester phát hiện lỗi thì sửa sau”. Đây là sai lầm nguy hiểm vì trên thực tế, không Tester nào có thể tìm thấy 100% lỗi của chương trình.
-
Nhiều tester thay đổi nghề nghiệp: Họ có nền tảng kiến thức kỹ thuật tốt lại có tố chất của một Tester giỏi nhưng có thể từ bỏ công việc kiểm thử vì “làm tester nghe không ‘oách’ bằng Developer”, cảm giác không được coi trong “nhiều người cho rằng công việc của tester đơn giản” hay vì ngộ nhận là thu nhập của Tester không cao.
Nếu ai đó có quan niệm nghề Tester rất đơn giản và ai cũng có thể làm thì cần phải nhìn nhận lại. Không có công việc nào là dễ dàng nếu như mình không có đủ kỹ năng cần thiết để làm hoặc chưa bao giờ làm. Vấn đề làm tester thì dễ vì test kỹ hay không kỹ, test nhiều hay test ít đều có thể làm được nhưng quan trọng là chất lượng phần mềm. Tóm lại, làm tester dễ hay khó, đơn giản hay không thì tuỳ thuộc vào dự án, tính chất sản phẩm phần mềm và kiến thức của Tester về mảng đang làm. Có thể dễ với người này, nhưng khó với người kia. Có thể nhàm chán với người này nhưng lại thú vị với người khác.
Tham khảo: https://itviec.com/blog/nghe-tester/
All rights reserved