Đang tải...

Lửng Lọc Lõi

Đeo kính để soi Bug cho rõ, nhíu mày để nhắc Dev sửa cho kỹ. Với tôi, 'chạy được' thôi là chưa đủ! 🧐💻


0

SDLC và STLC cho tester mới: Hiểu quy trình để không học lan man

Lửng Lọc Lõi
Lửng Lọc Lõi

3 tháng trước · 9 phút đọc

SDLC là gì - và tại sao tester cần biết?

Mình nhớ hồi mới học testing, có người hỏi: "Bạn đang ở phase nào trong dự án?" Mình không biết trả lời. Không phải vì không biết đang làm gì, mà vì chưa hiểu khái niệm "phase" là gì.

Đó là lý do bài này tồn tại.

SDLC - Software Development Life Cycle - là vòng đời phát triển phần mềm. Nghe có vẻ to tát, nhưng thực ra đơn giản hơn nhiều: nó là bản đồ mô tả hành trình một phần mềm đi từ ý tưởng đến tay người dùng.

Tại sao tester cần biết SDLC? Vì bạn không làm việc trong bong bóng. Tester là một mắt xích trong chuỗi dài: BA phân tích yêu cầu, dev code, tester kiểm tra, ops deploy. Không hiểu chuỗi đó, bạn không biết mình đang ở đâu, nhận gì từ ai, và bàn giao gì cho ai tiếp theo.

344866 SDLC là bản đồ chung của cả team - tester là một mắt xích quan trọng

Nói đơn giản: SDLC giúp bạn không bị "làm chỗ nào hay chỗ đó" mà hiểu bức tranh toàn cảnh.


6 giai đoạn của SDLC - nhìn từ góc tester

SDLC thường có 6 giai đoạn. Mình sẽ giải thích từng giai đoạn, và quan trọng hơn - tester làm gì ở đó.

1. Planning (Lập kế hoạch) Team xác định: làm cái gì, cho ai, mất bao lâu, tốn bao nhiêu. Tester ở đây không viết test case, mà tham gia ước lượng effort testing cần bao nhiêu thời gian. Nếu project có 50 tính năng, tester cần báo ngay: "Mình cần 3 tuần để test, không phải 1 tuần."

2. Requirement Analysis (Phân tích yêu cầu) BA (Business Analyst) viết tài liệu mô tả app cần làm gì. Tester đọc tài liệu này và... đặt câu hỏi. "Nếu user nhập email không hợp lệ thì sao?" "Giới hạn ký tự mật khẩu là bao nhiêu?" Đây là lúc tester đóng góp nhiều nhất mà ít người biết.

3. System Design (Thiết kế hệ thống) Dev và architect thiết kế cấu trúc hệ thống. Tester xem xét thiết kế để chuẩn bị môi trường test, hiểu luồng dữ liệu đi như thế nào.

4. Implementation (Lập trình) Dev code. Tester lúc này viết test case, chuẩn bị test data, setup môi trường. Không phải ngồi chờ dev xong mới bắt đầu.

5. Testing (Kiểm thử) Phần "nhà" của tester. Chạy test case, tìm bug, viết bug report, verify fix. Chi tiết phần này sẽ nói ở STLC bên dưới.

6. Deployment & Maintenance (Triển khai và bảo trì) App lên production. Tester thực hiện smoke testing (kiểm tra nhanh xem app còn sống không sau deploy), và hỗ trợ xử lý bug production nếu có.

344867 Tester không chỉ làm ở phase 5 - sự tham gia sớm giúp giảm bug về sau

Thấy không? Tester không chỉ xuất hiện ở giai đoạn Testing. Tham gia sớm từ phase 2 giúp phát hiện lỗi logic ngay từ yêu cầu - tiết kiệm hơn nhiều so với phát hiện sau khi dev đã code xong.


STLC là gì - vòng đời riêng của tester

Nếu SDLC là bản đồ của cả team, thì STLC - Software Testing Life Cycle - là bản đồ riêng của tester.

STLC mô tả các bước bạn thực hiện trong phase Testing của SDLC. Nói cách khác: SDLC là vòng lớn, STLC là vòng nhỏ nằm bên trong giai đoạn Testing.

Tại sao cần STLC riêng? Vì phase Testing không phải chỉ "ngồi click xem có lỗi không". Có quy trình rõ ràng, từ lúc nhận yêu cầu đến lúc ký off - tức xác nhận đã test xong và đủ chất lượng để release.

344868 STLC là vòng đời nhỏ nằm trong phase Testing của SDLC

Mình thấy nhiều bạn mới nhầm lẫn hai khái niệm này, hoặc chỉ biết một trong hai. Hiểu cả hai mới giúp bạn trả lời phỏng vấn tự tin và làm việc thực tế không bị lạc lối.


6 giai đoạn STLC - tester làm gì từng bước

STLC cũng có 6 giai đoạn. Mình đi từng bước với ví dụ cụ thể: giả sử bạn đang test tính năng đăng nhập của một app bán hàng.

1. Requirement Analysis (Phân tích yêu cầu) Bạn đọc tài liệu yêu cầu: đăng nhập bằng email/password, có "Quên mật khẩu", lock account sau 5 lần sai. Bạn xác định: test cái gì, test được ngay chưa, cần dữ liệu gì. Nếu tài liệu thiếu ("lock account bao lâu?") - hỏi ngay.

2. Test Planning (Lập kế hoạch test) Viết test plan: team test gồm ai, dùng tool gì (Jira, TestRail...), test môi trường nào, mất bao lâu, rủi ro là gì. Ở dự án nhỏ, test plan đơn giản hơn nhưng vẫn cần.

3. Test Case Design (Thiết kế test case) Viết test case chi tiết cho đăng nhập:

  • Đăng nhập đúng email, đúng password → vào được dashboard
  • Đăng nhập đúng email, sai password → báo lỗi
  • Để trống email → báo lỗi
  • Nhập password ký tự đặc biệt (@#$%) → xử lý đúng
  • Nhập sai password 5 lần liên tiếp → account bị lock

Và còn nhiều case nữa. Viết kỹ ở bước này = không bỏ sót bug về sau.

4. Test Environment Setup (Cài đặt môi trường) Cài đặt và verify môi trường test sẵn sàng: server chạy chưa, database có data test chưa, tool test đã cài chưa. Bước này hay bị bỏ qua, nhưng môi trường không ổn định = kết quả test không đáng tin.

5. Test Execution (Thực thi test) Chạy từng test case. Ghi lại kết quả: pass hay fail. Nếu fail, viết bug report chi tiết để dev reproduce và fix.

6. Test Cycle Closure (Đóng vòng test) Tổng hợp kết quả: bao nhiêu test case pass/fail, bao nhiêu bug, bao nhiêu bug đã fix. Viết báo cáo để team quyết định có release không.

344869 6 bước STLC: từ đọc yêu cầu đến ký off release

Thực tế ở dự án nhỏ, các bước này có thể gộp lại hoặc không formal. Nhưng hiểu từng bước giúp bạn không bỏ sót công việc cần làm.


So sánh SDLC và STLC - nhìn cạnh nhau cho rõ

Nhiều bạn học xong vẫn lẫn lộn vì hai cái này tên giống nhau, cùng có chữ LC (Life Cycle). Nhìn bảng so sánh này sẽ rõ hơn:

Tiêu chí SDLC STLC
Là gì? Vòng đời toàn bộ phần mềm Vòng đời riêng của testing
Ai tham gia? Cả team (BA, dev, tester, PM...) Chủ yếu tester
Mục tiêu Xây dựng và deliver phần mềm Đảm bảo chất lượng phần mềm
Khi nào xảy ra? Từ đầu đến cuối dự án Trong phase Testing của SDLC
Output Phần mềm chạy được Bug report, test report, sign-off

Cách nhớ đơn giản: SDLC là bản đồ của cả dự án, STLC là bản đồ của phòng testing trong dự án đó.

344870 Một câu nhớ mãi: SDLC = dự án, STLC = phòng testing

Bạn không cần thuộc lòng từng chi tiết ngay hôm nay. Mình cũng mất vài tuần đi làm mới thấm hết sự khác nhau. Điều quan trọng là hiểu tổng quan để khi team nói "chúng ta đang ở phase nào" - bạn không ngơ ngác.


Ví dụ thực tế: dự án app đặt bàn nhà hàng

Lý thuyết xong, áp vào thực tế một lần cho ngấm.

Giả sử team bạn làm app đặt bàn nhà hàng online. Dự án kéo dài 3 tháng.

SDLC diễn ra thế nào:

  • Tuần 1-2 (Planning): PM họp xác định: app có tính năng tìm nhà hàng, đặt bàn, thanh toán online. Tester tham gia ước lượng: cần 2 tuần test mỗi sprint.
  • Tuần 3-4 (Requirement): BA viết tài liệu chi tiết. Tester đọc và hỏi: "Nếu user đặt bàn cho ngày hôm qua thì sao?", "Giới hạn số người tối đa một bàn là bao nhiêu?"
  • Tuần 5-8 (Design & Coding): Dev code tính năng tìm nhà hàng. Tester chuẩn bị test case, test data (danh sách nhà hàng giả, user giả).
  • Tuần 9-10 (Testing): STLC bắt đầu. Tester chạy test case, tìm bug: "Đặt bàn thành công nhưng email xác nhận không gửi", "Filter theo quận không hoạt động khi không có kết quả".
  • Tuần 11-12 (Deployment): App deploy lên production. Tester chạy smoke testing: mở app, tìm nhà hàng, đặt thử 1 bàn - xem luồng chính còn hoạt động không.

344871 Timeline 3 tháng: tester tham gia ngay từ tuần 1, không phải chờ đến tuần 9

Bạn thấy không - tester xuất hiện từ tuần 1, không phải tuần 9. Đây là điều nhiều người trái ngành hay ngạc nhiên khi vào nghề. Testing không phải "làm sau cùng", mà là thread chạy xuyên suốt dự án.

Một điều nữa: khi deploy xong, bug production nổi lên là bình thường. Tester lúc đó phối hợp dev reproduce, verify fix, rồi regression testing để chắc fix không làm hỏng tính năng khác. Vòng lặp đó chính là lý do tên gọi là "Life Cycle" - vòng đời, không phải "đường thẳng".