[Sưu tầm] 100 từ viết tắt mà Tester nên biết
Có rất nhiều từ viết tắt được sử dụng trong phát triển phần mềm. Những bạn tester mới bước vào nghề, sẽ bị “đứng hình” khi thấy mọi người trao đổi với nhau bằng những câu như:
- “API này đã qua SIT chưa?”
- “QA đang chuẩn bị UAT.”
- “Dữ liệu được lấy từ DB.”
Nếu không hiểu các từ viết tắt này, việc nắm bắt nội dung cuộc trao đổi, thảo luận, và khi đọc tài liệu bạn sẽ gặp nhiều khó khăn.
Vì vậy, mình bắt đầu chuỗi “100 từ viết tắt mà mọi tester nên biết”. Bài viết sẽ giới thiệu 100 từ thông dụng nhất, kèm ý nghĩa ngắn gọn và dễ nhớ. 100 từ viết tắt này liên quan đến phát triển phần mềm và sử dụng trong công nghệ thông tin, không bao gồm những từ thông thường như dm = direct message, WDYT = what do you think?
1. API
Application Programming Interface: Giao diện lập trình ứng dụng, cho phép các phần mềm hoặc hệ thống giao tiếp và trao đổi dữ liệu với nhau. Đây là cách mà các phần mềm giao tiếp với nhau.
2. UI
User Interface: Giao diện người dùng, bao gồm màn hình, nút bấm, biểu mẫu và các thành phần mà người dùng tương tác với phần mềm/ hệ thống. Đây là cách mà con người giao tiếp với phần mềm.
3. UX
User Experience: Trải nghiệm của người dùng khi sử dụng sản phẩm, bao gồm mức độ dễ sử dụng, thuận tiện và hài lòng.
4. QA
Quality Assurance: Đảm bảo chất lượng thông qua việc xây dựng quy trình và các hoạt động giúp phòng ngừa lỗi.
QA không chỉ là kiểm thử. Đây là khái niệm rộng hơn, bao gồm mọi hoạt động nhằm nâng cao chất lượng sản phẩm thông qua quy trình phát triển. QA liên quan đến quản lý chất lượng. Kết quả kiểm thử được sử dụng để cải tiến quy trình làm việc (bao gồm các hoạt động phát triển và kiểm thử, liên quan đến mọi vai trò trong dự án gồm DEV và PM).
5. QC
Quality Control: Kiểm soát chất lượng bằng cách đánh giá (chất lượng) sản phẩm và tìm lỗi, trong đó kiểm thử phần mềm là một hoạt động tiêu biểu. Kiểm thử là một hoạt động kiểm soát chất lượng.
Có thể hiểu đơn giản: QA giúp ngăn ngừa lỗi, còn QC giúp phát hiện lỗi.
6. UAT
User Acceptance Testing: Kiểm thử chấp nhận do người dùng hoặc đại diện khách hàng thực hiện để xác nhận hệ thống đáp ứng yêu cầu nghiệp vụ trước khi đưa vào sử dụng.
7. SIT
System Integration Testing: Kiểm thử tích hợp hệ thống nhằm xác nhận các hệ thống hoặc module hoạt động chính xác khi kết nối và trao đổi dữ liệu với nhau.
8. SDLC
Software Development Life Cycle: Vòng đời phát triển phần mềm, bao gồm các giai đoạn từ thu thập yêu cầu, thiết kế, phát triển, kiểm thử đến triển khai và bảo trì.
9. STLC
Software Testing Life Cycle: Vòng đời kiểm thử phần mềm, mô tả các hoạt động kiểm thử từ lập kế hoạch, thiết kế, thực thi đến tổng kết kiểm thử.
10. DB
Database: Cơ sở dữ liệu, nơi lưu trữ và quản lý dữ liệu của hệ thống.
chúng ta sẽ tìm hiểu những từ mà Tester thường xuyên gặp khi làm việc với Developer như JSON, XML, v.v… Đây cũng là những thuật ngữ xuất hiện rất nhiều trong các tài liệu kỹ thuật, hoặc khi làm việc với các công cụ kiểm thử API như Swagger, Postman, DevTools và trong nhật ký hệ thống.
11. SQL: Structured Query Language
Ngôn ngữ truy vấn cơ sở dữ liệu quan hệ, được sử dụng để tạo, truy vấn, cập nhật và xóa dữ liệu.
Tester nên biết các câu lệnh cơ bản như SELECT, INSERT, UPDATE, DELETE để kiểm tra dữ liệu trong Database.
12. JSON: JavaScript Object Notation
Định dạng dữ liệu phổ biến dùng để trao đổi dữ liệu giữa Client và Server, đặc biệt trong REST API.
Hầu hết các API hiện đại đều sử dụng JSON để gửi và nhận dữ liệu.
13. XML: eXtensible Markup Language
Định dạng dữ liệu có cấu trúc, từng được sử dụng rất phổ biến trong Web Service và hiện vẫn còn xuất hiện ở nhiều hệ thống doanh nghiệp.
SOAP API thường sử dụng XML.
14. HTTP: Hypertext Transfer Protocol
Giao thức truyền tải dữ liệu trên Web giữa Client và Server.
Các phương thức (Method) phổ biến gồm GET, POST, PUT, PATCH và DELETE.
15. HTTPS: Hypertext Transfer Protocol Secure
Phiên bản bảo mật của HTTP, sử dụng mã hóa TLS để bảo vệ dữ liệu truyền trên mạng.
Hiện nay gần như mọi website đều sử dụng HTTPS.
16. REST: Representational State Transfer
Một phong cách kiến trúc để xây dựng Web API.
Khi nói “REST API”, mọi người thường đang nói đến các API sử dụng HTTP để trao đổi dữ liệu (thường ở định dạng JSON).
17. SOAP: Simple Object Access Protocol
Một giao thức Web Service sử dụng XML để trao đổi dữ liệu giữa các hệ thống.
SOAP thường xuất hiện trong các hệ thống ngân hàng, bảo hiểm và doanh nghiệp lớn.
18. CRUD: Create – Read – Update – Delete
- Bốn thao tác cơ bản đối với dữ liệu:
Create – Tạo mới
Read – Đọc dữ liệu
Update – Cập nhật
Delete – Xóa dữ liệu
Đây là nhóm chức năng mà hầu như mọi ứng dụng quản lý đều có.
19. JWT: JSON Web Token
Chuẩn token dùng để xác thực và phân quyền người dùng khi gọi API.
Tester thường gặp JWT khi kiểm thử đăng nhập hoặc kiểm thử API yêu cầu Authorization.
20. CORS: Cross-Origin Resource Sharing
Cơ chế cho phép hoặc giới hạn việc một website truy cập tài nguyên từ một domain khác.
Nếu Frontend báo lỗi “CORS policy”, nguyên nhân thường không nằm ở Tester hay Frontend mà do cấu hình của Server.
21. BA: Business Analyst
Chuyên viên phân tích nghiệp vụ, người làm việc với khách hàng và các bên liên quan để thu thập, phân tích và làm rõ yêu cầu, sau đó truyền đạt lại cho nhóm phát triển.
Trong nhiều dự án, Tester thường trao đổi với BA để làm rõ yêu cầu và xác nhận các trường hợp kiểm thử.
22. PO: Product Owner
Người chịu trách nhiệm tối đa về sản phẩm, quản lý Product Backlog và quyết định mức độ ưu tiên của từng User Story.
Khi có thay đổi yêu cầu hoặc cần xác nhận giá trị nghiệp vụ, PO thường là người đưa ra quyết định cuối cùng.
23. SM: Scrum Master
Người hỗ trợ Scrum Team áp dụng Scrum đúng cách, loại bỏ các trở ngại (Impediments) và giúp nhóm cải tiến quy trình làm việc.
Scrum Master không phải là người quản lý nhóm (Team Manager).
24. DoD: Definition of Done
Bộ tiêu chí xác định khi nào một User Story hoặc Product Backlog Item được xem là hoàn thành.
Ví dụ có thể bao gồm:
- Đã lập trình xong
- Đã review code
- Unit Test đạt
- Không còn lỗi nghiêm trọng
- Đã cập nhật tài liệu
- Đã triển khai lên môi trường kiểm thử
Một Story chỉ được coi là “Done” khi đáp ứng đầy đủ Definition of Done.
25. DoR: Definition of Ready
Bộ tiêu chí xác định một User Story đã sẵn sàng để nhóm bắt đầu phát triển.
Ví dụ:
- Yêu cầu rõ ràng
- Có Acceptance Criteria
- Được ước lượng (Estimate)
- Không còn câu hỏi lớn chưa được giải đáp
DoR giúp tránh việc nhóm bắt đầu phát triển khi yêu cầu còn mơ hồ.
26. US: User Story
Một cách mô tả yêu cầu từ góc nhìn của người dùng nhằm làm rõ giá trị mà tính năng mang lại.
Một User Story thường có dạng:
As a …
I want …
So that …
Ví dụ: As a customer, I want to reset my password so that I can access my account when I forget my password.
User Story không phải là tài liệu đặc tả chi tiết. Đây chỉ là điểm khởi đầu cho các cuộc trao đổi trong nhóm.
27. AC: Acceptance Criteria
Các điều kiện mà một User Story phải đáp ứng để được chấp nhận là hoàn thành.
Ví dụ:
- Email phải đúng định dạng.
- Mật khẩu tối thiểu 8 ký tự.
- Hiển thị thông báo khi đăng nhập thành công.
Acceptance Criteria thường là cơ sở để tester dựa vào đó thiết kế test case.
28. MVP: Minimum Viable Product
Phiên bản sản phẩm tối thiểu nhưng vẫn đủ giá trị để người dùng có thể sử dụng và đưa ra phản hồi.
MVP không có nghĩa là sản phẩm chất lượng thấp, mà là chỉ xây dựng những tính năng cần thiết nhất để kiểm chứng ý tưởng.
29. POC: Proof of Concept
Một bản thử nghiệm nhằm chứng minh rằng một ý tưởng hoặc giải pháp về mặt kỹ thuật là khả thi.
Ví dụ:
- Thử tích hợp AI vào chatbot.
- Thử kết nối với một cổng thanh toán mới.
- Thử áp dụng framework mới.
POC thường được thực hiện trước khi quyết định đầu tư phát triển chính thức.
30. KPI: Key Performance Indicator
Chỉ số đánh giá hiệu quả của cá nhân, nhóm hoặc tổ chức dựa trên các mục tiêu đã đặt ra.
Ví dụ:
- Tỷ lệ lỗi bị khách hàng phát hiện.
- Thời gian xử lý Bug.
- Sprint Velocity.
- Test Automation Coverage.
- Defect Removal Efficiency.
KPI dùng để theo dõi hiệu quả công việc, không nên bị nhầm lẫn với mục tiêu của Agile. Trong Agile, mục tiêu quan trọng nhất vẫn là tạo ra giá trị cho khách hàng.
31. E2E: End-to-End Testing
Kiểm thử từ đầu đến cuối nhằm xác nhận một quy trình nghiệp vụ hoàn chỉnh hoạt động đúng trên toàn bộ hệ thống và các thành phần liên quan.
Ví dụ, với một ứng dụng thương mại điện tử, một luồng E2E có thể là:
Đăng nhập → Tìm sản phẩm → Thêm vào giỏ hàng → Thanh toán → Nhận xác nhận đơn hàng
E2E Testing không chỉ kiểm tra một chức năng riêng lẻ mà kiểm tra toàn bộ luồng từ điểm bắt đầu đến kết quả cuối cùng.
32. BVT: Build Verification Testing
Kiểm thử nhằm xác nhận một bản build mới có đủ ổn định để tiếp tục thực hiện các hoạt động kiểm thử chi tiết hơn hay không.
BVT thường tập trung vào các chức năng quan trọng và các luồng cơ bản.
Nếu BVT thất bại, team có thể quyết định không tiếp tục thực hiện các hoạt động kiểm thử sâu hơn trên build đó và yêu cầu Developer cung cấp build mới. Trong thực tế, BVT đôi khi được sử dụng gần với khái niệm Smoke Testing. Tuy nhiên, tên gọi và phạm vi có thể khác nhau tùy tổ chức và quy trình của từng dự án.
33. FAT: Factory Acceptance Testing
Kiểm thử nghiệm thu được thực hiện tại phía nhà cung cấp hoặc nơi phát triển hệ thống nhằm xác nhận sản phẩm đáp ứng các yêu cầu đã thỏa thuận trước khi được bàn giao hoặc triển khai.
FAT thường gặp trong các dự án có sự tham gia của nhà cung cấp và khách hàng, đặc biệt với các hệ thống lớn hoặc giải pháp được triển khai cho doanh nghiệp.
Có thể hiểu đơn giản: Nhà cung cấp kiểm tra và chứng minh sản phẩm đã sẵn sàng → Khách hàng nghiệm thu → Sau đó mới triển khai hoặc bàn giao.
34. SAT: Site Acceptance Testing
Kiểm thử nghiệm thu được thực hiện tại môi trường hoặc địa điểm triển khai thực tế của khách hàng nhằm xác nhận hệ thống hoạt động đúng trong điều kiện thực tế.
Nếu FAT tập trung vào việc nghiệm thu tại phía nhà cung cấp, SAT thường được thực hiện sau khi hệ thống được triển khai tại địa điểm của khách hàng.
35. PVT: Production Verification Testing
Kiểm thử xác nhận hệ thống sau khi được triển khai lên môi trường Production, nhằm đảm bảo các chức năng quan trọng hoạt động đúng trong môi trường thực tế.
PVT thường tập trung vào các kiểm tra có phạm vi nhỏ và rủi ro thấp, chẳng hạn:
- Kiểm tra hệ thống có hoạt động không.
- Kiểm tra các API quan trọng.
- Kiểm tra khả năng đăng nhập.
- Kiểm tra một số luồng nghiệp vụ chính.
- Kiểm tra kết nối với các hệ thống phụ thuộc.
PVT thường được thực hiện sau Deployment và có thể được xem là một phần của hoạt động Production Verification.
Không nên nhầm PVT với việc thực hiện toàn bộ Regression Testing trên Production.
36. TDD: Test-Driven Development
Phương pháp phát triển phần mềm trong đó Developer viết automated test trước khi viết code để triển khai chức năng.
Quy trình TDD thường được mô tả bằng chu kỳ: Red → Green → Refactor
Red: Viết test và test thất bại.
Green: Viết code tối thiểu để test thành công.
Refactor: Cải thiện code mà vẫn đảm bảo test tiếp tục Pass.
TDD chủ yếu liên quan đến Unit Testing và thường được thực hiện bởi Developer.
Tester không nhất thiết phải trực tiếp thực hiện TDD, nhưng hiểu TDD giúp Tester hiểu rõ hơn về cách Developer xây dựng và kiểm thử code.
37. BDD: Behavior-Driven Development
Phương pháp phát triển tập trung vào hành vi mong đợi của hệ thống từ góc nhìn của người dùng hoặc các bên liên quan.
BDD thường sử dụng cấu trúc: Given → When → Then
Ví dụ:
Given người dùng đang ở màn hình đăng nhập
When nhập đúng username và password
Then hệ thống đăng nhập thành công
Điểm quan trọng của BDD không chỉ nằm ở cú pháp Given–When–Then, mà còn ở việc Developer, Tester và Business cùng thống nhất hành vi mong đợi của hệ thống.
38. ATDD: Acceptance Test-Driven Development
Phương pháp phát triển trong đó các Acceptance Test được xác định trước hoặc song song với quá trình phát triển để làm rõ tiêu chí chấp nhận của tính năng.
ATDD khuyến khích sự hợp tác giữa các vai trò như: Business + Developer + Tester
Mục tiêu là thống nhất trước về: “Chúng ta cần xây dựng đúng điều gì?” và “Làm thế nào để biết rằng tính năng đã đáp ứng yêu cầu?”
Lưu ý: TDD, BDD, và ATDD là ba thuật ngữ rất dễ bị nhầm lẫn. Chúng có điểm tương đồng (đều là phương pháp tiếp cận “kiểm thử trước”) nhưng không giống nhau. Trong thực tế, ranh giới giữa BDD và ATDD có thể không hoàn toàn rõ ràng và cách áp dụng cũng phụ thuộc vào từng đội nhóm.
- TDD → Tập trung vào code và thiết kế kỹ thuật.
- BDD → Tập trung vào hành vi của hệ thống.
- ATDD → Tập trung vào tiêu chí chấp nhận và giá trị nghiệp vụ.
39. SDET: Software Development Engineer in Test
Kỹ sư phần mềm chuyên về kiểm thử, thường có năng lực lập trình và tham gia xây dựng các giải pháp kiểm thử tự động, framework, công cụ hoặc hạ tầng hỗ trợ kiểm thử.
SDET có thể tham gia vào:
- Test Automation
- Test Framework
- API Testing
- Performance Testing
- CI/CD
- Developer Tools
- Test Infrastructure
SDET không đơn giản chỉ là “Tester biết code”. Vai trò SDET thường yêu cầu tư duy và kỹ năng phát triển phần mềm ở mức cao hơn để xây dựng các giải pháp kiểm thử có khả năng mở rộng và bảo trì.
40. RCA: Root Cause Analysis
Phân tích nguyên nhân gốc nhằm xác định nguyên nhân thực sự dẫn đến một vấn đề hoặc sự cố, thay vì chỉ xử lý triệu chứng bên ngoài.
Ví dụ: Problem: Người dùng không thể thanh toán.
“Thanh toán thất bại” → Đây chỉ là hiện tượng.
“API trả về HTTP 500” → Đây có thể là một triệu chứng.
RCA cần tiếp tục tìm hiểu:
Tại sao API trả về HTTP 500?
→ Database timeout.
Tại sao Database timeout?
→ Query không được tối ưu.
Tại sao query không được tối ưu?
→ Thiếu index cho một trường dữ liệu quan trọng.
Root Cause: Thiết kế Database hoặc Query chưa phù hợp.
Với Tester, RCA không chỉ giúp tìm ra “ai gây ra bug”, mà quan trọng hơn là giúp team hiểu tại sao lỗi xảy ra và làm thế nào để ngăn lỗi tương tự tái diễn.
41. BRD: Business Requirements Document
Tài liệu mô tả các yêu cầu và nhu cầu ở góc độ nghiệp vụ của doanh nghiệp hoặc khách hàng.
BRD thường tập trung vào câu hỏi:
“Doanh nghiệp cần giải quyết vấn đề gì và muốn đạt được điều gì?”
Ví dụ, một ngân hàng có thể yêu cầu xây dựng chức năng chuyển tiền trực tuyến để giúp khách hàng thực hiện giao dịch mà không cần đến chi nhánh.
Với Tester, BRD giúp hiểu bối cảnh nghiệp vụ và mục tiêu kinh doanh phía sau một tính năng, thay vì chỉ biết tính năng đó hoạt động như thế nào.
42. SRS: Software Requirements Specification
Tài liệu đặc tả các yêu cầu của hệ thống hoặc phần mềm, mô tả hệ thống cần cung cấp những chức năng và hành vi nào.
SRS có thể bao gồm:
- Functional Requirements
- Non-functional Requirements
- Các quy tắc nghiệp vụ
- Giao diện hoặc tương tác
- Các ràng buộc của hệ thống
- Yêu cầu về hiệu năng, bảo mật
- V.v…
SRS thường là một nguồn thông tin quan trọng để Tester hiểu cần kiểm thử điều gì và xác định các điều kiện kiểm thử.
Tuy nhiên, trong các dự án Agile hiện đại, yêu cầu có thể được quản lý dưới nhiều hình thức khác nhau như User Story, Acceptance Criteria, Product Backlog thay vì một tài liệu SRS lớn và cố định.
43. FR: Functional Requirement
Yêu cầu chức năng mô tả hệ thống phải làm gì.
Ví dụ:
- Người dùng có thể đăng nhập bằng email và mật khẩu.
- Người dùng có thể tìm kiếm sản phẩm.
- Người dùng có thể thêm sản phẩm vào giỏ hàng.
- Hệ thống gửi email xác nhận sau khi đặt hàng thành công.
Khi kiểm thử FR, Tester thường tập trung vào việc xác nhận hệ thống thực hiện đúng hành vi và chức năng được yêu cầu.
44. NFR: Non-functional Requirement
Yêu cầu phi chức năng mô tả hệ thống phải hoạt động như thế nào hoặc các thuộc tính chất lượng mà hệ thống cần đáp ứng.
Ví dụ:
- Thời gian phản hồi không quá 2 giây.
- Hệ thống hỗ trợ 10.000 người dùng đồng thời.
- Dữ liệu nhạy cảm phải được mã hóa.
- Hệ thống có khả năng hoạt động liên tục.
- Ứng dụng phải dễ sử dụng.
Đây là nhóm yêu cầu rất quan trọng nhưng đôi khi bị bỏ quên.
Tester không nên chỉ hỏi: Chức năng này có hoạt động đúng không?
Mà còn cần đặt câu hỏi:
- Nó có hoạt động đủ nhanh không?
- Có an toàn không?
- Có thể chịu được tải dự kiến không?
- Có dễ sử dụng không?
45. ALM: Application Lifecycle Management
Quản lý toàn bộ vòng đời của một ứng dụng, từ khi hình thành ý tưởng, phân tích yêu cầu, phát triển, kiểm thử, triển khai đến bảo trì. Ví dụ như Jira.
ALM có thể bao gồm các hoạt động như:
Requirements → Development → Testing → Release → Maintenance
Với Tester, ALM giúp nhìn nhận kiểm thử như một phần của toàn bộ vòng đời sản phẩm, thay vì một hoạt động độc lập chỉ diễn ra sau khi Developer hoàn thành code.
Các công cụ ALM có thể hỗ trợ quản lý:
- Requirements
- Test Cases
- Defects
- Releases
- Traceability
46. SDM: Software Development Methodology
Phương pháp hoặc cách tiếp cận được sử dụng để tổ chức và quản lý quá trình phát triển phần mềm.
Ví dụ:
- Waterfall
- Agile
- Scrum
- Kanban
- DevOps
Tester cần hiểu phương pháp phát triển mà team đang sử dụng vì nó ảnh hưởng trực tiếp đến:
- Khi nào Tester tham gia?
- Khi nào kiểm thử được thực hiện?
- Cách quản lý yêu cầu như thế nào?
- Cách báo cáo lỗi ra sao?
- Khi nào sản phẩm được Release?
Cùng là hoạt động kiểm thử nhưng cách Tester làm việc trong Waterfall và Agile có thể rất khác nhau.
47. Spike
Một khoảng thời gian hoặc một công việc được thực hiện nhằm nghiên cứu, tìm hiểu hoặc thử nghiệm để giảm sự không chắc chắn trước khi quyết định cách triển khai một giải pháp.
Ví dụ, nhóm bạn muốn tích hợp một API thanh toán mới nhưng chưa biết:
- API có đáp ứng yêu cầu không?
- Có giới hạn số lượng request không?
- Có hỗ trợ tính năng cần thiết không?
- Tích hợp mất bao lâu?
- Có vấn đề kỹ thuật nào không?
Team có thể tạo một Spike (hay gọi là spike task) để nghiên cứu hoặc xây dựng một bản thử nghiệm nhỏ.
Spike thường không nhằm mục tiêu tạo ra một tính năng hoàn chỉnh. Mục tiêu chính là học hỏi và giảm rủi ro trước khi phát triển.
Tester cũng có thể tham gia Spike, đặc biệt khi cần tìm hiểu:
- Khả năng kiểm thử
- Khả năng tự động hóa
- Công cụ kiểm thử
- Khả năng quan sát hệ thống
- Rủi ro về kỹ thuật
48. CI: Continuous Integration
Tích hợp liên tục, là thực hành trong đó các thay đổi mã nguồn được tích hợp thường xuyên vào một repository chung và được kiểm tra tự động.
Một quy trình CI có thể thực hiện:
Code Commit → Build → Automated Tests → Feedback
Với Tester, CI giúp phát hiện lỗi sớm hơn thông qua việc tự động chạy các kiểm thử như:
- Unit Test
- Integration Test
- API Test
- Static Analysis
- Security Scan
CI giúp đưa hoạt động kiểm thử đến gần hơn với thời điểm Developer thay đổi code.
49. CD: Continuous Delivery / Continuous Deployment
CD có thể được hiểu theo hai nghĩa phổ biến:
Continuous Delivery
Đảm bảo phần mềm luôn ở trạng thái sẵn sàng để triển khai.
Việc triển khai phiên bản mới lên Production có thể vẫn cần một bước phê duyệt thủ công.Continuous Deployment
Các thay đổi đã vượt qua các bước kiểm tra cần thiết sẽ được tự động triển khai lên Production.
Vì vậy, Continuous Delivery ≠ Continuous Deployment. Đây là hai khái niệm liên quan nhưng không hoàn toàn giống nhau.
Với Tester, CD có thể liên quan đến:
- Automated Testing
- Quality Gates
- Test Environment
- Deployment Verification
- Release Validation
50. DevOps: Development + Operations
Một cách tiếp cận nhằm tăng cường sự hợp tác giữa các nhóm phát triển phần mềm và vận hành hệ thống, đồng thời tự động hóa và cải tiến dòng chảy từ phát triển đến triển khai và vận hành.
DevOps thường liên quan đến quá trình:
Plan → Code → Build → Test → Release → Deploy → Operate → Monitor
Tester trong môi trường DevOps không chỉ kiểm thử ở giai đoạn cuối.
Tester có thể tham gia vào nhiều hoạt động như:
- Test Automation
- CI/CD
- Quality Gates
- API Testing
- Performance Testing
- Security Testing
- Monitoring
- Observability
Điều quan trọng là chất lượng trở thành trách nhiệm của cả đội (mỗi vai trò sẽ chịu trách nhiệm cho khía cạnh chất lượng khác nhau), không phải chỉ của tester.
51. IDE: Integrated Development Environment
Môi trường phát triển tích hợp, là phần mềm cung cấp các công cụ hỗ trợ lập trình trong một giao diện thống nhất.
Một IDE thường cung cấp:
- Code Editor
- Debugger
- Build Tools
- Version Control Integration
- Plugin / Extension
Ví dụ phổ biến:
- IntelliJ IDEA
- Visual Studio Code
- Eclipse
Tester không nhất thiết phải sử dụng IDE để viết code mỗi ngày. Tuy nhiên, nếu làm Kiểm thử tự động, việc sử dụng IDE sẽ giúp viết, debug, và quản lý test case tự động hiệu quả hơn.
52. SDK: Software Development Kit
Bộ công cụ phát triển phần mềm, cung cấp các công cụ, thư viện, tài liệu và thành phần cần thiết để phát triển ứng dụng cho một nền tảng hoặc hệ sinh thái cụ thể.
Ví dụ:
- Android SDK
- iOS SDK
- AWS SDK
- OpenAI SDK
Một SDK có thể bao gồm: Libraries + APIs + Tools + Documentation
Tester có thể gặp SDK khi kiểm thử ứng dụng mobile hoặc khi kiểm thử các hệ thống tích hợp với dịch vụ bên thứ ba.
Ví dụ: Một ứng dụng tích hợp thanh toán có thể sử dụng Payment SDK. Khi đó, Tester cần kiểm thử không chỉ giao diện của ứng dụng mà còn cách ứng dụng tương tác với SDK và hệ thống bên ngoài.
53. OOP: Object-Oriented Programming
Lập trình hướng đối tượng, một phương pháp lập trình tổ chức chương trình dựa trên các object (đối tượng) và class (lớp).
Bốn khái niệm thường được nhắc đến trong OOP:
- Encapsulation – Đóng gói
- Inheritance – Kế thừa
- Polymorphism – Đa hình
- Abstraction – Trừu tượng
Tại sao Tester nên biết OOP? Vì nếu bạn làm Test Automation, đặc biệt với các framework lớn, bạn sẽ thường xuyên gặp:
- Class
- Object
- Method
- Inheritance
- Interface
Hiểu OOP sẽ giúp bạn đọc hiểu cấu trúc của automation framework và dễ dàng trao đổi với Developer về cách code được tổ chức.
54. ORM: Object-Relational Mapping
Kỹ thuật ánh xạ giữa các đối tượng trong chương trình và dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ.
Ví dụ: Trong code có một object: User
- Object này có thể được ánh xạ với bảng: users
- và các thuộc tính: id, name, email được ánh xạ với các cột trong Database.
Một số ORM phổ biến:
- Hibernate
- Entity Framework
- Django ORM
- Sequelize
Tester nên biết ORM vì đôi khi một lỗi nhìn thấy ở UI hoặc API có thể bắt nguồn từ việc ánh xạ giữa Application ORM Database.
Khi hiểu được luồng này, Tester có thể phân tích lỗi tốt hơn thay vì chỉ báo: “API trả về sai dữ liệu.”
55. MVC: Model – View – Controller
Một mô hình kiến trúc phần mềm phổ biến, chia ứng dụng thành ba thành phần chính:
- Model: Quản lý dữ liệu và logic liên quan đến dữ liệu.
- View: Hiển thị giao diện cho người dùng.
- Controller: Tiếp nhận request và điều phối xử lý giữa các thành phần.
Có thể hình dung đơn giản: User → View → Controller → Model → Database
Hiểu MVC giúp Tester hình dung được lỗi có thể nằm ở đâu.
Ví dụ: Người dùng nhấn Login nhưng nhận được thông báo sai.
Tester có thể bắt đầu phân tích:
- UI/ View: Request có được gửi đúng không?
- Controller: Request có được xử lý đúng không?
- Model: Dữ liệu có được truy vấn đúng không?
- Database: Dữ liệu người dùng có chính xác không?
Đây là một cách tư duy hữu ích khi phân tích lỗi, dù hệ thống thực tế có thể sử dụng kiến trúc khác.
56. MVVM: Model – View – ViewModel
Một mô hình kiến trúc thường được sử dụng trong phát triển ứng dụng giao diện, đặc biệt trong một số framework và nền tảng mobile.
Ba thành phần gồm:
- Model: Dữ liệu và logic nghiệp vụ.
- View: Giao diện mà người dùng nhìn thấy và tương tác.
- ViewModel Lớp trung gian cung cấp dữ liệu và trạng thái cho View.
Tester có thể gặp MVVM khi kiểm thử ứng dụng mobile hoặc các ứng dụng sử dụng framework hỗ trợ mô hình này.
Hiểu kiến trúc giúp Tester biết rằng:
- Một lỗi hiển thị trên màn hình chưa chắc đã bắt nguồn từ UI.
- Có thể dữ liệu từ ViewModel đã sai, hoặc nguồn dữ liệu từ Backend đã sai ngay từ đầu.
57. GitOps: Git Operations
Một cách tiếp cận quản lý vận hành và triển khai hệ thống trong đó Git repository đóng vai trò là nguồn sự thật (Source of Truth) cho cấu hình hệ thống và hạ tầng.
Lưu ý: Trong thực tế, thuật ngữ GitOps thường được hiểu rộng hơn là chỉ “Git Operations”. Đây là một phương pháp vận hành dựa trên Git, Infrastructure as Code và tự động hóa.
Một quy trình GitOps có thể được hình dung: Git Repository → Configuration / Infrastructure as Code → Automated Deployment → Environment
Tester nên biết GitOps vì thay đổi cấu hình môi trường có thể ảnh hưởng trực tiếp đến kết quả kiểm thử.
Ví dụ: Code không thay đổi nhưng hôm nay test lại fail.
Có thể nguyên nhân nằm ở:
- Environment Configuration
- Database Configuration
- Feature Flag
- Infrastructure
- Deployment Configuration
58. VM: Virtual Machine
Máy ảo, là một môi trường máy tính được mô phỏng bằng phần mềm và chạy trên một máy vật lý hoặc hạ tầng máy chủ.
Một máy tính vật lý có thể chạy nhiều VM: Physical Machine →VM 1 – Test Environment | VM 2 – Staging Environment | VM 3 – Development Environment
Tester có thể gặp VM khi làm việc với các môi trường kiểm thử hoặc hệ thống được triển khai trên hạ tầng ảo hóa.
VM cũng giúp tạo môi trường tương đối độc lập để:
- Test
- Development
- Deployment
- Troubleshooting
59. OS: Operating System
Hệ điều hành, phần mềm nền tảng quản lý tài nguyên phần cứng và cung cấp môi trường để các ứng dụng hoạt động.
Ví dụ:
- Windows
- macOS
- Linux
- Android
- iOS
Tester cần đặc biệt quan tâm đến OS khi kiểm thử khả năng tương thích.
Ví dụ:
Mobile App
- Android
- iOS
Desktop App
- Windows
- macOS
Server
- Linux
- Windows Server
Một lỗi có thể chỉ xảy ra trên một hệ điều hành cụ thể. Vì vậy, OS là một phần quan trọng của Test Environment.
60. CPU: Central Processing Unit
Bộ xử lý trung tâm, thành phần thực hiện các phép tính và xử lý các lệnh của chương trình.
Hiểu đơn giản:
- CPU → Khả năng xử lý
- RAM → Bộ nhớ tạm thời
- Storage → Lưu trữ dữ liệu
Với Tester, CPU đặc biệt quan trọng khi thực hiện Performance Testing hoặc kiểm tra các vấn đề liên quan đến tài nguyên hệ thống.
Ví dụ: Một hệ thống có thể phản hồi chậm không phải vì API có vấn đề mà vì:
- CPU sử dụng quá cao.
- RAM không đủ.
- Database quá tải.
- Một process chiếm nhiều tài nguyên.
Vì vậy, khi kiểm thử hiệu năng, Tester cần nhìn hệ thống ở nhiều lớp khác nhau thay vì chỉ đo thời gian phản hồi của API.
Nguồn@Hoàng Liên Sơn_nhóm TESTING VN
Còn cập nhật tiếp…



