Manual Testing & Automation Testing

0

0

20/12/2022

LỜI MỞ ĐẦU :

Ngành Công Nghệ Thông Tin không ngừng phát triển mạnh mẽ trên thế giới nói chung và Việt Nam nói riêng. Nghề IT nếu nhận ngôi hậu thì không có cái nào nhận ngôi vua. Vừa có tiền, có quyền.

Trong nghề thì có rất nhiều miếng ngon, mảng bự cho anh chị em bay nhảy. Nhưng mình nói thật, mấy anh Coder thức đêm khuya thâm quầng cả mắt. BA thì ngồi họp hành cả ngày, bệnh văn phòng tỉ lệ tăng đột biến. PM thì ối dồi ôi, suy tư lo âu, đứng lên ngồi xuống liên tục, cơm bữa nuốt bữa nghẹn nên ruột chỗ nào nó lòi chỗ nấy. Nên mấy người đấy là vua thì QC cứ gọi là vua của mấy vị vua. Chúa tể anh em à.

QC thì cứ nhẹ nhàng, sáng lên cười cười chiều về bôi đỏ, báo cáo “FAIL” thì cứ gọi là tuyệt vời. Ai lo đó lo chứ mình xong việc rồi.

VẬY MỌI NGƯỜI ĐÃ THỰC SỰ BIẾT QC LÀ GÌ?

QC (Quality Control) là một quy trình để đảm bảo chất lượng sản phẩm và thậm chí là cải thiện sản phẩm tốt hơn nữa. Kiểm soát chất lượng đòi hỏi công ty phải tạo ra một môi trường nơi quản lý và nhân viên phấn đấu cho sự hoàn thiện. Điều này được thực hiện bởi nhân viên kiểm thử, tạo ra các tiêu chuẩn đánh giá chất lượng sản phẩm và thử nghiệm sản phẩm để tìm ra các lỗi, các vấn đề xung quanh sản phẩm.

Nhiệm vụ chính của QC là làm gì?

Công việc của QC sẽ thay đổi tuỳ vào ngành và sản phẩm. Nhưng nhìn chung, vẫn có những bước chính cần họ thực hiện cho dù là ở bất kỳ đâu:

  • Kiểm tra những nguyên liệu thô đầu vào và các sản phẩm trước khi được tung ra thị trường
  • Phải dựa vào thông số tiêu chuẩn theo bản thiết kế cho các sản phẩm để có các kế hoạch xem xét, đối chiếu cụ thể
  • Nếu xảy ra vấn đề ở khâu kiểm soát chất lượng, cần có những biện pháp xử lý nhanh chóng, cần thiết
  • Cần có tài liệu cụ thể, gồm cách thức hoạt động, báo cáo rõ ràng khi có kết quả
  • Có thể đề nghị thêm các tiêu chuẩn chất lượng cho đội sản xuất để kiểm soát chất lượng tốt hơn

ĐỐI VỚI QC CỦA NGÀNH IT THÌ CÔNG VIỆC CHÍNH CỦA HỌ ĐƯỢC GỌI LÀ KIỂM THỬ PHẦN MỀM

VẬY KIỂM THỬ PHẦN MỀM LÀ GÌ?

Kiểm thử phần mềm là một lĩnh vực rộng lớn, nhưng nó có thể được phân loại rộng rãi thành hai lĩnh vực: kiểm thử thủ công (Manual Testing) và kiểm thử tự động (Automated Testing).

Kiểm thử phần mềm là một phần không thể thiếu của bất kỳ dự án phần mềm thành công nào. Thử nghiệm thủ công hoặc thử nghiệm tự động cần dựa vào nhiều yếu tố khác nhau : yêu cầu khách hàng, chuyên môn đội sản xuất, chi phi hoạt động. Và điều quan trọng của bất kỳ dự án nào đó là đảm bảo thời gian sản xuất, chi phí vận hành và chất lượng sản phẩm. Dự án thành công nào chỉ khi giảm được chi phí và thời gian cần thiết để hoàn thành sản phẩm trong khi vẫn duy trì chất lượng đầu ra. Khi nói đến thử nghiệm, một loại có thể hoàn thành mục tiêu tốt hơn loại kia trong từng trường hợp cụ thể.

TRƯỚC TIÊN, HÃY CÙNG PHÂN TÍCH CÁC ƯU ĐIỂM ĐỂ THẤY ĐƯỢC LỢI ÍCH RIÊNG CỦA MỖI LOẠI 

MANUAL TESTING: Test case được thực hiện thủ công bởi người kiểm thử mà không sử dụng bất kì công cụ tự động nào hỗ trợ. Bao gồm các tác dụng như sau :

  • Phát hiện nhanh chóng các lỗi về giao diện
  • Chi phí thấp hơn so với kiểm thử tự động
  • Tìm kiếm nhân sự dễ dàng hơn (không yêu cầu người kiểm thử phải có các kỹ năng về lập trình)
  • Mô phỏng đúng với hành vi người dùng cuối, bám sát với thực tế nhiều hơn
  • Người kiểm thử có thể thực hiện dựa theo kinh nghiệm hoặc “tùy hứng” (gọi là adhoc testing) nên sẽ có thể phát hiện những lỗi kỳ quặc có thể to hoặc nhỏ. Có rất nhiều lỗi hệ thống vì những hành vi không đúng đến từ người dùng cuối.

AUTOMATED TESTING: Sử dụng các công cụ tự động để chạy các test script. Các ưu điểm của việc tự động hóa kiểm thử bao gồm :

  1. Thời gian thực thi ngắn
  2. Tiết kiệm nguồn nhân lực
  3. Có thể sử dụng lại đối với những chỗ cần kiểm tra lại nhiều lần
  4. QA có thời gian để research công nghệ mới, đầu tư đóng góp thêm ý tưởng để nâng cao chất lượng sản phẩm hơn.

NHƯ ĐÃ NÓI TỪ ĐỊNH NGHĨA, MỖI LOẠI KIỂM THỬ ĐỀU CHỈ ĐƯỢC ÁP DỤNG Ở TỪNG TRƯỜNG HỢP CỤ THỂ. KHÔNG PHẢI PHẦN MỀM NÀO CŨNG CẦN CẢ HAI LOẠI KIỂM THỬ MỘT LÚC BỞI NHỮNG NHƯỢC ĐIỂM DƯỚI ĐÂY:

ĐIỂM YẾU CỦA KIỂM THỬ THỦ CÔNG:

  1. Cần nhiều thời gian và nhân lực
  2. Đối với regression test, người thực thi sẽ phải lặp đi lặp lại mỗi lần release. Nếu số lượng test case quá lớn thì sẽ gây mất thời gian lần nữa, ảnh hưởng tiến độ dự án.
  3. Lỗi của con người . Đây là các lỗi bất cẩn do con người gây ra, cho dù là vô ý, do hiểu nhầm hoặc nhầm lẫn thì vẫn rất khó tránh. Điều tra nguyên nhân lúc này sẽ không hề dễ dàng.

ĐIỂM YẾU CỦA KIỂM THỬ TỰ ĐỘNG

  1. Khó khăn trong việc tuyển dụng nhân sự (Đòi hỏi người kiểm thử có kiến thức về lập trình)
  2. Chi phí về nhân lực và công cụ tự động rất cao
  3. Test script luôn cần được maintain, debug khi failed vì nhiều nguyên nhân khác nhau, ví dụ như: mã nguồn sản phẩm thay đổi, kết nối mạng không ổn định, môi trường test không ổn định

TỪ NHỮNG KIẾN THỨC Ở TRÊN, CHÚNG TA CÓ THỂ DỄ DÀNG TÌM NHỮNG ĐIỂM KHÁC NHAU GIỮA KIỂM THỬ THỦ CÔNG VÀ KIỂM THỬ TỰ ĐỘNG

Manual TestingAutomation Testing
Người thực thiĐược thực hiện bởi con ngườiĐược thực hiện bởi máy tính
Trình độ của người thực thiKhông đòi hỏi quá caoCần có hiểu biết về code
Sự đầu tưChi phí vừa phải, tập trung về mặt con ngườiTốn rất nhiều cho các công cụ (cả phần cứng và phần mềm)
Thời gianCần nhiều nhân lựcTốn nhiều thời gianCần ít nhân lựcThời gian thực thi ngắn hơn
Độ tin cậyKhông đáng tin cậy 100% vì có khả năng xảy ra lỗi của con người.Đáng tin cậy vì nó được thực hiện bằng các công cụ và kịch bản
Thời điểm áp dụngDự án nhỏ, thời gian thực thi không nhiều hay các test case không đòi hỏi chạy lại quá nhiều lầnDự án quy mô lớn, liên tục release nên đòi hỏi chạy đi chạy lại các test case nhiều lần
Thực thi song song (Parallel Execution)Cần nguồn nhân lực lớn khi thực thi song song kiểm thửCó thể thực hiện các nền tảng vận hành khác nhau với thời gian khiêm tốn
Phát hiện lỗi giao diệnĐáng tin cậy, chốt chặn cuối cùng cho việc kiểm tra UI/UXKhông thể kiểm tra UI/UX
Khi có thay đổi về giao diệnKhông ảnh hưởng nhiều đến tiến độ công việcTiến độ dự án bị thay đổi. Chỉ cần một thay đổi nhỏ trong giao diện AUT nhưng cần phải sửa đổi để hoạt động đúng như mong đợi
Kiểm thử khám phá (Exploratory Testing)Dễ dàng triển khaiKhông thể thực hiện
Kiểm thử hiệu năng (Performance Testing)Không có khả năng thực hiện kiểm thử hiệu năngThực hiện tốt kiểm thử Load testing, stress testing
Báo cáoMất thời gian nhiều cho việc tạo báo cáo cụ thể đầy đủNhanh chóng tạo báo cáo cụ thể và tự động gửi về các bên liên quan