học tester bắt đầu như thế nào

 

Tôi viết bài này để san sớt với các bạn sinh viên có dự định làm về kiểm thử phần mềm (tester) trong mai sau, hy vọng sẽ cung cấp thêm thông tin giúp các bạn dễ dàng có được định hướng cho con đường của mình. Để giải đáp câu hỏi “Học gì để trở thành một Tester?” tôi nghĩ cần phải đi qua các ý sau:

1. Tester sẽ làm những công việc gì?

Nhìn chung công việc chính của tester là đảm bảo chất lượng của phần mềm, kiểm tra để phát hiện các lỗi đang tồn tại trước khi giao sản phẩn cho khách hàng, tùy thuộc vào dự án cũng như công ty mà vai trò của tester dự sâu đến mức nào. Tester thường chia ra làm 2 hướng chính là Manual test và Automation test.
Manual testing: đây là lựa chọn của đa số các bạn bắt đầu làm test, với chọn lọc này bạn không cần nhiều kiến thức về lập trình cũng như sẽ ít đụng vào code trong lúc làm, tuy nhiên cần phải nắm khá vừng về các định nghĩa, kỹ thuật test manual và có tư duy tìm lỗi tốt.
Automation testing: đây thường là tuyển lựa của các bạn đang làm Developer mà muốn chuyển sang làm Tester, hoặc các bạn làm manual lâu năm muốn học hỏi thêm cái gì đó mới mẻ và nâng cao trình độ của mình. Automation test có thể nói là Dev trong Test, công việc chính là sẽ viết code để thực hiện việc soát một cách tự động và đa số thời kì sẽ làm việc với code như một developer. Người làm automation sẽ không cần thiết phải nắm sâu về các tri thức test manual nhưng thay vào đó phải biết rõ về các automation tools & frameworks cũng như có thể làm việc được trên nhiều ngôn ngữ lập trình khác nhau như Java, C#, AutoIT, Python, C++ v.v, tùy theo đề nghị dự án.

Automation không phải là nâng cao của manual vì nó là hai nhánh khác nhau, cả hai đều quan trọng cũng như có độ khó cố định nếu phải học và tìm hiểu sâu. Người làm manual tốt không chắc có thể viết code được và người làm automation cũng chưa chắc sẽ có được tư duy, khả năng quan sát & tri thức kiểm thử manual nên bạn cứ chọn một hướng hiệp với khả năng và bắt đầu học, không nên tìm hiểu cùng lúc cả hai trong giai đoạn mới vào sẽ tốn rất nhiều thời gian.


2. Tester cần những tri thức gì?

– Đầu tiên, tester cũng giống như bất cứ ngành nào khác trong lĩnh vực phần mềm là cần một nền móng căn bản về máy tính. kiến thức cơ bản này bạn có thể học được trong chương trình cao đẳng, đại học. hiện giáo trình đào tạo cao đẳng, đại học về công nghệ thông tin của các trường cũng khá đầy đủ, bao quát nhiều tri thức như hệ điều hành, database, lập trình, mạng…. Những tri thức này tuy có vẻ không áp dụng được gì trong lúc học nhưng sẽ rất có ích cho việc học test và đi làm sau này, nếu bạn tập hợp học trong thời đoạn sinh viên thì sau khi ra trường việc học thêm một khóa về kiểm thử là khá nhanh và đơn giản hơn nhiều.

– Nếu bạn học ngành khác nhưng muốn chuyển sang làm test (chưa học gì nhiều về công nghệ thông báo trong trường) thì sẽ khó khăn và tốn nhiều thời gian hơn vì bạn phải học lại căn bản, cũng như sẽ bị sót nhiều kiến thức nếu chỉ đăng ký một khóa học test ngắn hạn. Nhưng nói vậy không có nghĩa là chẳng thể, cũng có nhiều bạn đang làm test và khá thành công nhưng xuất phát từ các ngành khác như sư phạm, kinh tế. Nếu bạn cũng đang học trái ngành thì có 2 bước cần thực hiện đó là dành thời gian học cách sử dụng tốt máy tính, tin học văn phòng, đọc thêm các sách căn bản về máy tính, lập trình (có thể mượn từ các bạn đang học CNTT). tuổi này sẽ tốn khoảng 3 đến 6 tháng (hoặc hơn), tuy hơi dài nhưng sẽ rất có giá trị. Tiếp theo bạn cần học thêm về các tri thức chuyên ngành testing, giai đoạn này sẽ ngắn hơn, thường là khoảng 2 đến 3 tháng, chi tiết học gì tôi sẽ nói ở phần sau.

– Tiếng Anh, cái này không liên tưởng test nhưng rất quan yếu, tiếng Anh tốt bạn có nhiều thời cơ để đậu vào các công ty hơn cũng như dễ dàng học thêm về test sau này vì tài liệu phần lớn là tiếng Anh.

Vậy tóm tắt lại, có 3 tri thức tester cần trang bị là nền tảng về máy tính + kiến thức Test căn bản + Tiếng Anh


3. Học gì để trở nên tester?

3.1. tri thức chung: (dù bạn chọn theo hướng nào thì cũng nên nắm các kiến thức này).

– kiến thức căn bản về máy tính, tin học văn phòng cơ bản, cài đặt phần mềm, dùng internet.
– kiến thức về lập trình: cơ bản SQL, HTML, CSS. Đây là 3 món tôi nghĩ rất cấp thiết khi làm test, bạn không cần phải học sâu để viết code nhưng ít nhất phải đọc hiểu được và có thể chỉnh sửa code đơn giản.
– tri thức tổng quan về test, bao gồm việc hiểu các định nghĩa cơ bản, các thuật ngữ, quy trình phát triển phần mềm, quy trình test. Bạn có thể học theo cuốn ISTQB Foundation hoặc tham khảo các mục gợi ý sau:
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ơ bản về kiểm thử phần mềm.
Why is Software Testing Important? – vì 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 thời đ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à dạng qua các thời đ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 chừng độ cao nhất.
Software Testing types: Các loại testing thư Functional testing, Non-functional testing, Structural testing, Change related testing.

3.2. Phần tri thức riêng:

Manual Test:

Đây là danh sách các tri 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 vận 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 áp 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 tri thức bên trên cũng như mở mang thêm khá nhiều tri thức hệ trọng đến test khác:

 


Automation Test:
Học thêm về lập trình: Java, C# (.Net) là hai tiếng nói cơ bản mà những người làm automation hay dùng, ngoài ra có các tiếng nói khác dùng để tương trợ như AutoIT, Python.
Học về các Automation Tool/Framework phổ quát 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:

 


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.

4. Học test ở đâu?


Có ba cách cơ bản để học test là tự học, học ở trọng điểm và học nhóm. đa số các tester thuộc đời 8x hay 9x đời đầu đều tự học mà làm vì tuổi đó testing chưa phát triển và cũng chưa có trọng 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 phần đông tester ở tuổi 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 đủ tri thức căn bản.
Thứ hai là có thể đi học ở trọng điểm hay một nhóm nào đó, các trọng 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ố trọng điể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 chủ nghĩa đến tôi để tham khảo về các trọng điểm bạn đang định học, tôi sẽ duyệt 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 giả 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 vận 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ễ thu nhận 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.

5. Tổng kết.

Trong giai đoạn mà chất lượng sẽ quyết định sự tồn vong của sản phẩm phần mềm thì tầm quan yếu của Tester càng ngày càng được nâng cao và đóng vai trò quan trọng, các dự án cũng cần nhiều tester hơn nên trong mai sau nghề test sẽ phát triển mạnh mẽ, việc định hướng và trang bị tri thức sớm từ bây chừ là rất cấp thiết. Sau khi nắm được các tri thức cơ bản, bạn hãy tìm một công ty hay một dự án nào đó để bắt đầu làm, giai đoạn này rất quan trọng vì chỉ có bắt tay vào làm bạn mới mường tưởng rõ ràng hơn các khái niệm đã đọc cũng như học thêm cái mới trong lúc làm thực tế. Hy vọng bài này sẽ cung cấp những thông tin giúp bạn có thể bắt đầu vào việc học thuận lợi hơn.

Như mọi khi, đừng ngại email đến tôi hoặc comment tại bài này nếu bạn có thắc mắc hay muốn luận bàn thêm điều gì đó trong lúc học, tôi rất vui để san sẻ.
SHARE

Milan Tomic

Hi. I’m Designer of Blog Magic. I’m CEO/Founder of ThemeXpose. I’m Creative Art Director, Web Designer, UI/UX Designer, Interaction Designer, Industrial Designer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

1 nhận xét:

  1. Hi Guys,
    What is Software Testing?
    https://softwaretestingboard.com/q2a/3379/

    Trả lờiXóa