Automation Test là gì? Khi nào nên sử dụng Automation Test?

automation-test-la-gi

“Mục đích của Tester là tìm bug, nhưng vẫn hỗ trợ cho mục đích cuối cùng là làm sản phẩm tốt hơn, chứ không phải là chỉ trích, đánh giá Developer.”

Đọc bài phỏng vấn của ITviec với anh Trương Minh Sử Nhiên – Senior Automation Tester của KMS Technology – để khám phá :

  • Automation Test là gì? Khi nào nên sử dụng Automation Test?
  • Sai lầm mắc phải trong sự nghiệp Automation Tester và cách anh vượt qua
  • 6 kỹ năng cần thiết cho mọi Tester + cách rèn luyện
  • 3 lời khuyên thực tế cho các Tester trẻ cải thiện ngay hôm nay

Xem việc làm Automation Tester tại ITviec

Sự khác nhau giữa Manual Test và Automation Test là gì ạ?

Lúc trước, hình thức test ứng dụng thông dụng là Manual Test ( kiểm tra thủ công bằng tay ). Ví dụ để test form log in, một Manual Tester sẽ tự nhập tay username, password, click “ log in ”, xem hiệu quả đăng nhập thành công xuất sắc hay không .
Khi có sự đổi khác về giao diện hay tính năng thì Tester phải test lại những case đã từng làm để bảo vệ không có thêm bug mới. Quá trình này mất khá nhiều thời hạn và sức lực lao động .
Khi khái niệm Automation Test ( kiểm tra tự động hóa ) sinh ra, Tester chỉ cần viết một đoạn code hoặc sử dụng 1 số ít công cụ như Selenium, Test Complete, Jmetter … để chạy tự động hóa tổng thể những bước gồm có nhập thông tin, click, kiểm tra hiệu quả, so sánh tác dụng thực tiễn với hiệu quả giả định .
Nhiều loại test hoàn toàn có thể làm auto, ví dụ như functional testing, performance / load testing, unit testing .

Ưu điểm và nhược điểm của Automation Test so với Manual Test là gì?

Ưu điểm của Automation Test là :

1) Đáng tin cậy. Test chạy chính xác theo quy trình đã định sẵn. vì vậy tránh được nhiều lỗi do con người tạo ra, ví dụ như nhập sai dữ liệu.

2) Mình có thể test cách phần mềm xử lý (tính năng/hiệu năng) khi gặp tình huống chạy lặp đi lặp lại nhiều lần (cùng lúc) trên cùng script test. Đây còn gọi là performance/load testing.

3) Mình có thể lập trình nhiều test tinh vi hơn để thu về những thông tin ẩn từ ứng dụng. Ở điểm này thì Manual Test không thể làm được.

4) Test mang tính toàn diện cao. Mình có thể tạo ra một bộ test để bao quát hết tất cả tính năng trong ứng dụng.

5) Mình có thể tái sử dụng test trên nhiều phiên bản khác nhau của ứng dụng, ngay cả khi có sự thay đổi giao diện.

Ví dụ như khi sản xuất ứng dụng, tất cả chúng ta cần lần lượt test mẫu sản phẩm ở nhiều thiên nhiên và môi trường : 1 ) môi trường tự nhiên test, 2 ) môi trường tự nhiên beta, 3 ) môi trường tự nhiên production .
Nếu chạy Manual Test thì một test case mất một tiếng, ba môi trường tự nhiên tốn ba tiếng. Mà trong suốt quy trình tăng trưởng loại sản phẩm, tất cả chúng ta phải lặp lại quy trình test vô số lần, dẫn đến mất thời hạn nếu làm Manual Test. Thay vào đó, chỉ cần viết một script test thì mỗi lần deploy lên môi trường tự nhiên mới, mình chỉ cần đổi khác URL là test tự chạy được .

6) Chất lượng và hiệu suất phần mềm tốt hơn bởi vì mình có thể chạy nhiều test trong thời gian ngắn hơn với ít resource nhất.

7) Automation Testing Tools giúp chạy test nhanh hơn test bằng tay.

8) Có tính kinh  tế cao vì có thể giảm thiểu nguồn nhân lực làm kiểm tra hồi quy.

Nhược điểm của Automation Test là :

1) Nhiều tool có chi phí rất cao, ví dụ như commercial tool: HP Quick Test Pro.

2) Thường thì lương trả cho Automation Tester nhiều hơn Manual Tester, vì công việc đòi hỏi họ có kỹ năng cao hơn, ví dụ như phải biết code, phải viết được script.

3) Chi phí để phát triển và bảo trì test script cao. Ví dụ một test case nếu Manual Test thì mất 1 tiếng. Nhưng nếu đổi sang chạy Automation Test, cần chuẩn bị test script (mà trong trường hợp khó) thì phải mất 6-7 tiếng để viết test script. Người viết test script cần có kỹ năng lập trình và tool để chạy test. Vì vậy chi phí cho Automation Test cao hơn Manual Test.

4) Đòi hỏi Tester phải có kinh nghiệm technical và kỹ năng lập trình.

5) Đòi hỏi thời gian chuẩn bị dài hơn để thiết kế, cài đặt kỹ càng trước khi cần đưa dự án đi test.

6) Có những dự án không nên chạy Automation Test, nhưng nhiều Tester vẫn hiểu nhầm và chạy Automation Test, dẫn đến mất thời gian, resource, công sức. Ví dụ như khi test một chức năng quá phức tạp của một ứng dụng hoặc một GUI object thì phải chạy Manual Test.

Công việc, trách nhiệm thường ngày của anh là gì?

Với vị trí Automation Tester Architect, anh xác lập những tính năng của Automation Testing Framework, tương hỗ tăng trưởng Framework để làm Automation Test .

Điểm cộng và điểm trừ của công việc Automation Tester là gì ạ?

Điểm cộng của nghề này là nó giúp anh nâng cao kiến thức và kỹ năng nghiên cứu và phân tích yếu tố và kỹ năng và kiến thức quản trị sự cố. Còn điểm trừ là lúc đầu, anh hay vướng vào tranh cãi với team development về những bug mà anh tìm ra .
Kỹ năng nghiên cứu và phân tích yếu tố và kiến thức và kỹ năng quản trị sự cố được nâng cao là do khi làm một test plan để test log-in form, anh phải xác lập toàn bộ những trường hợp hoàn toàn có thể xảy ra, như thể :

1 ) nếu nhập sai username hoặc password thì thế nào
2 ) nếu sai một trong hai trường đó thì sao
3 ) nếu nhập ký tự đặc biệt quan trọng thì sao …

automation-test-la-gi-2

Vì sao anh lại chọn trở thành Automation Tester thay vì Manual Tester hay Developer?

Từ năm 2004, anh được tiếp cận với Automation Test, sử dụng công cụ IBM Rational Robot. Anh thấy thích và anh nhìn nhận Automation Test là xu thế tốt, có tiềm năng tăng trưởng cho nghề Tester .
Vì vậy, anh tự điều tra và nghiên cứu và thiết kế xây dựng nhiều Automation Testing Framework dựa trên Rational Robot, HP QTP / UFT, Selenium WebDriver, Test Complete, cũng như mở màn sự nghiệp với vị trí Automation Tester .

Anh nhận định xu hướng testing trong tương lai như thế nào?

Vài năm trở lại đây, vị trí Automation Tester đang là vị trí hot của tuyển dụng, từ những vị trí sâu xa về tăng trưởng tool / framework / library đến những bạn hoàn toàn có thể viết được script dựa trên một công cụ Automation Test nào đó .
Vì vậy, anh nghĩ Automation Test đang và sẽ là xu thế chung của ngành Tester .

Sai lầm lớn nhất anh từng mắc phải là gì? Anh vượt qua thế nào và anh học được gì từ nó?

Hai năm trước, khi đàm phán kiến thiết xây dựng một Automation Testing Framework cho người mua, anh cố đưa ra estimation rất thấp để kiếm được điểm cho công ty, rồi thao tác một mình để hoàn thành xong dự án Bất Động Sản đó, vì anh nghĩ những thành viên khác trong nhóm không chuyên về code nên nếu họ tham gia sẽ kéo quá trình việc làm xuống. Anh liên tục ngủ lại công ty để cố triển khai xong quy trình tiến độ đúng thỏa thuận hợp tác .
Cuối cùng, dự án Bất Động Sản hoàn thành xong, được nhìn nhận cao từ phía người mua và công ty. Tuy nhiên từ đó, anh bị stress trầm trọng và gần như muốn xin nghỉ việc. Anh đi gặp Manager của mình và san sẻ thì nhận được lời khuyên :

Em nên san sẻ việc làm cho người khác. Dù em làm chỉ cần 1 giờ, so với việc cho những thành viên khác hoàn toàn có thể mất 5-6 giờ, em vẫn phải giao, vì team tăng trưởng đồng đều mới bền vững và kiên cố .

Từ đó, mỗi lần đàm phán với người mua, anh đều dựa trên nền tảng năng lực chung của team .
Ngoài ra, anh cũng có những buổi san sẻ kinh nghiệm tay nghề để khuyến khích đồng đội điều tra và nghiên cứu nhiều hơn về những công nghệ tiên tiến, kiến thức và kỹ năng thiết yếu của một người Automation Tester .
Điều này giúp đồng đội cảm thấy được tin cậy giao việc, được khuyến khích cùng nhau tăng trưởng. Anh cũng không cảm thấy áp lực đè nén nặng nề nữa .

Một thử thách mà mọi Automation Tester nào khi vào nghề cũng gặp phải là gì?

Thử thách chính là tiếp xúc với Developer. Khi mới vào nghề, tìm được bug, anh chỉ nói với Developer là ‘ tôi thấy có lỗi ở chỗ này, kia, nọ, anh sửa đi ’ .
Lúc đó anh liên tục dính vào tranh cãi với developer vì

1 ) anh không chỉ ra cụ thể lỗi đó là gì, bị lỗi ngay bước nào
2 ) thái độ khi thao tác với Developer của anh không mang tính tích cực kiến thiết xây dựng loại sản phẩm, và lại hơi có phần chỉ trích và nhìn nhận Developer

Sau này, khi được cấp trên hướng dẫn, mỗi khi tìm thấy bug, anh đều tiếp xúc với Developer theo trình tự thế này :
1 ) Tóm lược yếu tố

2) Chỉ ra các bước cụ thể trong quy trình test của mình

3 ) Giải thích đơn cử là nó xảy ra lỗi gì
4 ) Nêu tác dụng mong đợi
5 ) Cho Developer thấy hình ảnh screenshot bug mà mình tìm được
Anh nhận ra rằng mối quan hệ giữa Tester và Developer là quan hệ tương hỗ lẫn nhau. Mục đích của Tester là tìm bug, nhưng vẫn tương hỗ cho mục tiêu ở đầu cuối là làm loại sản phẩm tốt hơn. Không nên chỉ trích hay nhìn nhận Developer .

Xem thêm : Nghề Tester ở Nước Ta khổ vì định kiến

Những kỹ năng nào là cần thiết dành cho một Automation Tester?

1) Hiểu nguyên lý nhận dạng test objects. Nếu làm Web Automation Test cần nắm rõ HTML và XPath. Bạn có thể học hai mảng này ở W3School.

2) Hiểu nguyên lý lập trình, và thành thạo ít nhất một ngôn ngữ lập trình. Web Automation Engine được dùng phổ biến ở thị trường hiện nay là Selenium WebDriver, có kết hợp cho các ngôn ngữ Java, C#, Ruby, Python…

Ngoài ra những bạn hoàn toàn có thể tìm hiểu thêm thêm những ngôn từ scripting phổ cập như VBScript, JavaScript hoặc Groovy nếu cần .

3) Không bỏ qua SQL và XML. Hai mảng này bạn có thể học tại TutorialsPoint và W3School.

Đa số những dự án Bất Động Sản lập trình đều cần có cơ sở tài liệu. XML được hiểu như một phần của portal database và SML cũng được sử dụng khá nhiều lúc bấy giờ .

4) Những bạn muốn đi sâu vào thiết kế tốt framework/common library thì nên tìm hiểu sâu về software design pattern.

5) Làm Automation Tester là liên quan đến coding nên các bạn cần quan tâm đến những kỹ năng của code như debug, source version control, coding convention, unit testing… Tìm kiếm các từ khoá này trên Google là thấy ngay tài liệu.

6) Nên ham học hỏi những cái mới trong chuyên môn.

Ví dụ, xu thế Automation Test và software development hiện tại là kỹ thuật tích hợp ( integration ). Đó là một chuỗi khép kín, tương tác giữa development, deploy và test. Anh đang nghiên cứu và điều tra kỹ thuật này vì nó là khuynh hướng chung, không học hỏi sẽ bị tụt hậu .

automation-test-la-gi-3

3 lời khuyên anh dành cho các bạn Automation Tester trẻ để các bạn có thể thực hành ngay và cải thiện bản thân mình?

1) Phải xác nhận thông tin cẩn thận với khách hàng.

Có một lần, khi người mua đưa nhu yếu mới cho Automation Framework anh đang đảm trách. Mọi thứ trao đổi qua Skype, và dù mỗi tuần, anh báo cáo giải trình rất đầy đủ việc đã làm xong – đang làm – sẽ làm và vướng mắc nếu có, nhưng đến khi chuyển giao loại sản phẩm, họ nói ‘ đó không phải là cái chúng tôi muốn. ’
Từ đó anh rút ra bài học kinh nghiệm là mỗi khi trao đổi với người mua, mình đều phải viết meeting minutes. Sau đó, gửi cho người mua và nhu yếu họ vấn đáp xác nhận email. Điều này giúp tránh xảy ra yếu tố hiểu nhầm hoặc người mua chối bỏ những nhu yếu mà họ đưa ra trước đó .

2) Không được bảo thủ.

Do có nhiều kinh nghiệm tay nghề về tạo Automation Testing Framework, nên có một lần, người mua đưa ra đề xuất cho anh .

Để tốt hơn cho người sử dụng, framework nên tương hỗ việc bắt những test object bằng nhãn. Những chữ hiện thấy ( visible text ) trên web page thay vì bắt người dùng phải tìm thông tin mang tính kỹ thuật như XPath .

Nghĩ mình có nhiều kinh nghiệm tay nghề trong việc bắt XPath, anh nỗ lực bảo vệ quan điểm của mình và thuyết phục người mua rằng như vậy là không đúng chuẩn + mất nhiều thời hạn giải quyết và xử lý .
Nhưng sau một thời hạn trao đổi + tâm lý, anh thấy cách của người mua là một hướng đi mới cũng rất khả quan .
Dù có nhiều khó khăn vất vả, nhưng mình nên tìm cách xử lý thay vì bác bỏ ngay từ đầu .
Cuối cùng, anh quyết định hành động làm theo nhu yếu của người mua, và dự án Bất Động Sản đó thành công xuất sắc .

3) Tư vấn không có nghĩa là quyết định.

Có lần anh thao tác với một người mua Mỹ, và xảy ra tranh luận về quan điểm. Họ muốn anh làm cách A, nhưng với kinh nghiệm tay nghề của mình, anh biết đó không phải là lựa chọn tốt, anh thuyết phục họ làm theo cách B của anh .
Cuộc tranh luận ngày càng nóng bức và sếp anh kịp thời can thiệp. Sếp chỉ cho anh biết rằng : là người tư vấn, anh nên chỉ cho người mua biết họ có những lựa chọn nào, thuận tiện – khó khăn vất vả của từng lựa chọn .
Rồi người mua mới là người quyết định hành động chọn cái nào và chính họ chịu nghĩa vụ và trách nhiệm về sự lựa chọn đó .
Cuối cùng, anh làm theo cách A của người mua. Nhưng sau khi chạy dự án Bất Động Sản một thời hạn, họ nhận ra cách của họ không tương thích nên họ nhu yếu chuyển sang làm cách B của anh .
Cuối cùng, dự án Bất Động Sản phát sinh thêm một số ít ngân sách. Nhưng người mua hiểu yếu tố là do họ chọn sai cách nên họ sẵn lòng trả thêm. Dự án vẫn thành công xuất sắc .

Trong suốt sự nghiệp của mình, anh có thường xuyên tham khảo sách/ resource nào không?

Anh có tìm hiểu thêm hai quyển sách .
1 ) Automated Testing Handbook. Quyển sách này miêu tả rõ ràng và rất đầy đủ những đặc thù chính và những tính năng tìm kiếm trong một bộ kiểm tra tự động hóa .
2 ) Experiences Of Test Automation. Những cách tiếp cận yếu tố tương thích, những ứng dụng nào hoàn toàn có thể vận dụng Automation Test, và Automation Test biến hóa như thế nào. Đây là ba yếu tố trọng điểm được bao quát trong quyển sách này .

Một bạn nếu chọn phát triển sự nghiệp theo định hướng Tester thì bạn đó sẽ có những hướng phát triển nào?

Trường ĐH ít khi dạy kiến thức và kỹ năng testing để trở thành Tester. Thông thường những bạn phải tham gia một chương trình đạo tạo thời gian ngắn. Ví dụ như Launch Program ở KMS Technology để chuẩn bị sẵn sàng bước vào nghề Tester .
Từ Junior Tester, những bạn hoàn toàn có thể tăng trưởng lên Senior Tester. Rồi từ đó có hai hướng chính cho bạn tăng trưởng .
1 ) Đi theo hướng quản trị, tức là bạn thăng quan tiến chức lên làm Tester Lead, sau đó là Tester Manager .
2 ) Đi theo hướng kỹ thuật, giống như anh, hiện tại anh là Tester Architect .

Tiểu sử:

Sau khi tốt nghiệp Đại Học Cần Thơ năm 2003 chuyên ngành CNTT, anh Nhiên lên Tp. HCM làm khoảng chừng 1 năm cho Đại Học Bách Khoa ở vị trí Software Developer .
Trong 2 năm tiếp theo, anh làm Software Tester Leader tại Global CyberSoft .
5 năm sau đó, anh công tác làm việc ở Ndex Technologies lần lượt ở vị trí QC Leader và QC Manager .
Anh làm Software Department Manager trong 1 năm tiếp theo. 1 năm sau đó anh làm Automation Tester Leader tại Sunrise Software Solutions Corporation .
Trong 1 năm tiếp theo, anh liên tục công tác làm việc tại vị trí Automation Tester Leader tại COSATECH .
Bắt đầu từ tháng 5 năm năm ngoái, anh khởi đầu thao tác tại KMS Technology ở vị trí Senior Automation Tester .

Xem thêm các việc làm Automation Tester tại ITviec

Robby2Robby2

Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp thì đừng ngại nhấn nút Share bên dưới nhé!

P.S. Thỉnh thoảng, anh Nhiên tổ chức triển khai thêm những lớp dạy Automation Test dành cho những bạn Manual Tester muốn chuyển hướng sự nghiệp sang làm Automation Tester, chính do lúc bấy giờ chưa có trường học chính quy nào dạy về yếu tố này. Đến hiện tại anh đã dạy được 4-5 lớp. Bạn nào có nhu yếu học thì hoàn toàn có thể liên hệ anh qua email [email protected].