Nội dung bài viết
Bạn đang tìm kiếm một lộ trình trở thành Automation Tester thì bài viết này rất phù hợp với bạn. 😎
Mình sẽ giúp các bạn trả lời các câu hỏi:
- Cần học những gì để trở thành 1 Automation Tester?
- Muốn chuyển từ Manual Tester qua Automation Tester thì nên bắt đầu từ đâu?
- Cần nghiên cứu những gì để làm tốt công việc của 1 Automation Tester?
Đây là những kinh nghiệm mình chia sẻ dưới góc nhìn cá nhân của bản thân sau 8 năm (2014 – 2022) làm việc trong vai trò của Manual/ Automation Tester. Bài viết không những đi sâu vào từng phần technical mà còn định hướng giúp bạn làm sao để tiếp cận với nguồn kiến thức và cách học tiết kiệm thời gian nhất – đi đúng con đường mà mình đã chọn. Mọi đóng góp/ chia sẻ vui lòng comment dưới bài viết để xây dựng một lộ trình đầy đủ/ tiết kiệm thời gian và hoàn thiện hơn cho Automation Tester.
Khoa học máy tính
- Như các bạn đều biết thì để đi cao đi xa hơn trong bất kì một ngành nghề nào thì cần phải xây dựng nền tảng/ nền móng thật vững chắc trước khi tìm hiểu về công nghệ/ tool. Thực tế thì nhiều bạn trái ngành học các khóa học về testing cơ bản trong vài tháng rồi đi làm mà không có kiến thức nền Khoa học máy tính rất khó để phát triển
- Chưa kể khi làm việc dự án/ công ty thì các kiến thức này sẽ va chạm/ sử dụng hàng ngày – không ai rảnh để có thể chỉ bạn từng chút một về các kiến thức quá cơ bản. Nếu các bạn là người trái ngành thì nên dành thời gian vào buổi tối hoặc cuối tuần để học hỏi thêm các kiến thức nền tảng hàng ngày để tích lũy dần
- Các kiến thức nền cần nắm
- Phần cứng máy tính
- CPU
- Main
- RAM/ ROM
- Storage: HDD/ SSD
- Input/ Output Device
- Phần mềm máy tính
- Phần mềm hệ thống
- Hệ điều hành: Windows/ MAC/ Linux
- Phần mềm ứng dụng
- Phần mềm tiện ích
- Mạng máy tính và truyền thông
- Các loại mạng LAN/ WAN/ GAN
- Các loại cáp kết nối
- Các thiết bị mạng phổ biến: Router/ Switch/ Firewall
- Cách thức giao tiếp và truyền tải
- Phần cứng máy tính
Testing Mindset
- Testing Techniques: Phân tích giá trị biên/ phân vùng tương đương/ biểu đồ kết quả/ Đoán lỗi/… là gì?
- Phân biệt và nắm rõ Black/ White/ Grey Box testing
- Phân biệt và nắm rõ Functional/ Non-Functional testing
- Nắm rõ quy trình/ vòng đời kiểm thử phần mềm (STLC)
- Nắm rõ quy trình/ vòng đời phát triển phần mềm (SDLC)
- Các mô hình V/ Waterfall/ Scrum/ Kanban
- Nắm rõ các Level của testing: Unit/ Intergration/ System/ Acceptance testing
- Các tool quản lí dự án/ quản lí bug/ quản lí testcase/ report: Jira/ Zephyr/ TestLink/ TestRail
- Tại sao phải trang bị những kiến thức này, bởi vì một Automation Tester sẽ không design được đúng/ đủ tất cả những cases mà mình cần nếu không nắm chắc những mindset này – trong trường hợp bạn phải ôm xô cả vai trò của manual tester hoặc phải design testcase trước khi thực hiện scripting
Web Application
- Các kiến thức nền cần tìm hiểu trong mảng lập trình Web
- HTML/ CSS/ JS
- Web Browser
- SPA/ PWA
- Domain
- Hosting
- Mô hình Client/ Server
- Responsive
- CMS: WordPress/ Joomla/ Magento/..
- Public IP/ Private IP/ Localhost
- DNS/ ISP/ VPS
- Web Server/ Mail Server/ File Server
- JS Framework: Angular/ React/ VueJS/ Redux
- Các bạn cần phải nắm được quy trình xây dựng lên một trang Web như thế nào hoặc cách thức User thao tác trên trang Web và Server phản hồi thông tin ra sao
Ngôn ngữ lập trình
- Để làm tốt và phát triển công việc của một người Automation Tester thì các bạn phải thành ít nhất một ngôn ngữ lập trình thông dụng – có thể chọn bất kì một ngôn ngữ nào để tiếp cận trước tiên
- Java/ C#/ Python/ Ruby/ Javascript/..
- Lời khuyên của mình thì nên chọn ngôn ngữ nào mà thị trường/ công ty đang có xu hướng thịnh hành và phổ biến – vì điều quan trọng nhất của việc học xong phải có nơi để áp dụng, tránh việc học mà không dùng kiến thức sẽ mai một đi theo thời gian
- Kiến thức nền về lập trình
- Command Line/ Shell Script/ Bash Script
- IDE/ Editor phổ biến: Eclipse/ IntelliJ/ Visual Code/..
- Cú pháp cơ bản của ngôn ngữ
- Convention
- Kiểu dữ liệu
- Toán tử/ biểu thức điều kiện/ vòng lặp
- Nắm vững cách sử dụng hàm/ khởi tạo lớp/ kế thừa/ đa hình/ trừu tượng/ đóng gói (OOP)
- Nắm vững việc xử lí ngoại lệ/ viết hàm dùng chung cho Automation Framework
- Nắm vững cách sử dụng nền tảng Collection
- Sử dụng được 1 số Design Pattern trong việc triển khai Automation Framework
Automation Testing
- Automation Testing Level (Pyramid) và các tool/ thư viện sử dụng cho mỗi level – ai sẽ là người thực hiện trong mỗi level
- Unit Test
- Intergration Test
- UI Test
- Automation Testing Tools
- Tool nào có phí: TestComplete/ Test Telerik/ Katalon Enterprise/..
- Tool nào open source:
- Selenium/ Appium/ JMeter/ Robot framework/..
- Cypress/ TestProject/ Playwright/ WebDriverIO/ Chimps/ Puppeteer/ Protractor/ NightwatchJS/..
- Khi nào sẽ dùng loại nào và loại dự án nào phù hợp
- Automation Testing Framework
- Java: TestNG/ JUnit/ AssertJ
- C#: xUnit/ MSTest/ NUnit/ Specflow
- Javascript: Mocha/ Jasmine/ Chai/..
- Python: PyTest/ Behave
- Ruby: RSpec
- Typescript: tsUnit
- Automation Testing Framework Types
- Linear: Record – Playback (Selenium IDE/ Katalon Recorder/ Katalon Studio/ Test Architect/ Test Complete/ ..)
- Moduler: Page Object Model Pattern
- Data Driven: Data Test (Excel/ Csv/ Json/ Properties/ Xml/…)
- Keyword Driven: Locator + Data Test + Keyword building (Action) -> Save in external file (Excel/ Json)
- Hybrid: Moduler + Data Driven + Keyword (Pattern Object)
- Behavior: BDD (Cucumber-JVM/ Specflow/ JBehave/ Cucumber-JS/ Cucumber-Ruby/ Behave [Python]…)
- Automation Testing Strategy/ Process
- Define các tiêu chuẩn/ mục tiêu để làm automation test cho dự án
- Chọn chức năng/ module cần làm
- Estimate: Case nào nên làm/ ko nên làm
- Chọn công nghệ/ tool/ framework
- Scripting/ Design/ Run/ Fix
- Maintain/ Refactor script
- Release testscript
- Schedule script/ job
- Automation Testing Plan
- Overview
- Scope
- Resource/ Roles
- ROI
- Planning
- Environment
- Execution
- Risk
- Report
Web UI Automation
- Nắm rõ về HTML và Xpath
- Vô cùng quan trọng: việc nhận dạng đúng đối tượng cần thao tác sẽ tăng sự ổn định và độ chính xác của testscript.
- Nguồn:
- Sử dụng thành thạo thư viện của Selenium WebDriver
- Nguồn:
- Phần này khá là quan trọng trong thời điểm hiện tại, Selenium được sử dụng tại hầu hết các công ty có làm automation (open source, dễ sử dụng, cộng đồng lớn).
- Sử dụng thành thạo ít nhất 1 framework testing
- Việc sử dụng thành thạo sẽ giúp bạn rất nhiều trong việc build framework, hỗ trợ trong việc phân nhóm, quản lí testscript, report, prepare data/ environment/ browsers.
- Nguồn:
- Thành thạo việc áp dụng Page Object Model pattern
- Hầu hết những framework nổi tiếng hiện nay đều kế thừa ý tưởng từ pattern này nên việc bạn sử dụng thành thạo POM sẽ không khó khi tiếp cận một công nghệ/ framework mới.
- Nguồn:
- Sau khi build thành công framework, apply vào một dự án thực tế bất kì để kiểm nghiệm
- Tìm hiểu về Software Design Pattern
- Mục đích để build framework/ common library
- Nguồn:
- Kĩ năng về Coding/ IDE
- Debug, coding convention, source version control (GIT, SVN,..)
- Cách sử dụng IDE: Visual Studio, Eclipse, IntelliJ,..
- Làm việc với Database
- Hầu hết dự án phần mềm nào cũng có thao tác với DB, nắm vững kiến thức về truy vấn, verify data, ràng buộc dữ liệu,.. sẽ giúp bạn rất nhiều trong công việc hàng ngày của Automation Tester
- Học hỏi công nghệ mới trong mảng automation testing
- Build tools: Gradle, Maven,..
- CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker, ..
- Cloud: AWS, Saucelab, Browserstack, Testingbot,..
- BDD: Cucumber, Serenity, Specflow,…
- Mobile: Appium, Perfector,..
Mobile UI Automation
API Automation
Continuous Integration
Tham khảo
- Course online:
- Pluralsight
- Udemy
- LinkedIn Learning
- Linux Academy
Chúc các bạn thành công!