Khi đã nắm vững các kiến thức cơ bản, hãy tìm một công ty hoặc dự án để bắt đầu thực hành. Đây là giai đoạn rất quan trọng, vì chỉ khi bắt tay vào làm, bạn mới hiểu rõ hơn các khái niệm đã học, đồng thời học hỏi thêm những kiến thức mới từ thực tế. Hy vọng bài viết này sẽ cung cấp những thông tin hữu ích, giúp bạn bắt đầu hành trình học tập và làm việc với Python một cách thuận lợi hơn.
Tester sẽ làm những công việc gì?
Công việc chính của tester là đảm bảo chất lượng phần mềm bằng cách kiểm tra và phát hiện lỗi trước khi sản phẩm được giao cho khách hàng. Vai trò của tester có thể tham gia sâu hay không tùy thuộc vào dự án và công ty. Tester thường được chia thành hai hướng chính: Manual Test và Automation Test.
Manual Testing
Đây là lựa chọn phổ biến cho những người mới bắt đầu làm tester. Với hướng này, bạn không cần nhiều kiến thức về lập trình và sẽ ít phải làm việc với code. Tuy nhiên, bạn cần nắm vững các định nghĩa và kỹ thuật kiểm thử manual, đồng thời có tư duy tìm lỗi tốt để đảm bảo hiệu quả công việc.
Automation Testing
Automation Testing thường là lựa chọn của những lập trình viên muốn chuyển sang làm tester hoặc những người làm manual test lâu năm muốn nâng cao kỹ năng và khám phá điều mới. Công việc chính của automation tester là viết code để tự động hóa các quy trình kiểm tra, sử dụng các công cụ và framework chuyên dụng. Phần lớn thời gian sẽ làm việc với code như một lập trình viên.
Người làm automation cần nắm rõ về các công cụ và framework tự động hóa, cũng như có khả năng làm việc với nhiều ngôn ngữ lập trình như Java, C#, Python, AutoIT, C++,… tùy thuộc vào yêu cầu của dự án.
Manual Test vs Automation Test
Automation không phải là phiên bản nâng cao của manual test; đây là hai nhánh khác nhau với vai trò quan trọng và những thách thức riêng.
- Người làm manual test giỏi không chắc có thể viết code để tự động hóa.
- Người làm automation test cũng chưa chắc có đủ khả năng quan sát, tư duy và kiến thức kiểm thử chuyên sâu của manual test.
Do đó, hãy chọn một hướng phù hợp với khả năng của bạn và tập trung học hỏi. Không nên cố gắng học cả hai hướng cùng lúc khi mới bắt đầu, vì điều này sẽ khiến bạn mất nhiều thời gian và khó đạt hiệu quả.
Tester cần những kiến thức gì?
- Nền tảng căn bản về máy tính
- Giống như các ngành khác trong lĩnh vực phần mềm, Tester cần một nền tảng vững chắc về máy tính. Những kiến thức cơ bản này thường được giảng dạy trong các chương trình cao đẳng hoặc đại học về công nghệ thông tin, bao gồm:
- Hệ điều hành
- Cơ sở dữ liệu
- Lập trình
- Mạng máy tính
- Dù lúc học, các kiến thức này có thể chưa thấy ứng dụng rõ ràng, nhưng chúng sẽ rất hữu ích khi bạn bắt đầu học kiểm thử và làm việc thực tế. Nếu đã tập trung học tốt trong giai đoạn sinh viên, việc bổ sung thêm một khóa học về kiểm thử sẽ trở nên nhanh chóng và dễ dàng.
- Giống như các ngành khác trong lĩnh vực phần mềm, Tester cần một nền tảng vững chắc về máy tính. Những kiến thức cơ bản này thường được giảng dạy trong các chương trình cao đẳng hoặc đại học về công nghệ thông tin, bao gồm:
- Chuyển ngành sang Tester
- Nếu bạn xuất phát từ ngành khác (không học về công nghệ thông tin), việc chuyển sang Tester có thể gặp nhiều khó khăn hơn. Bạn sẽ cần học lại các kiến thức cơ bản, và việc chỉ tham gia một khóa học kiểm thử ngắn hạn có thể khiến bạn thiếu sót nhiều kiến thức nền tảng.
- Tuy nhiên, điều này không có nghĩa là không thể. Đã có nhiều người thành công trong ngành này dù xuất phát từ các lĩnh vực như sư phạm, kinh tế. Nếu bạn học trái ngành, hãy thực hiện hai bước sau:
- Bước 1: Học sử dụng máy tính thành thạo, nắm vững tin học văn phòng, đọc các sách cơ bản về máy tính và lập trình (có thể mượn từ bạn bè học CNTT). Giai đoạn này mất khoảng 3-6 tháng (hoặc hơn).
- Bước 2: Học thêm các kiến thức chuyên sâu về kiểm thử. Giai đoạn này ngắn hơn, thường từ 2-3 tháng.
- Tiếng Anh
- Dù không phải kiến thức chuyên môn, nhưng tiếng Anh rất quan trọng trong ngành Tester.
- Tiếng Anh tốt không chỉ giúp bạn dễ dàng tiếp cận các tài liệu chuyên môn (vì đa số tài liệu về kiểm thử là tiếng Anh) mà còn mở rộng cơ hội làm việc tại các công ty lớn hoặc đa quốc gia.
Học gì để trở thành tester?
Kiến thức chung:
Để trở thành một Tester, bạn cần trang bị những kiến thức sau:
- Kiến thức cơ bản về máy tính
- Biết sử dụng máy tính thành thạo, thao tác tốt với các phần mềm văn phòng, biết cách cài đặt và gỡ bỏ phần mềm, cũng như sử dụng internet hiệu quả để tìm kiếm thông tin.
- Kiến thức lập trình cơ bản
- Hiểu những kiến thức nền tảng về SQL, HTML và CSS. Đây là những kỹ năng quan trọng, không cần học quá sâu để lập trình nhưng bạn nên biết cách đọc hiểu và thực hiện các chỉnh sửa đơn giản trong mã nguồn.
- Kiến thức tổng quan về kiểm thử phần mềm
- Nắm vững các khái niệm và thuật ngữ cơ bản trong kiểm thử.
- Hiểu quy trình phát triển phần mềm (SDLC) và quy trình kiểm thử (STLC).
- Làm quen với cách lập kế hoạch, viết test case, thực hiện kiểm thử, và báo cáo lỗi.
Bạn có thể tham khảo tài liệu chuẩn như cuốn ISTQB Foundation hoặc các hướng dẫn kiểm thử phần mềm khác dưới đây để bổ sung kiến thức chi tiết hơn:
- What is Software Testing? – Tìm hiểu phần này để biết được testing là gì? các định nghĩa, khái niệm căn bản về kiểm thử phần mềm.
- Why is Software Testing Important? – Tại sao testing lại quan trọng và cần thiết? nếu không có tester thì sản phẩm sẽ ra sao?
- Software Development life cycle: Vòng đời phát triển phần mềm, vị trí của testing trong các giai đoạn phát triển sản phẩm.
- Software Test life cycle: Vòng đời của kiểm thử, thứ tự các công việc kiểm thử.
- Defect Life Cycle: Vòng đởi của lỗi và trạng thái qua các giai đoạn.
- Quality Assurance vs. Quality control, Verification vs Validation: Phân biêt sự giống nhau và khác nhau giữa một số khái niệm.
- Software Testing Levels: Các mức độ trong kiểm thử, đi từ nhỏ nhất đến các mức độ cao nhất.
- Software Testing types: Các loại testing thư Functional testing, Non-functional testing, Structural testing, Change related testing.
Phần kiến thức riêng:
Manual Test:Đây là danh sách các kiến thức bạn nên tìm hiểu sâu thêm nếu sẽ làm test theo hướng manual.
- Create a Test Plan: Các thành phần cần có trong một test plan cơ bản, cách viết test plan.
- Design Test case: Cách tạo và viết một testcase thông dụng.
- Test Design Techniques: Các kỹ thuật thiết kế testcase, giúp cho testcase hiệu quả và tối ưu hơn.
- Test reporting, Daily status reports – cách viết report để báo cáo kết quả test của mình.
- Defect management: Finding defects, Logging defects, Tracking and managing defects – Học cách report & quản lý một bug cũng như sử dụng tools tracking thông dụng như Jira, Mantis, Bugzilla, Application Lifecycle Management (ALM).
- Mobile application testing (iOS, Android, Windows Phone): Cách cài đặt và test ứng dụng mobile, cách giả lập thiết bị điện thoại trên máy tính.
- Windows, Website testing & Tools support: Cách test một ứng dụng desktop, một trang web và giả lập các trình duyệt khác nhau trên máy tính.
- Risk based testing process and implementation: Đánh giá rủi ro trong kiểm thử, đây là phần nâng cao nhưng cũng nên tìm hiểu qua.
- Coding: SQL, HTML, CSS.
Một số trang để tự học các kiến thức về manual testing căn bản, các trang này cung cấp đầy đủ các kiến thức bên trên cũng như mở rộng thêm khá nhiều kiến thức liên quan đến test khác:
- Software Testing Tutorial – Guru99
- Software Testing Tutorial – Tutorials Point
- Software Testing Class
- Software Testing Help
- W3Schools (HTML, CSS)
- SQL Tutorial – W3Schools
- SQL Tutorial – TutorialsPoint
Automation Test:
- Học thêm về lập trình: Java, C# (.Net) là hai ngôn ngữ căn bản mà những người làm automation hay sử dụng, ngoài ra có các ngôn ngữ khác dùng để hỗ trợ như AutoIT, Python.
- Học về các Automation Tool/Framework phổ biến như: Ranorex, Selenium, Appium, TestComplete.
- Các Tools khác như: Jmeter, SoapUI.
Các địa chỉ học về Automation & Lập trình:
- Selenium User Guide
- Selenium Tutorials – Guru99
- Selenium Training Tutorials – Software Testing Help
- Ranorex User Guide
- Jmeter
- SoapUI
- Java2S
- Python tutorial – TutorialsPoint
- C# Tutorial – TutorialsPoint
Nếu chưa biết nên bắt đầu từ đâu tôi gợi ý là bắt đầu vơi bộ tools Selenium (thường dùng Java) hoặc Ranorex (C# hoặc .Net nói chung). Với Selenium (miễn phí) bạn có thể làm được automation cho website còn Ranorex thì có thể làm được trên website, mobile application và desktop application nhưng có tốn phí khá cao.
Học test ở đâu?
- Có ba cách cơ bản để học test là tự học, học ở trung tâm và học nhóm. Đa số các tester thuộc thế hệ 8x hay 9x đời đầu đều tự học mà làm vì giai đoạn đó testing chưa phát triển và cũng chưa có trung tâm chuyên đào tạo, các trường đại học cũng chưa đưa vào chương trình dạy. Nhưng tôi thấy đa số tester ở giai đoạn này thường xuất thân từ CNTT nên việc tự học và học thêm về test cũng khá nhanh. Để tự học test bạn có thể vào các nguồn tôi cung cấp ở phần bên trên, nó khá đầy đủ kiến thức căn bản.
- Thứ hai là có thể đi học ở trung tâm hay một nhóm nào đó, các trung tâm thường có các khóa đào tạo ngắn hạn trong khoảng 3 tháng đỗ lại, một số trung tâm thì có chương trình dài hơn nhưng thường không quá 6 tháng. Tôi tự học và chưa trải nghiệm qua trung tâm nào nên cũng không rõ chất lượng ở những nơi đó, nhưng tôi cũng rất vui lòng nếu bạn gởi email cá nhân đến tôi để tham khảo về các trung tâm bạn đang định học, tôi sẽ thông qua một số mối quan hệ và bạn bè để hỏi giúp ban chất lượng của những nơi đó.
- Ngoài ra còn một cách học khác là học nhóm, dạy kèm test, cách này tôi đang áp dụng ở một vài nhóm và thấy khá hiệu quả vì nó vừa linh động về thời gian và số lượng học viên thường giới hạn ít nên sẽ dễ tiếp thu hơn, thời gian học khoảng 1 đến 2 tháng. Nếu bạn quan tâm đến những khóa học này cũng có thể email đến tôi, khi nào bắt đầu khóa mới về testing căn bản tôi sẽ cho bạn biết.
Tổng kết.
Trong thời đại mà chất lượng phần mềm quyết định sự sống còn của sản phẩm, vai trò của Tester ngày càng được coi trọng. Tester không chỉ đảm bảo sản phẩm hoạt động tốt mà còn đóng góp quan trọng vào sự thành công của dự án. Với nhu cầu ngày càng cao về nhân lực kiểm thử, nghề Tester hứa hẹn sẽ phát triển mạnh mẽ trong tương lai. Vì vậy, định hướng và trang bị kiến thức từ sớm là bước đi cần thiết để nắm bắt cơ hội trong lĩnh vực này.