thắc mắc [Không đá đểu] Mấy bác xài mấy ngôn ngữ interpreted thì test kiểu gì

ThuyMy

Member
Bọn compiled khi chạy CI/CD nó compile thì cũng chặn hết 90% spelling, type error rồi. Còn như mấy interpreted lang thì chạy CI/CD chắc cũng không chặn được mấy lỗi đó nhỉ . Như thế thì chắc phải viết unit test để test đủ thứ hết nhỉ. Mình có cảm giác mấy ngôn ngữ interpreted lúc chạy nó cứ mong manh dễ vỡ thế nào ấy nhỉ =((. Mấy cty tuyển Python, NodeJS, Ruby... thì chắc đội tester chắc phải đông gấp 10 lần dev thì mới mong bớt bug được :censored:
 

drnoxxx

Junior Member
Dynamic language thì phải dựa vào unittest thôi chứ sao giờ :canny:

Có thằng ku Python từ ngày ra cái type annotation thì ngon hơn hẳn, giờ có thể dùng tool để detect mấy lỗi liên quan đến typing rồi.
 

nntgwww

Member
Thằng này chăm lập thớt nhảm vây. Từ f17 sang đây. Nhìn cách nói chuyên là biết ko biết viết test hay mẹ gì rồi.
Mấy anh tối ngày java. net lải nhải ngôn ngữ thượng đăng nhưng code thì éo bao giờ viết test :rolleyes:

Typing cũng éo chặn hết bug né, nói vậy cho vuông.
 

XxxCancerJukexxX

Đã tốn tiền
Thêm chức năng mới thì phải tự code thêm các unittest. Lỗi typing thì có các lead code test theo chuẩn format của dự án rồi, mỗi lần commit là test nó tự chạy, nhỡ có báo fail thì nó ngăn ko cho commit luôn :)
 

thang1812

Junior Member
bọn tôi còn phải viết test suite trước khi viết code nữa cơ ông ạ :doubt:

nói chung là lởm khởm, chán, kém cỏi và ko có tương lai đâu, ông đừng đâm đầu vào nhé
 

vipstarkpop

Member
bọn tôi còn phải viết test suite trước khi viết code nữa cơ ông ạ :doubt:

nói chung là lởm khởm, chán, kém cỏi và ko có tương lai đâu, ông đừng đâm đầu vào nhé
easy case thôi chứ method phức tạp phải cộng trừ nhân chia nhiều thì có mà mướt ông mới code được :LOL:)
 

duyquang6

Junior Member
Coding convention, precommit hook, unittest. Thậm chí compiled lang cũng phải implement mấy thứ đó trong project
 
Unit test kèm với code coverage, trước team mình set code coverage 95% lận, nên thời gian viết code chỉ 40%, thời gian viết test 60%, có khi hơn, 80 test 20 code cũng có :beauty:
Nhưng đấy lại không phải là vấn đề riêng của interpreted language, code cái nào cũng phải viết test thì mới đảm bảo chất lượng được.
 

thang1812

Junior Member
Unit test kèm với code coverage, trước team mình set code coverage 95% lận, nên thời gian viết code chỉ 40%, thời gian viết test 60%, có khi hơn, 80 test 20 code cũng có :beauty:
Nhưng đấy lại không phải là vấn đề riêng của interpreted language, code cái nào cũng phải viết test thì mới đảm bảo chất lượng được.
cái mà unittest nó hướng đến là khi có sự thay đổi trong bất kỳ phần nào của hệ thống thì cũng sẽ ko gây ra "bất ngờ" cho dev. Tức là một khi bị ảnh hưởng thì UT nó sẽ backup cho dev, không phải đợi đến lúc QC nó chạy cả tỉ test case ra bugs nữa.

Tuy nhiên nhiều người ko hiểu điều đó hoặc vì lý do gì đó mà viết test case UT rất "chống đối", ko có external dependency cũng mock, rồi thì expect toàn là function được call là hết. coverage cao nhưng chả có ý nghĩa gì về mặt đảm bảo chất lượng :doubt:
 
cái mà unittest nó hướng đến là khi có sự thay đổi trong bất kỳ phần nào của hệ thống thì cũng sẽ ko gây ra "bất ngờ" cho dev. Tức là một khi bị ảnh hưởng thì UT nó sẽ backup cho dev, không phải đợi đến lúc QC nó chạy cả tỉ test case ra bugs nữa.

Tuy nhiên nhiều người ko hiểu điều đó hoặc vì lý do gì đó mà viết test case UT rất "chống đối", ko có external dependency cũng mock, rồi thì expect toàn là function được call là hết. coverage cao nhưng chả có ý nghĩa gì về mặt đảm bảo chất lượng :doubt:
Nó phụ thuộc vào con người nữa, team lead tốt, kỷ luật chặt thì cứ review code thấy không đảm bảo là bắt viết lại ngay. Tính ra cái này viết mất thời gian mà còn viết dối nữa thì thà không viết còn hơn.
 

gâu_

Đã tốn tiền
không hiểu lắm, title thì hỏi về interpreted language nhưng nội dung thì giống hỏi dynamic type language, 2 cái khác nhau mà, đầy ngôn ngữ dạng interpreted nhưng là static type mà :doubt:
 

ThuyMy

Member
đầy ngôn ngữ dạng interpreted nhưng là static type mà :doubt:
Bản ví dụ vài cái cho em xem nào, chứ đã không có compile time thì declare type làm gì nữa.
Còn bọn type hint đi check lúc runtime thì chắc chỉ có tác dụng phụ họa với phối hợp với ide
 

ThuyMy

Member
không hiểu lắm, title thì hỏi về interpreted language nhưng nội dung thì giống hỏi dynamic type language
Khác chứ bác, compiled dynamic lang như groovy thì bỏ qua type check nó còn check đc syntax hoặc hiện warning lúc compile cho bác. Còn như intepreted thì chạy đến đâu check lỗi đến đó. Bác có static type thì cũng phải runtime mới check đc, sao mà cover hết đc
 

gâu_

Đã tốn tiền
Bản ví dụ vài cái cho em xem nào, chứ đã không có compile time thì declare type làm gì nữa.
Còn bọn type hint đi check lúc runtime thì chắc chỉ có tác dụng phụ họa với phối hợp với ide
Java thím à, cái jshell ấy không phải interpreted thì là gì :rolleyes:
 
Top