Tag Archives: unit test

5 thái độ cần có của một developer thành công

Khi đã đi làm một thời gian, các bạn sẽ nhận ra nhận ra một điều là, đôi khi thái độ còn quan trọng hơn trình độ.

Công việc chính của lập trình viên là viết code, giải quyết vấn đề, tạo ra sản phẩm. Lẽ dĩ nhiên, trình độ code cao sẽ giúp bạn làm việc có năng suất hơn, giải quyết vấn đề tốt hơn.

Tuy vậy, để thành công và phát triển trong ngành này, bạn cũng phải có thái độ đúng đắn. Thái độ là cách bạn nhìn nhận công việc, cuộc sống, cách bạn hành xử khi gặp những vấn đề trong công việc.

Trong bài này, mình sẽ chia sẻ một số thái độ mà lập trình viên nên có để thành công trong ngành nhé!

Continue reading 5 thái độ cần có của một developer thành công

Sự khác biệt giữa developer thường và developer “xịn”

Có khi nào các bạn tự hỏi “Tại sao cùng là developer mà có người công nghệ gì cũng giỏi, lương nghìn đô, thăng tiến vù vù; có người thì lương 3 cọc 3 đồng, làm gì biết nấy, suốt ngày quanh quẩn làm outsource” chưa?

Những người giỏi hơn, thành công hơn (developer xịn) không phải là nhờ họ có IQ cao, trí tuệ hơn người, hay tốt nghiệp từ Đại Học danh tiếng này nọ. Họ thành công hơn vì họ có một thái độ tốt hơn, và cách làm việc đúng đắn hơn.

Kì này, hãy cùng mình tìm hiểu về sự khác biệt giữa developer thường và developer xịn thông qua những mẩu chuyện nhỏ của hai bạn Sơn (developer thường)Tùng (developer xịn) nhé.

Continue reading Sự khác biệt giữa developer thường và developer “xịn”

Làm trò với Puppeteer – Phần 3: Bắt đầu testing với puppeteer

Bài viết gồm 3 phần

Trong phần này, mình sẽ hướng dẫn các bạn viết automation test trong NodeJS với Puppeteer và Jest. Chúng ta cùng thử viết test tìm kiếm hàng hoá trên lazada nhé.

Kiến thức của phần này tuy cô đọng, ngắn gọn nhưng cần khá nhiều kiến thức nền nên các bạn đọc lại những bài này để nhớ lại kiến thức lại nhé!

  1. Tổng quan về testing, unit test và automation test
  2. Viết Unit Test với C# (Giải thích vai trò của unit test trong việc làm code tốt hơn)
  3. Viết Unit Test với Jasmine (Giải thích các khái niệm hay gặp khi viết unit test)

Continue reading Làm trò với Puppeteer – Phần 3: Bắt đầu testing với puppeteer

Tổng quan về testing – Phần 3: Công việc của tester, Automation Test có gì hot

 

Trong phần cuối này, chúng ta sẽ tìm hiểu về công việc thường ngày về của 1 tester và sự hay ho của automation test – một trào lưu khá nổi gần đây (Nói gần đây chứ nổi chắc cũng cả mấy năm rồi) nha.

Series gồm 3 phần:

Ở phần trước, mình đã có một sự so sánh nhẹ giữa manual testing và automation testing. Thật ra, manual testing là nền móng cho automation testing. Muốn tự động hoá một thứ gì, bạn phải biết cách thực hiện nó một cách thủ công trước.

Do vậy, mình sẽ kể các bạn nghe về công việc mà một tester phải làm hàng ngày, và automation testing sẽ giúp ta tiết kiệm thời gian như thế nào.

Continue reading Tổng quan về testing – Phần 3: Công việc của tester, Automation Test có gì hot

Tổng quan về testing – Phần 2: Phân biệt các loại testing và thuật ngữ chuyên ngành test

Trong phần này, mình sẽ hướng dẫn các bạn các phân biệt các loại testing cũng như giải thích các thuật ngữ trong ngành testing. Cuối bài, chúng ta tổng kết lại qua một câu chuyện nho nhỏ nhé.

Series gồm 3 phần:

Continue reading Tổng quan về testing – Phần 2: Phân biệt các loại testing và thuật ngữ chuyên ngành test

Tổng quan về testing – Phần 1: Tại sao lập trình viên cần biết về testing?

Sắp tới, mình sẽ có bài viết về automation testing với Pupeeteer. Tất nhiên, phương châm trước giờ của của mình vẫn là:

Công cụ không quan trọng, quan trọng hiểu và áp dụng kiến thức nền tảng.

Do vậy, trước khi hướng dẫn các bạn dùng tool và thư viện, mình sẽ nhắc lại kiến thức về testing mà chúng ta đã học ở trường nhé.

Series này sẽ có ích với toàn bộ developer, những tester mới ra trường hoặc những bạn đang tìm hiểu muốn chuyển ngành sang automation test.

Series gồm 3 phần:

Ở phần này, chúng ta cùng tìm hiểu về tầm quan trọng của testing cùng với quan hệ giữa developer và tester nhé!

Note: Giống như các khái niệm Agile và Scrum, mảng testing khá rộng, có thể coi như một chuyên ngành riêng.

Môn này ở trường học cũng khá dài, nội chuyện unit test hoặc automation test cũng tốn vài cuốn sách rồi nên trong vòng 1, 2 bài viết code dạo sẽ không nói hết được. Bạn nào có hứng thì cứ google tìm hiểu thêm nhé.

Continue reading Tổng quan về testing – Phần 1: Tại sao lập trình viên cần biết về testing?

Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

Với các bạn sinh viên, khái niệm Continuous Integration (Tích hợp liên tục) là một cái gì đó nghe rất cao siêu và hoành tráng. Mình sẽ nêu khái niệm, sau đó đưa ra một câu chuyện đơn giản để giải thích cho khái niệm này.

Tích hợp liên tục (CI) là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm tích hợp công việc thường xuyên. Mỗi ngày, các thành viên đều phải theo dõi và phát triển công việc của họ ít nhất một lần. Việc này sẽ được một nhóm khác kiểm tra tự động, nhóm này sẽ tiến hành kiểm thử truy hồi để phát hiện lỗi nhanh nhất có thể. Cả nhóm thấy rằng phương pháp tiếp cận này giúp giảm bớt vấn đề về tích hợp hơn và cho phép phát triển phần mềm gắn kết nhanh hơn. Trích từ: http://www.ibm.com/developerworks/vn/library/rational/201301/continuous-integration-agile-development/

Nếu không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới
Nếu không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới

Continue reading Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

[Tutorial] Viết Unit Test trong C# với NUnit

Giới thiệu tổng quan về Unit Test

trường đại học chắc các bạn đã được học khái niệm về Unit Test trong môn “Kiểm thử chất lượng phần mềm”. Nói một cách dễ hiểu, unit test tức là code dùng để test code ta đã viết.

Một số đặc điểm của unit test:

  1. Code unit test phải ngắn gọn, dễ hiểu, dễ đọc.
  2. Mỗi unit test là 1 đơn vi riêng biệt, độc lập, không phụ thuộc vào unit khác.
  3. Mỗi unit test là 1 method trong test class, tên method cũng là tên UnitTest. Do đó ta nên đặt tên hàm rõ ràng, nói rõ unit test này test cái gì (Test_A_Do_B), tên method có thể rất dàiii cũng không sao.
  4. Unit Test phải nhanh, vì nó sẽ được chạy để kiểm định lỗi mỗi lần build. Do đó trong unit test nên hạn chế các task tốn thời gian như gọi I/O, database, network,…
  5.  Unit Test nên test từng đối tượng riêng biệt. Vd: Unit Test cho Business Class thì chỉnh test chính BusinessClass đó, không nên dụng tới các class móc nối với nó (DataAccess Class chẳng hạn).

Continue reading [Tutorial] Viết Unit Test trong C# với NUnit

Viết unit test cho javascript với Jasmine – Phần 2

Tiếp nối phần 1, ở phần này mình sẽ giới thiệu một số chức năng nâng cao của Jasmine, giúp việc viết unit test được dễ dàng hơn.

Nếu chưa tải Jasmine về máy, các bạn nên đọc lại phần 1 để biết chỗ tải về và cách viết 1 số test case cơ bản. Nội dung bài viết lần này bao gồm:

  1. Một số matcher của Jasmine
  2. Cách dùng các hàm before, after
  3. Sử dụng spy và mock

Continue reading Viết unit test cho javascript với Jasmine – Phần 2

Viết unit test cho javascript với Jasmine

Blog có khá nhiều bài về code rồi nên hôm nay mình sẽ viết một bài để đổi gió.

1. Nhắc lại sơ về Unit Test

Trước khi có unit test, các lập trình viên thường code theo kiểu: code – test – fix lại – code tiếp – test lại – fix tiếp. Đôi khi chỉ vì sửa 1 lỗi nho nhỏ mà ta phải test lại rất nhiều lần. Để giải quyết vấn đề này, unit test và automation test ra đời. Mình không phải QA chuyên nghiệp nên không dám múa rìu qua mắt thợ, chỉ nói sơ về định nghĩa của 2 loại test này:

  • Unit test: Đây là test do developer viết, được chạy để kiểm tra các hàm do developer viết ra có sai hay ko. Unit test thường được chạy mỗi khi build để đảm bảo các hàm đều chạy đúng sau khi ta sửa code.
  • Automation test: Đây là test do QA viết, được chạy để kiểm thử hệ thống (Nếu không có automation test thì QA kiểm thử bằng tay, gọi làm manual test).

you-need-some-tests-yo

Continue reading Viết unit test cho javascript với Jasmine