Kỹ năng quan trọng cần có của một automation tester
Từ hồi mới bắt đầu đi làm, vị trí của mình là manual tester, ngày đấy cũng chỉ biết chút chút khái niệm về manual test với automation test. Nhưng cũng chẳng hiểu rõ nó như thế nào, chỉ ngộ nhận là automation test thì nó dùng tool thế thôi.
Hai trong những automation tools mà mình biết lúc đó là HP Quick test pro, và Selenium. Mà với cả hai tool ấy thì cũng chỉ biết đến mỗi nhóm tính năng record – play back thôi xong rồi cứ nghĩ là nó có đến vậy.
Thế rồi, sau gần hai năm làm manual, trăn trở nhiều về công việc hiện tại, và nghĩ rằng nếu 10 năm sau mà cũng làm như thế này thì sẽ ra sao? Nếu không thì sẽ dẫn đến đâu, mình sẽ làm gì? Đúng lúc ấy thì tình cờ nhờ có một anh chàng đẹp zai, anh ấy đã gửi cho mình một link có thông tin về một lớp học Selenium basic để tham khảo và cân nhắc việc tham gia thử xem sao. Từ ngày đấy đến giờ ấy thế mà cũng đã hơn một năm rồi.
Từ một manual tester chính thống, mình nghĩ đến việc sẽ làm quen thử với automation test, và đã bắt đầu với lớp học basic ấy.
Sau khi được giới thiệu và học một vài buổi làm quen ban đầu với automation, mình nghĩ rằng, các kỹ năng của một automation tester cần có chắc chắn phải bao gồm những yếu tố dưới đây:
- Phải cao siêu về các Web element như XPATH và CSS
- Phải biết và làm đươc JUNIT cho các script giống code unit test mà đội dev thường làm đó
- Về các hệ quản trị cơ sở dữ liệu các câu lệnh truy vấn
- Biết lập trình, các kỹ năng về lập trình
- Sử dụng được một vài ngôn ngữ lập trình nào đó
- Nắm được một vài automation framework
- Hiểu biết về Page – object – model
- …
Nhưng trong cả tá những thứ đó, thì kỹ năng nào là quan trọng nhất?!
Bây giờ cũng không hẳn là đã có nhiều kinh nghiêm làm về automation nhưng mình vẫn nghĩ là bản thân vẫn cần phải có các kiến thức, kỹ năng trên, không cần quá cao siêu nhưng ít nhất phải nắm được những thứ cơ bản của từng cái, hiểu được bản chất của nó.
Và Theo mình, cái quan trong hơn cả chính là kỹ năng lập trình. Còn những cái khác sẽ là những điều kiện đủ để bổ trợ cho mình trong quá trình làm việc mà thôi.
Tại sao kỹ năng lập trình lại là điều quan trọng nhất?
- Automation test là viết các script để run các scenario tương tác với ứng dụng. Ngoài việc để cho nó có thể chạy được, bạn còn phải làm để có thể bảo trì nâng cấp một cách dễ dàng nhất, thích ứng với sự thay đổi của những lần release, sao cho code của bạn phải sửa ít nhất.
- Có kỹ năng lập trình tốt bạn có thể giải quyết vấn đề liên quan đến technical một cách tối ưu hơn, hiệu năng code tối ưu hơn.
- Project automation của bạn cũng cần phải có tổ chức một cách khoa học, áp dụng các kỹ thuật giống như việc đội dev đã xây dựng lên sản phẩm đó. Ngoại trừ mục đích của hai người khác nhau: một bên xây dựng sản phẩm, một bên là kiểm tra sản phẩm hoạt động đúng yêu cầu hay chưa mà thôi.
- Có kỹ năng lập trình tốt giúp bạn tiếp cận và ứng dụng các automation framework tốt hơn, hiệu quả hơn.
- Với kỹ năng lập trình tốt bạn có thể tiếp thu các công nghệ mới một cách nhanh chóng, có thể xác định và đưa vào áp dụng một cách dễ dàng cho project mà không phải gặp quá nhiều khó khăn.
- Có kỹ năng lập trình và tư duy lập trình tốt bạn sẽ không bị ảnh hưởng và quá phụ thuộc vào một ngôn ngữ lập trình nào đó. Tuy nhiên, thì mình cũng nên lựa chọn một ngôn ngữ lập trình và đầu tư thời gian để phát triển sâu hơn, chứ đừng tham mà học nhiều nhưng lại chẳng chuyên sâu về cái gì cả. Ngôn ngữ lập trình có thể thay đổi, nhưng tư duy nền tảng của nó thì cũng gần như tương đương nhau, nên cũng không cần quá lo lắng.
Kỹ năng lập trình chính là yếu tố cốt lõi để bạn có thể xây dựng và giải quyết các bài toán trong atuomation project một cách hiệu quả.
Java và Selenium là cặp đôi được sử dụng rất phổ biến hiện nay, rất nhiều các tài liệu, diễn đàn hay các cuốn sách hướng dẫn đang sử dụng.
Để luyện tập và phát triển kỹ năng lập trình, hãy bắt đầu từ những script đơn giản trong và nâng cao dần độ khó, lặp lại nhiều nhiều và nhiều lần. Hoặc thực hành với một project nho nhỏ, bạn sẽ gặp được nhiều vấn đề hơn, đòi hỏi bạn phải giải quyết chúng, làm nhiều rồi đến khi bạn sẽ tích lũy được nhiều kinh nghiệm giải quyết các vấn đề.
Xem thêm nhiều việc làm Tester lương cao trên TopDev
Sẽ có những lúc bạn sẽ gặp phải những vấn đề rất rối rem, bạn chẳng biết làm thế nào, lúc đó phải thật kiên trì và bình tĩnh, đào bới google và tìm đến sự giúp đỡ của một anh code nào đó, kiểu gì cũng phải xong. Đến lúc làm được rồi, mặc dù chỉ nhỏ thôi nhưng chắc chắn bạn sẽ biết được một cảm giác vô cùng phiêu!!!
Vì bản thân mình, cũng đã từng trải qua cảm giác như vậy cũng khá nhiều lần rồi. Cho đến lúc xong, nhiều lần mình còn tự trách dễ như thế mà làm ko ra được, hay tại sao lúc đấy mình lại làm như vậy được nhỉ?
Từ những lần ấy, bản thân bạn sẽ cảm thấy như được tiếp thêm động lực để cố gắng hơn nữa, làm nhiều hơn nữa. Không chỉ để test mà còn để tạo ra những thứ giúp bạn giảm các công việc tay chân của mình đi nữa cơ.
Hi vọng rằng đây cũng sẽ là động lực để bản thân mình khi gặp khó khăn có thể mạnh mẽ vượt qua. Hay có bạn nào mà muốn từ manual nhảy qua có thể xác định được tư tưởng để rồi phấn đấu.
Bài viết dựa theo quan điểm cá nhân và ngẫu hứng, nếu có gì góp ý các bạn có thể để lại comment cho mình ở phía dưới nhé!
Bài viết gốc được đăng tải tại vananhtooo.wordpress.com
Có thể bạn quan tâm:
- Unit Testing trong phát triển phần mềm hiện đại
- Kinh Nghiệm Phỏng Vấn Tester Thành Công Được Áp Dụng Nhiều Nhất
- Tổng hợp các công cụ kiểm thử chức năng cho web
Đừng bỏ lỡ Việc làm Developer hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS