Vòng đời kiểm thử phần mềm (STLC): 6 giai đoạn, tiêu chí đầu vào và đầu ra, ví dụ

  1. Trang chủ
  2. Blog
  3. Kiểm thử phần mềm

Kiểm thử phần mềm

Vòng đời kiểm thử phần mềm (STLC): 6 giai đoạn, tiêu chí đầu vào và đầu ra, ví dụ

Kiểm thử không chỉ là chạy các trường hợp kiểm thử khi kết thúc dự án. Tìm hiểu sáu giai đoạn STLC, mỗi giai đoạn cần và sản xuất những gì, cách chúng áp dụng cho một tính năng thực tế và cách các nhóm Agile điều chỉnh chúng.

Đọc 9 phút
Vòng đời kiểm thử phần mềm (STLC): sáu giai đoạn, tiêu chí đầu vào và đầu ra và một ví dụ

Điểm chính

  • Vòng đời kiểm thử phần mềm là chuỗi các hoạt động được sử dụng để lập kế hoạch, thiết kế, chạy và kết thúc thử nghiệm.
  • Mô hình chung có sáu giai đoạn, từ phân tích yêu cầu đến kết thúc thử nghiệm.
  • Tiêu chí vào và ra xác định khi nào một giai đoạn có thể bắt đầu và khi nào nó kết thúc.
  • Các nhóm linh hoạt giữ các hoạt động giống nhau nhưng lặp lại chúng thành các vòng nhỏ trong mỗi lần chạy nước rút.

Khi một lỗi được đưa vào sản xuất, nguyên nhân thường không phải là do ai đó quên chạy thử nghiệm. Đó là yêu cầu không bao giờ bị đặt câu hỏi, dữ liệu thử nghiệm sai hoặc không ai đồng ý “hoàn thành” nghĩa là gì. Vòng đời kiểm thử phần mềm giải quyết những vấn đề đó bằng cách cung cấp cho việc kiểm thử một cấu trúc rõ ràng từ yêu cầu đầu tiên đến báo cáo cuối cùng.

Hướng dẫn này giải thích từng giai đoạn, sau đó đi theo một tính năng minh họa xuyên suốt tất cả các giai đoạn đó: trang đăng nhập sẽ khóa tài khoản sau năm lần thử không thành công. Các nguồn không hoàn toàn đồng ý về số lượng giai đoạn. Bạn sẽ thấy các mô hình có bảy hoặc tám, nhưng chúng hầu hết phân chia công việc giống nhau theo cách khác nhau. Chúng tôi sử dụng phiên bản sáu giai đoạn được dạy rộng rãi.

STLC là gì?

STLC là một chuỗi các hoạt động thử nghiệm xác định được thực hiện để xác nhận rằng phần mềm đáp ứng các yêu cầu của nó. Mỗi giai đoạn đều có mục tiêu, đầu vào và đầu ra, do đó việc thử nghiệm được lập kế hoạch và theo dõi thay vì ngẫu hứng vào cuối.

Những lợi ích là thiết thực. Người kiểm thử tham gia sớm, khi đó chi phí sửa lỗi sẽ rẻ hơn. Nỗ lực đi đến những rủi ro cao nhất. Và khi người quản lý hỏi “chúng tôi đã sẵn sàng ra mắt chưa?”, nhóm có thể trả lời bằng bằng chứng.

Sơ lược về sáu giai đoạn STLC

Giai đoạn Mục tiêu chính Đầu ra phím
1. Phân tích yêu cầu Hiểu những gì cần kiểm tra Câu hỏi, yêu cầu có thể kiểm tra, RTM
2. Lập kế hoạch kiểm tra Quyết định cách kiểm tra Kế hoạch kiểm tra, dự toán
3. Phát triển trường hợp thử nghiệm Thiết kế các bài kiểm tra Trường hợp thử nghiệm, tập lệnh, dữ liệu thử nghiệm
4. Thiết lập môi trường Chuẩn bị nơi để kiểm tra Môi trường sẵn sàng, kết quả kiểm tra khói
5. Thực hiện kiểm thử Chạy thử nghiệm và ghi lại lỗi Kết quả, báo lỗi
6. Kết thúc thử nghiệm Đánh giá và học hỏi Báo cáo kết thúc, bài học kinh nghiệm

Tiêu chí đầu vào là các điều kiện phải đúng trước khi bắt đầu một giai đoạn. Tiêu chí thoát là các điều kiện phải đúng trước khi kết thúc. Ví dụ: họ ngăn cản một nhóm chạy thử nghiệm trên một bản dựng bị hỏng và lãng phí một ngày.

Giai đoạn 1: Phân tích yêu cầu

Người kiểm tra nghiên cứu các yêu cầu để tìm ra những gì có thể được kiểm tra và những gì chưa rõ ràng. Đây thường là nơi rẻ nhất để ngăn ngừa lỗi, vì một câu hỏi có chi phí thấp hơn nhiều so với một bản sửa lỗi sản xuất.

  • Mục nhập: có sẵn tài liệu yêu cầu hoặc câu chuyện của người dùng.
  • Hoạt động: xác định các nhu cầu chức năng và phi chức năng, đặt câu hỏi, đánh giá rủi ro và quyết định những gì có thể được tự động hóa.
  • Thoát: các câu hỏi mở được trả lời và ma trận truy xuất nguồn gốc yêu cầu (RTM) được bắt đầu.
  • Sản phẩm bàn giao: danh sách các yêu cầu có thể kiểm thử và RTM.

Ví dụ về đăng nhập. Truyện có nội dung “khóa tài khoản sau 5 lần đăng nhập không thành công”. Một người thử nghiệm giỏi hỏi: năm trong khoảng thời gian nào? Làm thế nào nó được mở khóa? Đăng nhập thành công có đặt lại số lượng không? Thông báo nào được hiển thị? Mỗi câu trả lời sẽ trở thành một điều gì đó có thể kiểm chứng được.

Giai đoạn 2: Lập kế hoạch kiểm tra

Nhóm quyết định phạm vi, cách tiếp cận, con người, công cụ, lịch trình và rủi ro. Người dẫn đầu kiểm tra thường sở hữu giai đoạn này.

  • Mục nhập: đã phân tích các yêu cầu và đánh giá rủi ro ban đầu.
  • Hoạt động: xác định phạm vi, ước tính nỗ lực, chọn công cụ, phân công vai trò và đặt tiêu chí thoát cho các giai đoạn sau.
  • Thoát: kế hoạch kiểm tra được xem xét và phê duyệt.
  • Sản phẩm bàn giao: kế hoạch thử nghiệm và ước tính nỗ lực.

Ví dụ về đăng nhập. Trong phạm vi: quy tắc khóa, đặt lại và thông báo lỗi trên web và thiết bị di động. Ngoài phạm vi: đăng nhập một lần, được xử lý bởi một nhóm khác. Rủi ro lớn nhất là khóa người dùng chân chính, do đó nhận được nhiều sự chú ý nhất. Nếu bạn không chắc kế hoạch khác với chiến lược như thế nào, hãy đọc kế hoạch kiểm thử và chiến lược kiểm thử.

Giai đoạn 3: Phát triển trường hợp thử nghiệm

Đây là nơi người thử nghiệm viết các trường hợp thử nghiệm chi tiết, tập lệnh tự động hóa và dữ liệu thử nghiệm.

  • Mục nhập: kế hoạch kiểm tra đã được phê duyệt và các yêu cầu ổn định.
  • Hoạt động: viết và đánh giá các trường hợp thử nghiệm, chuẩn bị dữ liệu, kiểm tra tự động tập lệnh và cập nhật RTM.
  • Thoát: trường hợp thử nghiệm và dữ liệu đã được xem xét và sẵn sàng.
  • Sản phẩm bàn giao: trường hợp thử nghiệm, tập lệnh và dữ liệu thử nghiệm.
ID Kịch bản Kết quả mong đợi
TC-01 4 lần thử không thành công thì mật khẩu đúng Đăng nhập thành công và đếm lại
TC-02 5 lần thất bại Khóa tài khoản và xuất hiện thông báo rõ ràng
TC-03 Đúng mật khẩu trên tài khoản bị khóa Đăng nhập vẫn bị từ chối
TC-04 Không thành công trên hai trình duyệt cùng một lúc Số lượng được chia sẻ và luôn chính xác
TC-05 Mở khóa bằng liên kết đặt lại Đăng nhập hoạt động và số lượng bị xóa

Lưu ý rằng TC-01 và TC-02 kiểm tra hai bên của giới hạn, xuất phát trực tiếp từ phân tích giá trị biên. Để biết thêm về cách viết tốt những điều này, hãy xem cách viết trường hợp kiểm thử.

Giai đoạn 4: Thiết lập môi trường thử nghiệm

Các thử nghiệm cần một nơi thực tế để chạy: máy chủ, dữ liệu, tài khoản, trình duyệt và quyền truy cập mạng phù hợp. Giai đoạn này thường chạy song song với giai đoạn 3 và có thể do các nhà phát triển hoặc nhóm DevOps xử lý.

  • Mục nhập: kế hoạch kiểm tra, tổng quan về kiến ​​trúc và các yêu cầu về môi trường.
  • Hoạt động: thiết lập phần cứng hoặc vùng chứa, tải dữ liệu, định cấu hình quyền truy cập và cài đặt bản dựng.
  • Thoát: môi trường đã sẵn sàng và quá trình kiểm tra khói đã thành công.
  • Sản phẩm bàn giao: môi trường làm việc và kết quả kiểm tra khói.

Ví dụ về đăng nhập. Giai đoạn lấy tài khoản thử nghiệm ở các trạng thái đã xác định, cùng với thời gian khóa được rút ngắn để người thử nghiệm không phải chờ đợi. kiểm tra khói nhanh xác nhận rằng thông tin đăng nhập hoàn toàn tải trước khi quá trình chạy hoàn chỉnh bắt đầu. Vùng chứa giúp giữ cho môi trường nhất quán, như được trình bày trong Hướng dẫn về Docker Compose của chúng tôi.

Giai đoạn 5: Thực hiện thử nghiệm

Người kiểm thử thực hiện các cuộc kiểm thử đã lên kế hoạch, so sánh kết quả thực tế và kết quả mong đợi rồi báo cáo lỗi. Các lỗi đã sửa sẽ được kiểm tra lại và các khu vực liên quan sẽ được kiểm tra hồi quy.

  • Mục nhập: các trường hợp thử nghiệm đã sẵn sàng, môi trường hoạt động và bản dựng đã được chuyển giao.
  • Hoạt động: chạy thử nghiệm, ghi lại kết quả, ghi lại lỗi, kiểm tra lại các bản sửa lỗi và cập nhật RTM.
  • Thoát: các thử nghiệm theo kế hoạch đang được chạy và các lỗi đã được khắc phục hoặc được chấp nhận chính thức.
  • Sản phẩm bàn giao: kết quả kiểm tra và báo cáo lỗi.

Ví dụ đăng nhập. TC-04 không thành công: với hai trình duyệt, bộ đếm chỉ đạt tới bốn. Người kiểm tra ghi lại lỗi bằng các bước và bằng chứng rõ ràng, như được mô tả trong cách viết báo cáo lỗi. Sau khi sửa xong, TC-04 sẽ chạy lại và các bước kiểm tra đăng nhập có liên quan sẽ trải qua danh sách kiểm tra hồi quy.

Mẹo: Đặt tiêu chí thoát có thể đo lường được và thống nhất trước về chúng. Thật khó để tranh luận: “Tất cả các bài kiểm tra quan trọng đều vượt qua và không có lỗi nghiêm trọng nào được mở”. “Thử nghiệm có vẻ tốt” không phải là một tiêu chí.

Giai đoạn 6: Kết thúc thử nghiệm

Giai đoạn này thường bị bỏ qua, điều này thật đáng tiếc vì đó là cách một nhóm cải thiện. Nhóm đánh giá chu trình, lưu trữ công việc của mình và ghi lại những gì đã học được.

  • Mục nhập: quá trình thực thi đã hoàn tất và đã biết trạng thái lỗi.
  • Hoạt động: kiểm tra tiêu chí thoát, phân tích xu hướng lỗi, lưu trữ nội dung thử nghiệm và tổ chức hồi cứu.
  • Thoát: báo cáo đóng cửa đã được ký tắt.
  • Sản phẩm bàn giao: báo cáo kết thúc và bài học kinh nghiệm.

Ví dụ về đăng nhập. Báo cáo cho thấy rằng tất cả năm trường hợp đều vượt qua sau một lần sửa. Bài học là tính đồng thời chỉ được thử nghiệm muộn, vì vậy các tính năng trong tương lai có bộ đếm sẽ được bổ sung kịch bản đó trong quá trình thiết kế.

STLC so với SDLC

SDLC hay vòng đời phát triển phần mềm bao gồm việc xây dựng toàn bộ sản phẩm. STLC là phần tập trung vào thử nghiệm và chạy song song với nó.

Khía cạnh SDLC STLC
Tập trung Xây dựng và cung cấp phần mềm Xác thực phần mềm
Được dẫn dắt bởi Toàn bộ nhóm sản phẩm Chủ yếu là kỹ sư QA và kiểm tra
Giai đoạn Yêu cầu, thiết kế, xây dựng, thử nghiệm, triển khai, bảo trì Sáu giai đoạn trên
đầu ra Một sản phẩm đang hoạt động Bằng chứng về chất lượng của nó

Phân tích yêu cầu trong phân tích yêu cầu nguồn cấp dữ liệu SDLC trong STLC và quá trình phát triển đưa các bản dựng vào thực thi thử nghiệm. Việc kiểm tra không phải đợi cho đến khi quá trình mã hóa kết thúc. Bắt đầu sớm là ý nghĩa của việc “chuyển sang trái”.

STLC trong Agile và DevOps

Các giai đoạn nghe có vẻ giống như một quá trình dài, một chiều, nhưng chúng không nhất thiết phải như vậy. Trong Agile, các hoạt động giống nhau sẽ được thu nhỏ lại và lặp lại trong mỗi lần chạy nước rút, thường tính bằng giờ thay vì vài tuần:

  • Phân tích yêu cầu diễn ra trong quá trình sàng lọc hồ sơ tồn đọng, thông qua các câu hỏi về câu chuyện của người dùng.
  • Lập kế hoạch diễn ra trong quá trình lập kế hoạch chạy nước rút, với những ghi chú ngắn gọn thay cho những tài liệu dài.
  • Thiết kế thử nghiệm diễn ra cùng với quá trình mã hóa, thường là tiêu chí chấp nhận và thử nghiệm tự động.
  • Thiết lập môi trường được tự động hóa thông qua các vùng chứa và cơ sở hạ tầng dưới dạng mã.
  • Việc thực thi chạy liên tục trong một đường dẫn CI/CD.
  • Kết thúc trở thành một phần của quá trình đánh giá và hồi tưởng nước rút.

Giữ những gì hữu ích và mở rộng quy mô thủ tục giấy tờ đến mức rủi ro. Một công cụ nội bộ nhỏ có thể cần một danh sách kiểm tra ngắn, trong khi hệ thống ngân hàng có thể cần sự phê duyệt chính thức vì lý do pháp lý.

Những lỗi thường gặp

  • Đưa người thử nghiệm đến muộn. Các lỗi được tìm thấy trong yêu cầu rẻ hơn nhiều so với những lỗi được tìm thấy sau khi phát hành.
  • Tiêu chí thoát không rõ ràng. Nếu không có chúng, thời hạn sẽ đưa ra quyết định cho bạn.
  • Thử nghiệm trong môi trường kém. Lỗi do dữ liệu hoặc cấu hình kém sẽ lãng phí thời gian và làm xói mòn lòng tin.
  • Bỏ qua việc đóng. Sau đó, nhóm lặp lại những sai lầm tương tự trong chu kỳ tiếp theo.
  • Tuân theo nó quá cứng nhắc. STLC là một hướng dẫn. Tài liệu nặng không tự động có nghĩa là chất lượng tốt hơn.

Lời kết

Vòng đời kiểm thử phần mềm chỉ đơn giản là một câu trả lời có kỷ luật cho sáu câu hỏi: chúng ta kiểm tra cái gì, như thế nào, với trường hợp nào, ở đâu, điều gì đã xảy ra và chúng ta đã học được gì? Hãy xem tính năng tiếp theo của bạn và kiểm tra xem nhóm của bạn thường bỏ qua câu hỏi nào trong số đó. Việc khắc phục một lỗ hổng đó có thể sẽ mang lại cho bạn lợi ích lớn nhất.

Câu hỏi thường gặp

6 giai đoạn của STLC là gì?

Đó là phân tích yêu cầu, lập kế hoạch kiểm thử, phát triển trường hợp kiểm thử, thiết lập môi trường kiểm thử, thực hiện kiểm thử và kết thúc kiểm thử. Một số mô hình chia chúng thành nhiều bước hơn.

Sự khác biệt giữa STLC và SDLC là gì?

SDLC bao gồm việc xây dựng toàn bộ sản phẩm, từ yêu cầu đến bảo trì. STLC chỉ bao gồm các hoạt động thử nghiệm và chạy song song với quá trình phát triển.

Tiêu chí vào và ra là gì?

Tiêu chí đầu vào là các điều kiện bắt buộc trước khi một giai đoạn có thể bắt đầu, chẳng hạn như bản dựng ổn định. Tiêu chí đầu ra là các điều kiện cần thiết để hoàn thành nó, chẳng hạn như tất cả các bài kiểm tra quan trọng đều vượt qua.

RTM trong thử nghiệm là gì?

Ma trận truy xuất nguồn gốc yêu cầu ánh xạ từng yêu cầu tới các trường hợp thử nghiệm của nó. Nó cho biết liệu mọi yêu cầu có được đáp ứng hay không và giúp bạn đánh giá tác động của những thay đổi.

STLC có được sử dụng trong Agile không?

Đúng. Các nhóm linh hoạt thực hiện các hoạt động giống nhau nhưng theo các chu kỳ ngắn hơn, lặp lại trong mỗi lần chạy nước rút, với mức độ tự động hóa cao hơn và ít tài liệu chính thức hơn.

Tiếp tục học hỏi

Làm việc với Stack Quora

Cần trợ giúp về kiểm tra, WordPress hoặc SEO?

Chúng tôi giúp các nhóm phát triển phần mềm tốt hơn và phát triển trang web của họ. Hãy cho chúng tôi biết bạn đang làm gì và chúng tôi sẽ đề xuất bước tiếp theo rõ ràng.

Tiếp tục đọc

Thêm hướng dẫn về thử nghiệm, AI và phát triển hiện đại

Bạn thích bài viết này? Chọn một chủ đề và chuyển ngay sang phần hướng dẫn mới nhất của chúng tôi.

Trí tuệ nhân tạo

Giải thích về ảo giác AI: Tại sao các mô hình ngôn ngữ lại tạo nên mọi thứ và cách giảm thiểu nó

Ảo giác AI đã giải thích: chúng là gì, tại sao mô hình ngôn ngữ tạo ra chúng, các loại phổ biến, cách giảm thiểu chúng bằng cách căn cứ và nhắc nhở …

Đọc bài viết →
DevOps

Giải thích về các biến môi trường: Tệp .env, bí mật và cấu hình được thực hiện đúng

Các biến môi trường được giải thích bằng các ví dụ Python mà chúng tôi đã chạy: đọc và thiết lập chúng, tại sao mọi giá trị đều là một chuỗi, tệp .e…

Đọc bài viết →
Phát triển phần mềm

Giải thích về giới hạn tỷ lệ API: Thuật toán, tiêu đề và xử lý lỗi 429

Giới hạn tốc độ API được giải thích bằng mô phỏng mà chúng tôi đã chạy: nhóm mã thông báo, cửa sổ cố định, cửa sổ trượt, 429 phản hồi, tiêu đề giới …

Đọc bài viết →
Tự động hóa kiểm thử

Chế giễu bằng Python: unittest.mock, patch và những sai lầm khiến bài kiểm tra nói dối

Mô phỏng bằng Python với unittest.mock, đã được thử nghiệm: Mock và return_value, side_effect, vá lỗi nơi sử dụng tên, thông số kỹ thuật và thông số…

Đọc bài viết →
Kiểm thử phần mềm

Giải thích về phạm vi bảo hiểm của mã: Phạm vi tuyến so với chi nhánh và ý nghĩa thực sự 100%

Phạm vi bảo hiểm mã được giải thích bằng cách chạy phạm vi bảo hiểm thực tế: phạm vi bảo hiểm dòng, chi nhánh và điều kiện, đọc báo cáo, lý do tại s…

Đọc bài viết →
Cơ sở dữ liệu & SQL

DELETE vs TRUNCATE vs DROP trong SQL: Sự khác biệt, khôi phục và thời điểm sử dụng mỗi loại

DELETE vs TRUNCATE vs DROP được giải thích bằng SQL đã được thử nghiệm: mỗi loại loại bỏ, khôi phục, kích hoạt, đặt lại danh tính, tốc độ và Postgre…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về Chế độ xem SQL: Tạo, sử dụng và tránh những cạm bẫy, kèm theo ví dụ

Chế độ xem SQL được giải thích bằng các truy vấn chúng tôi đã chạy: tạo chế độ xem, kết quả trực tiếp, ẩn cột, hiệu suất, chế độ xem có thể cập nhật…

Đọc bài viết →
Phát triển phần mềm

Giao diện TypeScript so với loại: Sự khác biệt thực sự, được thử nghiệm bằng trình biên dịch

Giao diện TypeScript so với loại, được kiểm tra bằng trình biên dịch thực: cả hai có thể làm gì, chỉ một người có thể làm gì, hợp nhất khai báo, mở …

Đọc bài viết →
Phát triển phần mềm

Giải thích về Python *args và **kwargs: Hàm linh hoạt với ví dụ rõ ràng

Python *args và **kwargs được giải thích bằng mã chúng tôi đã chạy: đóng gói và giải nén, thứ tự tham số, đối số chỉ từ khóa và chỉ vị trí, trình tr…

Đọc bài viết →
Phát triển phần mềm

Hàm Lambda của Python: Cú pháp, cách sử dụng thực tế và khi nào không nên sử dụng chúng

Các hàm lambda của Python được giải thích bằng mã chúng tôi đã chạy: cú pháp, sắp xếp bằng khóa, bản đồ và bộ lọc, các phần đóng, bẫy liên kết muộn …

Đọc bài viết →
Trí tuệ nhân tạo

Đại lý AI là gì? Cách chúng hoạt động, với vòng lặp tác nhân đơn giản, bạn có thể chạy

Tác nhân AI là gì? Hướng dẫn đơn giản về vòng lặp tác nhân, công cụ, bộ nhớ và lan can, với một vòng lặp Python nhỏ mà chúng tôi đã chạy, những rủi …

Đọc bài viết →
DevOps

Giám sát và Khả năng quan sát: Sự khác biệt thực sự, với nhật ký, số liệu và dấu vết

Giải thích về giám sát và khả năng quan sát: lỗi đã biết và chưa biết, nhật ký, số liệu và dấu vết, hướng dẫn về sự cố thanh toán, tín hiệu vàng, Op…

Đọc bài viết →
DevOps

Docker Volumes vs Bind Mounts: Duy trì dữ liệu vùng chứa đúng cách

Giải thích về khối lượng Docker và liên kết gắn kết: tại sao dữ liệu vùng chứa biến mất, khối lượng được đặt tên, liên kết gắn kết, tmpfs, ví dụ về …

Đọc bài viết →
Tự động hóa kiểm thử

TDD vs BDD: Key Differences, One Feature Built Both Ways and When to Use Each

TDD và BDD được giải thích bằng một tính năng giảm giá được xây dựng theo cả hai cách: tái cấu trúc màu đỏ-xanh với mã chúng tôi đã chạy, kịch bản C…

Đọc bài viết →
Kiểm thử phần mềm

Kiểm tra chấp nhận của người dùng (UAT): Quy trình, danh sách kiểm tra và ví dụ thực tế

Giải thích về thử nghiệm chấp nhận của người dùng: ai chạy nó, nó khác với QA như thế nào, quy trình bảy bước, mẫu trường hợp thử nghiệm UAT, danh s…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về các giá trị NULL của SQL: IS NULL, COALESCE, NULLIF và những cái bẫy cần tránh

Các giá trị SQL NULL được giải thích bằng các truy vấn chúng tôi đã chạy: logic ba giá trị, IS NULL, COALESCE, NULLIF, cách tổng hợp, kết hợp và sắp…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Câu lệnh SQL CASE WHEN: Cú pháp, ví dụ thực tế và các lỗi thường gặp

TRƯỜNG HỢP SQL KHI được giải thích bằng các truy vấn mà chúng tôi đã chạy: các biểu mẫu đơn giản và được tìm kiếm, thứ tự điều kiện, các thủ thuật S…

Đọc bài viết →
Phát triển phần mềm

JWT là gì? Mã thông báo Web JSON được giải thích bằng một ví dụ hoạt động

JWT là gì? Mã thông báo Web JSON đã giải thích: ba phần, mã thông báo được xây dựng và giả mạo trong mã chúng tôi đã chạy, JWT so với phiên, lưu trữ…

Đọc bài viết →
Phát triển phần mềm

Giải thích về vòng lặp sự kiện JavaScript: Ngăn xếp cuộc gọi, Microtask và bộ hẹn giờ kèm ví dụ

Vòng lặp sự kiện JavaScript được giải thích bằng mã chúng tôi đã chạy: ngăn xếp cuộc gọi, hàng đợi tác vụ và vi nhiệm, tại sao setTimeout 0 không di…

Đọc bài viết →
Phát triển phần mềm

Giải thích về trình tạo và năng suất của Python: Tiết kiệm bộ nhớ bằng các ví dụ thực tế

Trình tạo và lợi nhuận Python được giải thích bằng mã chúng tôi đã chạy: cách chúng tạm dừng và tiếp tục, đo mức tiết kiệm bộ nhớ, quy trình, chuỗi …

Đọc bài viết →
Trí tuệ nhân tạo

Nhúng là gì? Giải thích sự tương đồng về vectơ và Cosine một cách đơn giản

nhúng là gì? Hướng dẫn bằng ngôn ngữ đơn giản về vectơ, độ tương tự cosine và tìm kiếm ngữ nghĩa, với một ví dụ nhỏ mà chúng tôi đã chạy, các cách s…

Đọc bài viết →
DevOps

Triển khai Blue-Green và Canary: Sự khác biệt, sự đánh đổi và cách lựa chọn

Giải thích về triển khai Blue-green và Canary: cách hoạt động của từng loại, chi phí, rủi ro và khôi phục, nhóm người dùng ổn định mà chúng tôi đã t…

Đọc bài viết →
Tự động hóa kiểm thử

Kiểm tra không ổn định: Nguyên nhân gây ra chúng và cách khắc phục chúng vĩnh viễn

Các thử nghiệm không ổn định được giải thích bằng các bản demo mà chúng tôi đã chạy: nguyên nhân chính, cách xác nhận và chẩn đoán nguyên nhân, cách…

Đọc bài viết →
Kiểm thử phần mềm

Kiểm tra tải và kiểm tra căng thẳng: Sự khác biệt, số liệu và ví dụ về k6

Giải thích về thử nghiệm tải và thử nghiệm căng thẳng: mỗi thử nghiệm chứng minh điều gì, thử nghiệm tăng đột biến và ngâm, số liệu quan trọng, lý d…

Đọc bài viết →
Kiểm thử phần mềm

Trường hợp thử nghiệm và kịch bản thử nghiệm: Sự khác biệt chính, ví dụ và thời điểm sử dụng từng trường hợp

Giải thích trường hợp kiểm thử và kịch bản kiểm thử: định nghĩa rõ ràng, bảng cạnh nhau, một tính năng đặt lại mật khẩu được lấy từ các tình huống n…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Tối ưu hóa truy vấn SQL: Đọc kế hoạch thực thi và sửa các truy vấn chậm, có tính thời gian

Đã thử nghiệm tối ưu hóa truy vấn SQL trên một triệu hàng: đọc kế hoạch thực hiện, thêm chỉ mục phù hợp, sửa các bộ lọc không thể mở rộng, sử dụng c…

Đọc bài viết →
Cơ sở dữ liệu & SQL

SQL UNION và UNION ALL: Sự khác biệt, ví dụ và hiệu suất đã được kiểm tra

SQL UNION và UNION ALL được giải thích bằng các truy vấn chúng tôi đã chạy: trùng lặp, cả hai quy tắc đều tuân theo, lỗi dữ liệu thực, hiệu suất đượ…

Đọc bài viết →
Phát triển phần mềm

Hướng dẫn API tìm nạp JavaScript: GET, POST, Xử lý lỗi và hết thời gian chờ

Hướng dẫn API tìm nạp JavaScript đã được thử nghiệm trên máy chủ cục bộ: GET và POST, tại sao 404 không gửi, trình trợ giúp có thể sử dụng lại, chuỗ…

Đọc bài viết →
Phát triển phần mềm

Xử lý tệp Python: Đọc, ghi, CSV, JSON và pathlib kèm ví dụ

Việc xử lý tệp Python được giải thích bằng mã chúng tôi đã chạy: chế độ mở, với, đọc tệp lớn, CSV, JSON, pathlib, tệp nhị phân, ghi an toàn, xử lý l…

Đọc bài viết →
Phát triển phần mềm

Các lớp và đối tượng Python: Hướng dẫn OOP với các ví dụ thực tế

Các lớp và đối tượng Python được giải thích bằng mã mà chúng tôi đã chạy: __init__, các phương thức, thuộc tính lớp và phiên bản, tính kế thừa, thuộ…

Đọc bài viết →
Trí tuệ nhân tạo

Mô hình ngôn ngữ lớn là gì? LLM hoạt động như thế nào, được giải thích mà không cường điệu hóa

Mô hình ngôn ngữ lớn là gì? LLM được giải thích bằng ngôn ngữ đơn giản: mã thông báo, phần nhúng, sự chú ý, đào tạo, cửa sổ nhiệt độ và ngữ cảnh, mộ…

Đọc bài viết →
DevOps

Các lệnh Linux cho người mới bắt đầu: Hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ

Các lệnh Linux dành cho người mới bắt đầu, được nhóm theo tác vụ: điều hướng, tệp, xem nhật ký, grep, đường dẫn, quyền, quy trình và lưu trữ, cùng v…

Đọc bài viết →
Tự động hóa kiểm thử

Selenium vs Nhà viết kịch: Sự khác biệt chính, So sánh mã và nên chọn cái nào

Selenium và Playwright được so sánh: kiến trúc, chờ đợi, hỗ trợ trình duyệt và ngôn ngữ, gỡ lỗi, kiểm tra giống nhau ở cả hai công cụ, lời khuyên di…

Đọc bài viết →
Kiểm thử phần mềm

Phân vùng tương đương: Giải thích kỹ thuật thiết kế thử nghiệm bằng các ví dụ đã thực hiện

Giải thích về phân vùng tương đương: cách tìm các phân vùng hợp lệ và không hợp lệ, các ví dụ hoạt động theo độ tuổi, mật khẩu và phiếu giảm giá, cá…

Đọc bài viết →
Kiểm thử phần mềm

Mức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: Sự khác biệt, Ma trận và ví dụ thực tế

Giải thích về mức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: định nghĩa rõ ràng, ma trận bốn chiều với các ví dụ, thang đo cấp độ, a…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Hướng dẫn về truy vấn con SQL: Các loại, truy vấn con tương quan và TỒN TẠI kèm ví dụ

Hướng dẫn về truy vấn con SQL với các truy vấn chúng tôi đã chạy: truy vấn con vô hướng, IN, FROM và SELECT, truy vấn con tương quan, EXISTS, bẫy và…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về giao dịch SQL và ACID: Các mức CAM KẾT, ROLLBACK và Cô lập

Các giao dịch SQL và ACID được giải thích bằng chuyển khoản ngân hàng mà chúng tôi đã thực hiện: CAM KẾT, ROLLBACK, điểm lưu trữ, khóa, mức cách ly,…

Đọc bài viết →
Phát triển phần mềm

Bảng cheat lệnh Git: Các lệnh bạn thực sự sử dụng, kèm theo ví dụ

Một bảng ghi lệnh Git được nhóm theo nhiệm vụ: thiết lập, dàn dựng, nhánh, điều khiển từ xa, lưu trữ, lịch sử và hoàn tác các lỗi, với đầu ra từ kho…

Đọc bài viết →
Phát triển phần mềm

Giải thích về các lời hứa trong JavaScript: then, Catch, Promise.all và các lỗi thường gặp

Lời hứa JavaScript được giải thích bằng mã chúng tôi đã chạy: trạng thái, then và chuỗi bắt, xử lý lỗi, Promise.all, allSettled, chủng tộc và bất kỳ…

Đọc bài viết →
Phát triển phần mềm

Hướng dẫn từ điển Python: Phương thức, ví dụ và mẫu chung

Hướng dẫn từ điển Python với mã chúng tôi đã chạy: tạo, đọc và cập nhật các ký tự, các phương thức chính, hợp nhất, hiểu, đếm và nhóm các mẫu cũng n…

Đọc bài viết →
Trí tuệ nhân tạo

RAG là gì? Giải thích về thế hệ tăng cường truy xuất bằng một ví dụ hoạt động

RAG là gì? Thế hệ tăng cường truy xuất được giải thích từng bước: lập chỉ mục, phân nhóm, nhúng, truy xuất, một ví dụ Python hoạt động nhỏ, đánh giá…

Đọc bài viết →
DevOps

Hướng dẫn về Terraform cho người mới bắt đầu: Cơ sở hạ tầng dưới dạng mã từ tệp đầu tiên đến mô-đun

Hướng dẫn về Terraform dành cho người mới bắt đầu: bắt đầu không cần tài khoản đám mây, tìm hiểu về init, lập kế hoạch và áp dụng, sau đó là các biế…

Đọc bài viết →
DevOps

Docker vs Kubernetes: Key Differences, How They Work Together and Which You Need

Docker vs Kubernetes giải thích: mỗi cái làm gì, cùng một ứng dụng chạy với cả hai, so sánh Docker Compose và Swarm, sự thay đổi của dockershim và c…

Đọc bài viết →
Tự động hóa kiểm thử

Hướng dẫn Pytest cho người mới bắt đầu: Đồ đạc, tham số hóa và ví dụ thực tế

Hướng dẫn về pytest dành cho người mới bắt đầu với các bài kiểm tra chúng tôi đã chạy trên pytest 9.2: xác nhận, đồ đạc, tham số, conftest, điểm đán…

Đọc bài viết →
Kiểm thử phần mềm

Vòng đời kiểm thử phần mềm (STLC): 6 giai đoạn, tiêu chí đầu vào và đầu ra, ví dụ

Vòng đời kiểm thử phần mềm giải thích: sáu giai đoạn STLC với tiêu chí đầu vào và đầu ra, sản phẩm phân phối, ví dụ về tính năng đăng nhập hoạt động…

Đọc bài viết →
Phát triển phần mềm

Git merge vs rebase: khác biệt, ví dụ và khi nào dùng cái nào

Git merge vs rebase được giải thích bằng đầu ra log thực tế, bảng so sánh, quy tắc vàng của rebase và quy trình làm việc nhóm an toàn.

Đọc bài viết →
Phát triển phần mềm

List comprehension trong Python: cú pháp, ví dụ và khi nào nên tránh

List comprehension trong Python: cú pháp, lọc dữ liệu, if-else, vòng lặp lồng nhau, thời gian đo thực tế và khi nào vòng lặp for thông thường tốt hơn.

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích SQL JOIN kèm ví dụ (Inner, Left, Right, Full)

Hiểu SQL JOIN từng bước với bảng và truy vấn mẫu: INNER, LEFT, RIGHT, FULL, CROSS và SELF, cùng lỗi thường gặp và mẹo hiệu năng.

Đọc bài viết →