Manual và Automation Testing vốn có nhiều điểm khác biệt, nhưng nếu làm song song cả hai công việc này một lúc, một người Tester sẽ có trải nghiệm thế nào? Câu chuyện dười đây kể về Samsam – một người trẻ gắn bó với cả hai mảng kiểm thử từ những ngày đầu tiên, cùng những khó khăn, bài học cô nhận ra trên hành trình của mình.
Mục lục
- Q: Bạn đã bắt đầu con đường làm Tester của mình như thế nào?
- Q: Bạn có thể chia sẻ thêm về quá trình học Test Automation của mình không?
- Q: Sau khi đã trải nghiệm cả Manual Test và Test Automation, bạn thích làm cái nào hơn?
- Q: Chuyển qua chuyển lại giữa Manual và Automation như thế, bạn gặp những khó khăn gì?
- Q: Bạn học được gì từ thời gian làm Manual Tester?
- Q: Còn Test Automation thì sao, bạn đã học được gì?
Q: Bạn đã bắt đầu con đường làm Tester của mình như thế nào?
A: Ban đầu mình làm Intern vị trí Test Automation ở một công ty khác chứ không phải Got It. Mình làm Intern gần 3 tháng hè thì quay lại trường học, tiếp tục làm part-time ở công ty đó đến khi làm khóa luận thì dừng hẳn.
Từ khi đang làm khoá luận, Thắng (một người bạn của Samsam và cũng là một Software Engineer ở Got It) đã giới thiệu với mình về Got It, rằng công ty đang xây dựng Test Automation. Tuy mới rất sơ khai, nhưng nếu apply (ứng tuyển) thì cũng có cơ hội phát triển sau này.
Nhưng vào thời điểm đó, Got It lại chỉ đang tuyển Tester chứ chưa thực sự có vị trí Test Automation Engineer như bây giờ. Lúc apply, mình cũng có bày tỏ nguyện vọng với các anh chị là mình muốn làm Test Automation. Nhưng lúc đấy Test Automation giống như một dự án phụ chưa thực sự lớn mạnh, vẫn đang được phát triển từ những bước đầu tiên; công ty thì đang cần QA nên mình nhảy vào làm luôn.
Ở Got It mình có được đào tạo về Test Automation, nhưng thường là vừa làm Manual vừa training chứ chưa có cơ hội nhảy hẳn sang Auto.
Q: Bạn có thể chia sẻ thêm về quá trình học Test Automation của mình không?
A: Lúc đó, mình được học một khoá online về Selenium (một công cụ để sử dụng cho Test Automation) do công ty tài trợ, cùng với một khóa training của anh Vũ (Director of Engineering) về Software Architect.
Từ đó, mình có thể dễ dàng áp dụng vào công việc của mình. Ngoài ra, anh cũng dạy một chút về Test Automation nữa. Nhưng hồi đó những khoá học cứ diễn ra rồi kết thúc vậy thôi, chứ mình cũng chưa có cơ hội thực hành.
Cứ như vậy cho đến khoảng một năm sau thì Got It mới bắt đầu tập trung làm Test Automation. Mình cũng bắt đầu có cơ hội được làm một vài tasks trong team đó. Mình thì không được đào tạo bài bản như trong team Test Automation bây giờ đâu, mà chủ yếu là học từ nhiều đầu việc nhỏ, tích góp dần trong vòng một năm.
Dù tham gia vào làm Test Automation thì công việc của mình vẫn 50:50, làm song song cả Manual và Automation. Tuy nhiên, sau khoảng hơn nửa năm tập trung rốt ráo cho kiểm thử tự động thì bây giờ, Got It lại chuyển sự tập trung về Manual.
Lí do là vì Test Automation sẽ tốn nhiều thời gian hơn. Bạn có thể hình dung nó giống như dev phải build sản phẩm, thì QA cũng phải build test cho sản phẩm ấy. Thời gian sẽ bị nhân đôi, mà nhân lực của team Testers thì lại không đủ so với Engineers. Chưa kể, Got It cũng có thêm nhiều sản phẩm khác nên mình cũng khó lòng chỉ tập trung vào Test Automation.
Q: Sau khi đã trải nghiệm cả Manual Test và Test Automation, bạn thích làm cái nào hơn?
A: Ừm… Mình thấy cả 2 cái đều có mặt lợi và mặt hại.
Làm Test Automation có một cái hay là nếu mình automate (tự động hoá) được các test case, thì sau này nếu cần chạy regression test (có một feature mới ra ảnh hưởng đến các feature cũ chẳng hạn) thì mình chỉ cần chạy lại cái test case đó và tiết kiệm được rất nhiều thời gian.
Trong khi đó, mình thấy focus vào Manual thì sẽ đi nhanh ở hiện tại, nhưng đi chậm về sau vì sẽ tốn khá nhiều thời gian để xử lí những inventory, những cái mà mình chưa làm. Tuy vậy, hướng đi nào cũng phụ thuộc vào xu hướng phát triển của công ty ở những thời điểm khác nhau.
Mặt trái của Test Auto là công việc này khá tốn thời gian, và khi mình đưa estimation (ước tính) cho PM thì họ thường không happy lắm. Ví dụ một release mình làm Manual hết 3 ngày thì Automation sẽ mất 1 tuần + 3 ngày. Mà team lại không đủ QA, rất dễ xảy ra tình trạng QA đuổi sau Dev. Như team mình hiện tại có khoảng 6-7 Dev, mọi người cứ làm hết release này đến release khác, hoàn thành phần development rồi nhưng QA vẫn còn chưa đọc xong ticket vì đang chạy sau với những release trước. Với mình, đó là cái bất lợi của Test Automation tại Got It.
Một cái nữa là Test Automation không đi sâu vào những edge case của hệ thống, vì với Test Automation mình thường chọn ra những “happy case”, những case mà gọi là “business impact flow”, có ảnh hưởng đến business.
Còn khi làm Manual Test thì mình rất hay để ý UI, UX của page. Mình cũng hay test những edge case như khi sử dụng 3G, đổi IP… thì responsive của web như thế nào. Những cái đó mình sẽ không làm được trong Test Automation vì những thao tác như refresh browser, close tab, open tab…sẽ làm test case trở nên rất dài, mà mỗi khi chạy lại thì mình không phải làm lại những thao tác ấy. Tóm lại, những test case mình cần chạy một lần thôi thì sẽ phù hợp làm Manual hơn, còn những test case phải chạy nhiều lần thì sẽ phù hợp làm Test Automation.
Điểm thứ 2 về Manual Test là mình cảm thấy làm Manual thì sẽ có cơ hội nói chuyện, tương tác với Engineers nhiều hơn. Khi test Manual ra edge case, mình thường sẽ bàn luận với các bạn Engineers để trao đổi vì sao phần này lại làm như thế. Nếu mọi người giải thích được cho mình thì mình sẽ có thêm kiến thức và càng hiểu sâu hơn về các hệ thống. Cứ như vậy, sau này mình sẽ dễ hình dung các test case có thể xảy ra hơn.
Q: Chuyển qua chuyển lại giữa Manual và Automation như thế, bạn gặp những khó khăn gì?
A: Thực ra mình thấy cũng không có khó khăn gì đâu, nó là công việc hàng ngày của mình thôi mà. Tất cả mọi người trong team QA bây giờ, trừ những người hoàn toàn làm Manual, thì ai cũng chuyển qua chuyển lại như thế.
Q: Bạn học được gì từ thời gian làm Manual Tester?
A: Thứ nhất, đó là kỹ năng test, phải có kỹ năng test Manual thì mình mới có thể implement Test Automation được. Bởi căn bản của Test Automation là tự động hoá những thao tác thủ công, nên nếu có kỹ năng Manual, mình sẽ biết sử dụng những công cụ gì để test nhanh hơn.
Thứ hai, mình cũng có thêm kiến thức về web, cách web hoạt động như thế nào. Thứ ba, lúc làm Manual, mình cũng học được nhiều về sản phẩm, về những function (tính năng) trên sản phẩm nữa. Ví dụ, khi được PM đưa cho requirement, mình sẽ hiểu rằng nó có những ý nghĩa riêng. Bởi các bạn ấy đã nghiên cứu được là những feature này sẽ thúc đẩy một phần nào đó của sản phẩm, nên khi mình làm release, đọc ticket cũng hiểu rõ hơn vì sao lại làm những tính năng như vậy.
Q: Còn Test Automation thì sao, bạn đã học được gì?
A: Mình học được về data structure và algorithm, từ đó mà logical thinking của mình cũng được cải thiện đáng kể. Khi viết code, mình cần rèn luyện tư duy rất nhiều, bởi nếu code không được viết theo một cấu trúc rõ ràng, thì sau này nó sẽ rất dễ bị rối tung lên và khó để dùng lại. Trong code thì mọi người hay nhắc về khái niệm clean code, nghĩa là code làm sao cho sạch, để người làm sau sẽ không phải hỏi nhiều và mình nhìn lại thì cũng dễ hiểu.
Mình còn học về SQL nữa, vì làm tester thì cũng cần phải biết kiến thức về SQL để query những cái mình cần trong database, từ đó xác thực một featue nào đó. Mình học thêm những kiến thức ấy, rồi tìm cách cải thiện dần dần và áp dụng vào công việc thường ngày.
Q: Như vậy, làm Manual hay Automation Tester đều có ưu, nhược điểm riêng của nó và chúng ta cần biết áp dụng mỗi loại kiểm thử đúng cách tuỳ mục đích và thời điểm phải không nào? Cảm ơn Samsam đã chia sẻ câu chuyện của bạn và chúc bạn sẽ thành công với những dự định sắp tới của mình!
Nếu bạn muốn gia nhập team Testing của Got It, đừng ngần ngại apply tại:
- Test Engineer: bit.ly/gotit-test
- Test Lead: bit.ly/gotit-testlead
- Technical Product Manager: bit.ly/gotit-tpm
- Others: bit.ly/goti-hanoi