Một sự thật là kiểm thử tự động luôn là mục tiêu nhắm tới của mọi kiểm thử viên phần mềm. Hầu hết chúng ta đều muốn trở thành kiểm thử viên tự động – automation tester. Nhưng chỉ một vài người trong chúng ta thành công với nó. Bài viết hôm nay, mình sẽ đưa ra một số lời khuyên về kiến thức và kỹ năng cần thiết để giúp bạn trở thành một kiểm thử viên tự động thành công mà bạn mong muốn.
Hãy bắt đầu nhé!
1. Tìm Hiểu Những Điều Cơ Bản Về Kiểm Thử Phần Mềm

Hãy bắt đầu bằng việc tìm hiểu kiến thức cơ bản về kiểm thử phần mềm. Dù mục tiêu của bạn là tập trung vào công việc Automation Testing, thì việc tìm hiểu về Manual Testing vẫn rất quan trọng và hữu ích. Một số kiến thức bạn nên tập trung khi học về những điều cơ bản trong kiểm thử phần mềm như:
- Kiểm tra tính logic của kịch bản kiểm thử: Kiểm thử thủ công giúp bạn có cái nhìn tổng quan về logic của các kịch bản kiểm thử. Bằng cách hiểu rõ về kiểm thử thủ công, bạn có thể đảm bảo rằng các kịch bản tự động của bạn đang kiểm tra đúng logic và chức năng.
- Xác định ca kiểm thử phù hợp: Khi bạn hiểu về kiểm thử thủ công, bạn có khả năng tìm ra các ca kiểm thử quan trọng và phù hợp để tự động hóa. Điều này giúp bạn xây dựng một bộ kiểm thử tự động mạnh mẽ và hiệu quả hơn.
- Hiểu về quy trình kiểm thử: Kiểm thử tự động thường được áp dụng sau khi kiểm thử thủ công hoàn thành. Hiểu về quy trình kiểm thử thủ công sẽ giúp bạn hiểu rõ hơn về bước chuẩn bị, thiết kế và thực hiện các ca kiểm thử.
- Hiểu về người dùng cuối: Kiểm thử thủ công thường liên quan đến tương tác trực tiếp với người dùng cuối. Bằng cách hiểu rõ về quy trình kiểm thử thủ công, bạn có thể đưa ra được cái nhìn chính xác hơn về trải nghiệm người dùng và đảm bảo rằng kiểm thử tự động đáp ứng được các yêu cầu của người dùng.
- Gỡ rối và phân tích lỗi: Trong quá trình kiểm thử tự động, bạn sẽ gặp các lỗi và cần phải gỡ rối. Hiểu về kiểm thử thủ công sẽ giúp bạn phân tích nguyên nhân lỗi và tìm ra các bước để xác nhận và tái tạo lỗi.
Kiểm thử tự động không là gì khác ngoài một nhánh của kiểm thử – một hình thức sử dụng cách tiếp cận ‘công nghệ’ hơn một chút để thực hiện kiểm thử. Việc biết những những kiếm thức xung quanh những gì bạn đang kiểm thử và tại sao bạn cần kiểm thử là điều tối quan trọng. Vì vậy, dù bạn đang làm công việc kiểm thử thủ công muốn học thêm về kiểm thử tự động, hay mục tiêu ban đầu và duy nhất bạn nhắm tới kiểm thử tự động, thì cũng đừng quên tìm hiểu thật kỹ về các kiến thức cơ bản này nhé.
2. Bắt Đầu Sớm
Như mình đã nói ở đầu bài viết, hầu hết kiểm thử viên đều mong muốn trở thành automation tester. Nhưng không phải ai cũng thực hiện điều đó. Chúng ta có quá nhiều lý do để trì hoãn. Từ những lý do chủ quan từ cá nhân, gia đình đến những lý do khách quan do rào cản kỹ thuật, công nghệ, cơ hội tiếp cận. Nhưng, đừng chờ đợi một dự án Automation Testing xuất hiện bạn mới bắt đầu. Như vậy đã là quá muộn.
Nếu bạn muốn trở thành kiểm thử viên tự động, hãy bắt tay vào tìm hiểu càng sớm càng tốt. Hãy xây dựng cho mình một kế hoạch thật rõ ràng và cụ thể. Chủ động tìm hiểu những kiến thức cần thiết, tự tìm kiếm cơ hội thực hành trước khi bạn tham gia vào một dự án thực tế. Có rất nhiều công cụ open source có sẵn. Hãy cài đặt một cái trên máy cá nhân của bạn và dùng thử. Sử dụng các ứng dụng chung như Gmail.com hoặc Amazon.com hoặc thậm chí là Microsoft Office hoặc máy tính cá nhân của bạn. Bất cứ điều gì, hãy bắt đầu từ cái căn bản nhất.
3. Nắm Vững Một Ngôn Ngữ Lập Trình
Bắt đầu khó hơn rồi đây! Nhưng biết làm sao, đây là chính là chìa khoá để quyết định xem bạn có phù hợp để bước vào thế giới Automation Testing hay không. Làm quen với các khái niệm viết mã cơ bản bằng bất kỳ ngôn ngữ nào bạn chọn. Bạn có thể chọn bắt đầu với bất kỳ ngôn ngữ lập trình nào. Bởi khi bạn dành thời gian để xem xét kỹ lưỡng ngôn ngữ lập trình bao gồm những gì, thì hầu hết chúng đều ít nhiều giống nhau. Bạn sẽ cần biết các kiểu dữ liệu, cách xử lý các biến và hằng, các toán tử khác nhau, câu lệnh điều kiện, câu lệnh vòng lặp, mảng, hàm, v.v..
Tuy vậy, nhưng có một số ngôn ngữ lập trình được sử dụng phổ biến hơn cho Automation Testing, bạn nên xem xét lựa chọn, bao gồm:
- Java: Java là một ngôn ngữ lập trình mạnh mẽ và phổ biến được sử dụng rộng rãi trong ngành công nghiệp phần mềm. Nó có nhiều thư viện hỗ trợ kiểm thử tự động như Selenium WebDriver và TestNG.
- Python: Python là một ngôn ngữ lập trình dễ học, có cú pháp đơn giản và độ phổ biến cao. Nó được sử dụng rộng rãi trong lĩnh vực kiểm thử tự động với các thư viện như Selenium WebDriver, PyTest và Robot Framework.
- C#: C# là một ngôn ngữ lập trình phát triển bởi Microsoft và được sử dụng chủ yếu trên nền tảng .NET. C# hỗ trợ việc phát triển ứng dụng và kiểm thử tự động trên các nền tảng Windows, Web và di động.
- JavaScript: JavaScript là một ngôn ngữ lập trình phía client được sử dụng rộng rãi cho việc phát triển ứng dụng web. Nó cũng được sử dụng cho kiểm thử tự động với công cụ như Selenium WebDriver và Mocha.
- Ruby: Ruby là một ngôn ngữ lập trình đơn giản và dễ học, thường được sử dụng trong Framework kiểm thử tự động như Selenium WebDriver với thư viện TestUnit hoặc RSpec.
Lựa chọn ngôn ngữ lập trình còn phụ thuộc vào môi trường làm việc, yêu cầu dự án và sự ưu tiên cá nhân. Điều quan trọng là chọn ngôn ngữ mà bạn cảm thấy thoải mái làm việc và có sự hỗ trợ tốt cho công cụ và framework kiểm thử tự động mà bạn dự định sử dụng.
4. Vượt Qua Những ‘Khó Khăn Khi Bắt Đầu’
“Vạn sự khởi đầu nan” nhưng “Gian nan đừng có nản”. =))
Bài kiểm tra đầu tiên bạn viết sẽ rất khó hiểu dù cho bạn có đọc kỹ chủ đề đó đến đâu. Nó chắc sẽ làm bạn choáng ngợp. Nhưng đừng lo lắng. Hãy nghĩ về nó như thể bạn đang dịch bài kiểm tra thủ công của mình sang một phương tiện khác không phải tiếng Anh.
Người mới bắt đầu rất dễ nhìn vào một bài kiểm thử hoặc chương trình tự động hóa và nghĩ rằng nó có vẻ rất kỹ thuật và bạn sẽ không bao giờ có thể hiểu nó, càng không thể viết một cái gì đó như thế. Đừng lo lắng; đó là điều tự nhiên.
Ví dụ: nếu bạn muốn nhập giá trị tên người dùng vào trang đăng nhập Gmail.com. Câu lệnh mà bạn sẽ viết trong trường hợp kiểm thử thủ công của mình là gì?
Nó trông sẽ thế này: Nhập “testviewpoint” vào trường “Tên người dùng” trong trang Gmail.com.
Khi bạn dịch nó sang VBScript để trở thành một câu lệnh trong bài kiểm thử QTP của bạn, nó sẽ là:
“Browser("Gmail: Email from Google").page("Gmail: Email from Google").
WebEdit("Email").Set “testviewpoint””.
Bạn thấy đấy, không có nhiều khác biệt. Chỉ có cách mà bạn đang tham khảo nơi nhập tên người dùng được thực hiện khác.
Vì mỗi bước kiểm tra tự động hóa được thực hiện bởi máy thay vì con người, bạn chỉ cần đảm bảo rằng bạn viết hướng dẫn (test steps) rõ ràng nhất có thể.
Thay vì chỉ nói nhập giá trị, bạn thực sự đang cung cấp tên chính xác của các đối tượng trên trang do nhà phát triển đặt tên cho chúng. Khi bạn có thể nắm bắt được bản dịch này, việc tự động hóa trở nên dễ dàng.
5. Học Qua Quan Sát – Sử Dụng Tệp Trợ Giúp Trong Mỗi Công Cụ
Automation Testing không dừng lại ở việc bạn biết rõ về một ngôn ngữ lập trình. Việc quan trọng tiếp theo là học cách sử dụng các công cụ hỗ trợ trong kiểm thử phần mềm tự động. Một cách rất hay mà mình hay làm bất cứ khi nào phải làm việc với một công cụ mới. Mọi công cụ được tung ra thị trường, bất kể mạnh mẽ về mặt kỹ thuật đến đâu, đều cố gắng thân thiện với người dùng. Vì vậy, tất cả các tính năng của công cụ sẽ có thể truy cập được từ menu.
Đây là những gì mình làm – Bắt đầu từ file tùy chọn menu và tiếp tục cho đến khi đến phần Trợ giúp và cố gắng xem chiếu lệ từng mục trong mỗi menu-submenu item. Hầu hết các tên sẽ đại diện cho chức năng của tùy chọn đó. Nhưng trong trường hợp bạn cần thêm thông tin, chỉ cần nhấp vào mục đó và xem.
Nếu bạn vẫn cần thêm thông tin, hãy sử dụng tệp trợ giúp (file Help). Bằng cách này, bạn không phải đợi ai đó cung cấp kiến thức về công cụ cho mình. Bạn đang tự làm quen với công cụ và IDE theo cách của mình. Nó giúp bạn đánh giá những gì sẽ hữu ích cho bạn và những gì không.
Nhiều người trong chúng ta tìm kiếm các hướng dẫn và diễn đàn trực tuyến để bắt đầu. Mặc dù tất cả chúng đều tuyệt vời, nhưng không có gì sánh được với các tệp trợ giúp đi kèm với công cụ. Đó là kho báu lớn nhất của bạn. Nó mô tả mọi thứ mà công cụ có thể làm được. Vì vậy, hãy coi mọi chương trình tự động hóa mà bạn viết như một bài kiểm tra mở sách. Cuốn sách đang mở là tệp trợ giúp. Biến đó thành điểm đến đầu tiên của bạn bất cứ khi nào bạn bị lạc.
6. Thực Hành

Hãy kiên nhẫn với chính mình và thực hành viết mã thường xuyên. Hãy nhớ rằng kiểm thử là xác minh và xác nhận. Để viết các bài kiểm tra theo cách mà mỗi bài kiểm tra đều có tiêu chí đạt và không đạt được xác định rõ ràng. Đảm bảo rằng chương trình của bạn sẽ có thể xác định rõ ràng và trình bày kết quả là đạt hoặc không đạt. Dưới đây là một số lời khuyên khi bạn thực hành trong quá trình học về Automation Testing:
- Lựa chọn một dự án để thực hành: Thực hành trên một dự án thực tế sẽ giúp bạn áp dụng kiến thức vào tình huống thực tế và hiểu rõ hơn về quy trình kiểm thử tự động. Thật tuyệt vời nếu bạn được làm trong một dự án thực sự. Nhưng nếu bạn đang học và chưa có cơ hội làm dự án thật cũng không sao. Hãy tìm cho mình một dự án mẫu hoặc sử dụng một trang web hoặc ứng dụng thực tế để thực hành.
- Bắt đầu với các kịch bản đơn giản: Bạn nên bắt đầu với các kịch bản kiểm thử đơn giản và sau đó dần dần tăng độ phức tạp. Điều này giúp bạn hiểu rõ cách làm việc của các công cụ và framework kiểm thử tự động, cũng như xác định các vấn đề và thách thức có thể xảy ra trong quá trình kiểm thử tự động.
- Hiểu rõ yêu cầu kiểm thử: Trước khi bắt đầu kiểm thử tự động, hãy đảm bảo bạn hiểu rõ yêu cầu kiểm thử và kịch bản kiểm thử. Điều này giúp bạn xác định các trường hợp kiểm thử cần thiết và tạo ra các test case phù hợp.
- Sử dụng version control: Sử dụng hệ thống quản lý phiên bản – version control như Git giúp bạn theo dõi các thay đổi trong mã nguồn và quản lý các phiên bản của script kiểm thử. Điều này giúp bạn dễ dàng phục hồi hoặc chia sẻ lại các phiên bản kiểm thử.
- Tạo bộ kiểm thử tái sử dụng: Cố gắng tạo ra các bộ kiểm thử tái sử dụng, trong đó bạn có thể sử dụng lại các đoạn mã và kịch bản kiểm thử. Điều này giúp tiết kiệm thời gian và công sức trong việc phát triển các kịch bản kiểm thử mới và duy trì các bộ kiểm thử hiện có.
- Kiểm tra và gỡ lỗi: Kiểm tra kỹ lưỡng và gỡ lỗi các script kiểm thử của bạn. Đảm bảo rằng các script hoạt động chính xác và tương tác đúng với các yếu tố kiểm thử. Sử dụng các công cụ gỡ lỗi và đặt các điểm ngừng – breakpoints để theo dõi và kiểm tra giá trị biến và luồng điều khiển của script.
7. Cập Nhật Kiến Thức Và Học Tập Liên Tục
Sau khi bạn giải quyết vấn đề và viết chương trình, hãy nghĩ cách bạn có thể làm cho nó tốt hơn.
Bạn có thể làm cho nó dễ đọc hơn? Bạn có thể đạt được kết quả với ít dòng mã hơn không? Bạn có thể sử dụng lại một số thành phần không? Bạn có thể tránh sử dụng nhiều biến như bạn đã làm không? Bộ nhớ chương trình của bạn có hiệu quả không? Bạn có thể làm cho nó chạy nhanh hơn không? – Đây là một số câu hỏi mà bạn cần ghi nhớ và hướng tới.
Một cách hay để học hỏi là tham gia vào các cộng đồng và diễn đàn Automation Testing. Bạn có thể học hỏi từ những người khác, chia sẻ kinh nghiệm và giải đáp thắc mắc. Bạn cũng có thể tham gia các khóa học trực tuyến hoặc nhóm học tập để tiếp thu kiến thức mới và nắm bắt xu hướng mới nhất trong lĩnh vực Automation Testing.
Nhớ rằng kiểm thử tự động là một quá trình liên tục và bạn cần liên tục nâng cao kỹ năng của mình thông qua thực hành và học hỏi.
8. Kỹ Năng Làm Việc Nhóm Và Giao Tiếp Tốt
Kỹ năng giao tiếp làm việc nhóm và giao tiếp tốt là yêu cầu tối quan trọng đối với Automation Tester nói riêng và kỹ sư kiểm thử phần mềm nói chung. Bởi góp phần quan trọng và sự đảm bảo hiệu quả và thành công đối với quá trình kiểm thử trong dự án phần mềm.
Automation Testing thường được thực hiện trong một dự án phần mềm lớn và phức tạp, với sự tham gia của nhiều thành viên trong nhóm. Kỹ năng làm việc nhóm giúp bạn tương tác và cộng tác hiệu quả với các thành viên khác trong nhóm, bao gồm những người phát triển, kiểm thử viên và quản lý dự án. Việc làm việc nhóm tốt giúp đảm bảo rằng công việc kiểm thử tự động được thực hiện một cách hợp nhất và đồng bộ với các hoạt động khác trong dự án.
Kỹ năng giao tiếp và làm việc nhóm cho phép bạn thảo luận và chia sẻ ý kiến, đề xuất cải tiến và tham gia vào quy trình kiểm thử tự động. Bằng cách đóng góp ý kiến và tham gia vào quy trình, bạn có thể tăng cường chất lượng kiểm thử tự động và đạt được hiệu quả tốt hơn trong công việc.
Automation Tester cần có kỹ năng giao tiếp để báo cáo kết quả kiểm thử cho các thành viên khác trong dự án. Việc trình bày kết quả kiểm thử một cách rõ ràng và chi tiết giúp các thành viên khác hiểu được tình trạng và chất lượng của ứng dụng. Ngoài ra, việc chia sẻ kiến thức và kinh nghiệm trong lĩnh vực kiểm thử tự động cũng đóng vai trò quan trọng trong việc xây dựng cộng đồng kiến thức và tăng cường động lực trong nhóm.
Kết Luận
Tóm lại, để trở thành một Automation Tester thành công, hãy xây dựng và hoàn thiện những kỹ năng cần thiết, và luôn tiếp tục học hỏi, nâng cao kiến thức và kỹ năng của mình trong lĩnh vực kiểm thử tự động. Mình hy vọng bài viết này đã giúp các bạn phần nào trả lời được những câu hỏi thắc mắc về yêu cầu cần có đối với một kỹ sư kiểm thử phần mềm tự động.
Cám ơn các bạn đã đón đọc.
Happy Testing!