Trang chủ » Blog » Tìm hiểu tổng quan về kiểm thử phần mềm

Tìm hiểu tổng quan về kiểm thử phần mềm

bởi Admin | 08/01/2024 12:04 | Blog

Cùng với sự bùng nổ của nghề lập trình viên, nghề Tester cũng đang tạo ra sức hút mạnh mẽ. Từ khoá Tester đang được nhắc đến ngày càng phổ biến. Tuy nhiên không phải ai cũng biết đến vị trí công việc này. Hoặc có chăng chỉ biết đến cái tên còn chưa biết rõ tổng quan về lĩnh vực kiểm thử phần mềm nói chung. Bài viết này sẽ giúp bạn có cái nhìn tổng về lĩnh vực này hơn. Từ đó quyết định có xem bản thân có thực sự phù hợp để theo đuổi hay không.

Kiểm thử phần mềm là gì?

Kiểm thử phần mềm là hoạt động tìm kiếm, phân tích, dự đoán và tiến hành sửa chữa các lỗi. Những lỗi này có thể phát sinh trong sản phẩm phần mềm trước khi tung ra thị trường. Kiểm thử phần mềm được xem là khâu cuối cùng để hoàn thiện một sản phẩm hoàn chỉnh. Trong kiểm thử phần mềm chia thành 2 loại gồm kiểm thử thủ công (manual) và kiểm thử tự động (automation). Trong quá trình kiểm thử các Tester có thể sử dụng các công cụ kiểm thử phần mềm hỗ trợ.

Các nhà kiểm thử phần mềm là những người sử dụng và trải nghiệm sản phẩm đầu tiên. Họ đóng vai trò là khách hàng để đánh giá các sản phẩm phần mềm. Thông qua sử dụng và trải nghiệm sản phẩm của chính bản thân để tìm kiếm các lỗi. Bên cạnh đó, sửa chữa các lỗi có thể phát sinh trong quá trình sử dụng. Nhờ đó mà mỗi sản phẩm công nghệ được trao cho khách hàng là những sản phẩm hoàn thiện và hạn chế tối đa lỗi phát sinh nhất có thể.

Giới thiệu tổng quan về kiểm thử phần mềm

Tổng quan về kiểm thử phần mềm

Tìm hiểu tổng quan về kiểm thử phần mềm

Tại sao phải kiểm thử phần mềm? 

Lý do cần kiểm thử phần mềm:

  • Kiểm thử phần mềm là yếu tố quyết định của SQA. Là khâu điển hình của rà soát đặc tả thiết kế và lập mã.
  • Muốn nhìn thấy phần mềm như là một phần tử của hệ thống hoạt động (xem sản phẩm) 
  • Hạn chế chi phí phải trả cho các thất bại do lỗi gây ra sau này (hiệu quả)
  • Có kế hoạch tốt nâng cao chất lượng cho suốt quá trình phát triển sản phẩm (giải pháp)

Tầm quan trọng của kiểm thử phần mềm:

  • Chi phí của kiểm thử chiếm 40% tổng công sức phát triển, ≥ 30% tổng thời gian phát triển
  • Với phần mềm ảnh hưởng tới sinh mạng chi phí có thể gấp từ 3 đến 5 lần tổng chi phí khác cộng lại.

Mục tiêu kiểm thử phần mềm là gì?

  • Mục tiêu trước mắt: Cố gắng tạo ra các trường hợp kiểm thử để chỉ ra lỗi của phần mềm với chi phí thấp nhất. Một trường hợp kiểm thử thành công là phải làm lộ ra những khiếm khuyết. Đồng thời nó cũng mang lại các lợi ích phụ khác.
  • Mục tiêu cuối cùng: có một chương trình tốt, chi phí thấp.

7 Nguyên lý kiểm thử

Kiểm thử đưa ra lỗi

Kiểm thử phần mềm có thể chứng minh được phần mềm có lỗi. Nhưng không thể chứng minh được phần mềm đó không còn lỗi hay không. Kiểm thử phần mềm giúp giảm xác suất lỗi chưa tìm thấy trong phần mềm. Vì vậy cần có một bộ test case tốt cover hết các trường hợp có thể xảy ra để tìm ra càng nhiều lỗi càng tốt.

Kiểm thử cạn kiệt là không thể

Nguyên tắc này có nghĩa là kiểm thử toàn bộ mọi thứ. Bao gồm cả điều kiện đầu vào và tiền điều kiện là không khả thi cho các trường hợp. Có rất nhiều giá trị đầu vào và hệ thống phức tạp. Thay vào đó ta nên vận dụng phân tích rủi ro, các kỹ thuật kiểm thử và độ ưu tiên để tập trung vào test các phần cần thiết có nguy cơ lỗi cao hơn.

Kiểm thử càng sớm càng tốt

Kiểm thử nên được bắt đầu càng sớm càng tốt trong vòng đời phát triển phần mềm. Lỗi càng được tìm ra sớm thì càng tiết kiệm được thời gian và chi phí fix lỗi.

Chính vì thế quá trình phân tích requirement là vô cùng quan trọng. Nó nên được phân tích kỹ càng để phát hiện lỗi sớm cũng như xây dựng phần mềm đúng theo yêu cầu khách hàng.

Sự tập trung của lỗi

Lỗi thường tập trung ở các chức năng chính có liên quan nhiều đến các chức năng khác trong hệ thống. Thông thường thì ta sẽ tìm được 80% lỗi của hệ thống trong 20% chức năng chính của hệ thống. Vì vậy cần phải test kỹ các chức năng quan trọng để tìm ra bug và test các chức năng.  Trong quá trình test chúng ta nên để ý đến các module thường xảy ra lỗi và tập trung test lại module đó trong lần 2, lần 3…

Nghịch lý thuốc trừ sâu

Nếu cùng một bộ test case đó ta test đi test lại nhiều lần sẽ bị nhờn và sẽ không tìm ra được bug mới. Hiệu quả của các lần kiểm thử sẽ giảm sau một số lần thực hiện. Vì vậy chúng ta nên suy nghĩ ra nhiều quan điểm test khác nhau và luôn update trong những lần test sau.

Kiểm thử phụ thuộc vào ngữ cảnh

Kiểm thử là khác nhau trong các ngữ cảnh khác nhau. Nếu bạn suy nghĩ test web và test mobile sẽ dùng các quan điểm test giống nhau thì điều đó là sai. Cũng như việc chúng ta test ok trên môi trường nhà phát triển nhưng khi chuyển sang môi trường production – môi trường của khách hàng chúng ta vẫn cần test lại.

Không có lỗi sai lầm

Không tìm thấy lỗi trên sản phẩm không đồng nghĩa với việc sản phẩm đã sẵn sàng tung ra thị trường. Bộ test case đó có thể tạo ra chỉ nhằm mục đích kiểm tra xem hệ thống đang hoạt động. Có đúng với yêu cầu hay không. Nó không nhằm mục đích tìm ra lỗi mới. Theo nguyên tắc 1 và nguyên tắc 2 thì ta không thể test được tất cả các trường hợp. Cũng không thể chứng minh rằng hệ thống không có lỗi nên hệ thống luôn luôn có lỗi tiềm ẩn bên trong. Lỗi có thể xuất hiện sau 1 năm, 2 năm, thậm chí 10 năm sau khi đưa vào hoạt động là điều rất bình thường. Đó cũng chính là lý do phần mềm luôn luôn cần bảo trì.

Quy trình kiểm thử

Phân tích yêu cầu: Kiểm thử thường sẽ bắt đầu lấy các yêu cầu trong các giai đoạn của vòng đời phát triển phần mềm. Trong giai đoạn thiết kế, các Tester làm việc với các nhà phát triển. Xác định những khía cạnh của một thiết kế được kiểm chứng và những thông số được kiểm tra.

Lập kế hoạch kiểm thử: Chiến lược kiểm thử, kế hoạch kiểm thử, kiểm thử sáng tạo… Và có một kế hoạch là cần thiết vì nhiều hoạt động sẽ được thực hiện trong thời gian kiểm thử.

Thiết kế kiểm thử: Các quy trình kiểm thử, thiết kế các kịch bản, Test Case. Các dữ liệu được sử dụng trong kiểm thử phần mềm.

Chuẩn bị môi trường: Chuẩn bị môi trường test, device test. Khi tham gia vào một dự án chúng ta cần biết mình cần phải test sản phẩm trên môi trường nào. Điều này có thể confirm với phía khách hàng, PO của dự án

Ví dụ: Sản phẩm cần test trên hệ điều hành Window, trình duyệt Chrome, latest version

Thực thi: Sau khi có bản build chính thức dựa vào kịch bản kiểm thử. Bộ test cases đã thiết kế chúng ta tiến hành kiểm thử. Dựa trên các kế hoạch, các văn bản kiểm thử và các báo cáo bất kỳ lỗi nào tìm thấy cho nhóm phát triển.

Kiểm thử báo cáo: Sau khi hoàn tất kiểm thử, các Tester tạo ra các số liệu và báo cáo cuối cùng về nỗ lực kiểm thử của họ. Sẵn sàng phát hành phần mềm hay không. Phân tích kết quả kiểm thử hoặc phân tích thiếu sót được thực hiện bởi đội ngũ phát triển. kết hợp với khách hàng để đưa ra quyết định. Xem những thiếu sót gì cần phải được chuyển giao, cố định và từ bỏ hoặc giải quyết sau.

Test lại khiếm khuyết: Khi một khiếm khuyết đã được xử lý bởi đội ngũ phát triển. Nó phải được kiểm tra lại bởi nhóm kiểm thử.

Kiểm thử hồi quy: Người ta thường xây dựng một chương trình kiểm thử nhỏ. Đó là tập hợp của các bài kiểm tra cho mỗi tích hợp mới. Cũng như sửa chữa hoặc cố định phần mềm. Để đảm bảo rằng những cung cấp mới nhất đã không phá hủy bất cứ điều gì và toàn bộ phần mềm vẫn còn hoạt động một cách chính xác.

Muốn trở thành một Tester thì bạn cần những gì?

Muốn trở thành một Tester không khó. Quan trọng là bạn có đủ nỗ lực trau dồi hay không. Khi nhận bất cứ một nhiệm vụ, công việc Testing nào, yếu tố quyết định đó là bạn biết mình nên và sẽ làm gì.

Về kiến thức cơ bản

Nếu không có kiến thức thì cho dù bạn có đam mê, thiện chí đến đâu thì cũng không thể tin tưởng giao nhiệm vụ cho bạn được. Cụ thể, ngoài một số yêu cầu cơ bản đối với Tester. Như kiến thức nền tảng căn bản về máy tính, tin học văn phòng, sử dụng internet. Cách cài đặt phần mềm. Điều này đòi hỏi tiên quyết đầu tiên là cần phải biết đọc, phân tích phần mềm mới có thể kiểm thử. Đồng thời phát hiện lỗi sai nếu có. Bạn cũng nên tìm hiểu và biết về các kiến thức lập trình, cụ thể ở các mảng như SQL, HTML hay CSS. 

Không cần quá chuyên sâu như dân lập trình, nhưng ít nhất một Tester cũng phải biết cái mình đang kiểm thử nội dung nó như thế nào. Điều này khá quan trọng, bởi vì công việc thường ngày của Tester đa phần sẽ là viết code để kiểm tra phần mềm. Bất kỳ trong một công việc gì cũng thế, bạn càng trang bị cho mình nhiều kiến thức thì bạn càng có lợi thế và cơ hội cao.

Kiến thức chuyên ngành của Tester

Thứ hai đó là có những kiến thức tổng quan về kiểm thử phần mềm (nắm rõ các khái niệm, thuật ngữ chuyên ngành, nắm được quy trình kiểm thử). Nó có khả năng thiết kế test case hiệu quả. Quy trình kiểm thử phần mềm cơ bản có bước như sau:

  • Bước 1: Test planning and control (lập kế hoạch và kiểm soát phần kiểm thử)
  • Bước 2: Test analysis and design (phân tích và thiết kế)
  • Bước 3: Test implementation and execution (thực thi và chạy test)
  • Bước 4:  Evaluating exit criteria and reporting (đánh giá và báo cáo)
  • Bước 5: Test closure activities (kết thúc hoạt động kiểm thử)

Còn một lưu ý nữa khi testing đó là khả năng Description bug (mô tả lỗi). Khi làm việc cùng developer và khách hàng thì bạn nên cẩn thận quá trình này. Vì nó là bước diễn đạt ý tưởng của chính mình. Thông thường sẽ có bốn bước Description bug như sau: Summary (phần tóm tắt, sơ lược bug, đây giống như phần title (tiêu đề)), Bug Steps (các bước viết bug), Actual result (miêu tả thực trạng của bug), Expected Result ( Kết luận của Tester sau quá trình thử nghiệm và báo cáo, đưa ra các giải pháp của mình).

DOWNLOAD NGAY MIỄN PHÍ TRỌN BỘ TỔNG HỢP 20+ TÀI LIỆU TESTER CHO NGƯỜI MỚI BẮT ĐẦU

Kỹ năng mềm cần thiết

Về kỹ năng: có 2 kỹ năng mà theo mình là quan trọng nhất đó là kỹ năng làm việc nhóm và giao tiếp. Kỹ năng đầu tiên sẽ giúp bạn dễ dàng kết nối với các thành viên khác, đặc biệt là developer. Công việc của một nhà kiểm thử có thể hiểu là cầu nối giữa nhà phát triển phần mềm và người sử dụng phần mềm. Developer thì hoàn thiện phần mềm, còn khách hàng thì an tâm hơn về sản phẩm. Kỹ năng thứ hai thì cũng quan trọng không kém. Tester là người giao tiếp, trao đổi với nhiều bên như quản lý, developer, khách hàng. Nếu không giỏi giao tiếp thì rất khó truyền đạt cho người khác hiểu ý của bạn.

Về phẩm chất: Đó là đam mê, kiên trì, lì đòn và cầu tiến. Bạn phải thích công việc mình làm thì mới có đủ nhiệt huyết để theo đuổi nó. Nếu không chỉ cần gặp một vài khó khăn bạn sẽ thấy hoang mang và chán liền. Kiên trì và lì đòn? Đúng vậy, làm bất cứ việc gì, đặc biệt là trong mảng công nghệ, phải luyện nhiều thì mới nâng cao tay nghề, có nhiều kinh nghiệm. Đa số những anh chị em làm testing mà mình quen đều khá “lì lợm”. 

Cuối cùng là cầu tiến. Hoạt động trong mảng công nghệ mà bạn cứ khư khư ôm những tàn dư “vang bóng một thời” thì sao tiếp cận cái mới, làm sao bắt kịp xu hướng tiến bộ được? Một là mỗi ngày một phát triển hai là sớm muộn bạn cũng sẽ đào thải bản thân ra khỏi ngành thôi.

Một Tester chuyên nghiệp thì cần rất nhiều yếu tố. Năng lực làm việc và phẩm chất sẽ tạo nên thương hiệu riêng cho mỗi Tester

Tham khảo: Bật ngửa với mức lương của chuyên viên kiểm thử phần mềm

Kết luận

Đó là tất cả là những kinh nghiệm, cũng như lời khuyên mà chúng mình dành cho các bạn. Hi vọng sau khi chúng ta đã tìm hiểu tổng quan về kiểm thử phần mềm thì bạn sẽ có cho mình những suy nghĩ, bài học bổ ích. Hi vọng những chia sẻ trên sẽ có ích đối với tất cả các bạn. Chúc các bạn thành công!

Download - Giáo trình thuật toán

3 + 13 =

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

10 + 3 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM