Công việc cụ thể của tester là gì? (ở Việt nam)

Hỏi đáp các thông tin khác về software testing
shi
Fresher Tester
Posts: 15
Joined: Tue 29 Oct, 2013 9:36 pm
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by shi »

tvn wrote: WB hay BB và các level không phụ thuộc nhau. Level này có thể thực hiện ở WB hoặc BB, tương tự level khác cũng có thể thực hiện trong WB hay BB.
Mình thích câu này của bạn rùi đó :d. Vì mình có đọc tài liệu nói là mức Unit testing thực hiện ở Whitebox. Vậy điều đó là sai ? Đúng ra phải nói các mức Unit testing, Integration Testing, System Testing, Acceptance Testing đều có thể được thực hiện ở WB và BB.(đúng chứ ?)

Vì lúc người khác hỏi ,mình mong có 1 câu trả lời đúng cho họ, bây giờ tài liệu testing không chung "nguồn" gì hết. Nhân tiện cho mình hỏi, ngoài ISTQB ra thì còn certificate của tổ chức nào khác không?
(p/s: nút thank bấm chỗ nào vậy bạn :D)



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by tvn »

Thật sự, thì khi nói Unit test, 98% mọi người ngầm hiểu là đang ám chỉ cho việc thực hiện "unit test" của DEV là viết mấy cái lệnh assert() của họ để verify code. Nên mình khuyên mọi người trong lớp học của mình rằng, khi trả lời thì nên nói là thực hiện "kiểm thử thành phần" hoặc "component testing" thì nó sẽ tổng quát và ít bị "hiểu nhầm" hơn là nói "unit test".

Đa số các công ty đều thực hiện kiểm thử ở mức integration hoặc system test Nhưng cũng có nhiều công ty họ thực hiện mức unit test (component test) trước. Điển hình như công ty cũ của mình, làm ứng dụng web, đầu tiên DEV viết 1 màn hình như "search nhân viên", khi dev code thì mình viết test case rồi tạo dữ liệu test, code xong rồi thì tiến hành test.

Viết test case: dựa vào tài liệu thiết kế chi tiết (đúng nghĩa luôn => vì nó mô tả thông tin chi tiết cho từng item như thuộc tính text field hay label, input hay output, kiểu dữ liệu chữ hay số, max cho phép nhập bao nhiêu ký tự, hiển thị được tối đa bao nhiêu ký tự, format kiểu ngày tháng, số tiền hay chữ,...)

Tạo dữ liệu test: chưa có màn hình tạo nhân viên thì sao? phải vào DB tạo dữ liệu bằng tay trực tiếp trong DB, nhiều lúc dữ liệu ràng buộc, quan hệ giữa các table và điều kiện phức tạp phải mất cả ngày hoặc 2 ngày để tạo vài chục dòng dữ liệu. Lúc này là cần kiến thức DB.

Khi test, chưa có màn hình quản lý nhân viên, vậy search nhân viên sao được? Phải giả lập 1 trang web trắng nhách, chỉ có nút search. Click vào nút search này thì nó show màn hình "search nhân viên" cần test. Mình nhập thông tin vào đó mà test.

Sau khi test xong xuôi, có bug, rồi fix bug, test lại,... rồi done nghĩa là release màn hình này.

Một ngày đẹp trời nào đó, màn hình quản lý nhân viên được code xong (người khác code, người khác test, có khi mình biết ít hoặc không biết gì về nó) thì bị báo bug về màn hình search, vì không search được. Cuối cùng điều tra ra lý do là một số param truyền từ màn hình quản lý nhân viên sang màn hình search bị sai, có khi màn hình search làm sai, nhưng mình không phát hiện ra được. Vì lúc trước chỉ test trong màn hình search, không test đến vụ chuyển param từ màn hình khác vào.

Những việc mình vừa là thì chỉ có thể gọi là thực hiện component testing (test ở mức kiểm thử thành phần)

Forum mình không có nút thanks, thay vào đó bạn click g+ hoặc like là đồng nghĩa với thanks rồi, cám ơn bạn đã "thích" forum này.



shi
Fresher Tester
Posts: 15
Joined: Tue 29 Oct, 2013 9:36 pm
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by shi »

Kaka....:D Cám ơn bạn cho mình 1 ví dụ rất thực tế :D
Theo như bạn mô tả thì mình nghĩ bạn chỉ đang dùng phương pháp Black box. Nhưng theo http://en.wikipedia.org/wiki/Software_testing thì "Unit testing, also known as component testing, refers to tests that verify the functionality of a specific section of code" lại được dùng theo phương pháp White box. Mình nghĩ Component testing có thể được dùng cả trong BB và WB. Mình hiểu vậy đúng không?

Có người hỏi mình là:
"Có bao nhiêu mức test trong 1 chu trình kiểm thử phần mềm? Và mỗi mức test ấy dùng phương pháp White Box hay Black Box?"

"Các kiểu test có thể thực hiện được trong mỗi mức test. Và Component Testing có phải là Functional Testing không?"

Câu trả lời của mình là:
"Có 4 mức test, Component(WB), Integration(WB or BB), System(BB), Acceptance(BB) nhưng thông thường các công ty chỉ dùng 3 mức test đầu để tiết kiệm chi phí"

Bạn có thể nhận xét và bổ sung giùm mình câu cuối không?



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by tvn »

shi wrote: http://en.wikipedia.org/wiki/Software_testing thì "Unit testing, also known as component testing, refers to tests that verify the functionality of a specific section of code" lại được dùng theo phương pháp White box. Mình nghĩ Component testing có thể được dùng cả trong BB và WB. Mình hiểu vậy đúng không?
Bạn hiểu như vậy cũng được, như mình đã nói ở trên, tùy loại test nào mà nó có thể thực hiện được ở các mức test khác nhau. Nói ngược lại suy nghĩ của bạn, ví dụ loại test (test type) chức năng thì thực hiện ở mức component là như mình đã ví dụ; còn áp dụng loại test cấu trúc bên trong hệ thống ở mức component thì mình hay gọi là unit test.

với câu hỏi này
Có bao nhiêu mức test trong 1 chu trình kiểm thử phần mềm? Và mỗi mức test ấy dùng phương pháp White Box hay Black Box?"
Các mức test trong 1 dự án, 1 công ty có thể khác nhau chứ không phải lúc nào cũng là 4 mức (unit => integration => system và acceptance)
Nhiều công ty làm web, họ có sẵn web rồi, khi có khách hàng mới họ chỉ cần sửa vài chỗ nào đó rồi test lại, họ không bao giờ test ở mức component mà chỉ thường làm ở mức system testing thôi.

Với dự án mới hoàn toàn, thì có thể có full 4 mức.



shi
Fresher Tester
Posts: 15
Joined: Tue 29 Oct, 2013 9:36 pm
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by shi »

shi wrote:
"Các kiểu test có thể thực hiện được trong mỗi mức test. Và Component Testing có phải là Functional Testing không?"
Kaka...mình hiểu rùi. Component Testing là mức test. và function testing là 1 test type thực hiện trong mức test đó. Right ? :P



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by tvn »

Đúng rồi đó :D



Pbm20032016
Hoc Tester
Posts: 3
Joined: Wed 27 Apr, 2016 12:26 am
Contact:

Re: Công việc cụ thể của tester là gì? (ở Việt nam)

Post by Pbm20032016 »

tvn wrote:Chắc cũng có nhiều người thắc mắc không biết công việc của một tester là gì? Hôm nay mình xin mạn phép nói đôi điều về công việc của một tester ở Việt nam.

Chắc các bạn cũng nghe nói về QC trong các lĩnh vực sản xuất hay trên một số sản phẩm có dán một mẩu giấy nhỏ nhỏ tròn tròn ghi là "QC passed". Trong các lĩnh vực sản xuất, công việc QC là kiểm tra sản phẩm được sản xuất ra có đúng theo yêu cầu chưa. ví dụ, một cái áo trước khi xuất xưởng phải đạt các tiêu chuẩn: kích thước, màu áo, đường chỉ may, túi áo, cúc (nút) áo,...v.v. nếu không đạt một trong số các tiêu chuẩn này thì sản phẩm này sẽ bị loại ra. Các ngành sản xuất khác cũng làm vậy, nhưng mỗi ngành có mỗi cách kiểm tra, thiết bị hỗ trợ kiểm tra khác nhau.

Image

Trong lĩnh vực sản xuất phần mềm thì cũng cần có QC - là người kiểm tra chất lượng của sản phẩm phần mềm vừa được xây dựng có phù hợp với yêu cầu của khách hàng hay chưa. Cũng có nhiều người thường gọi QC là Tester nhưng nếu nói sát nghĩa thì Tester là người thực hiện test sản phẩm, còn nếu nói QC thì người này không những test phần mềm mà còn làm nhiều việc khác nữa như viết test case, viết test plan,...

Trong lĩnh vực sản xuất phần mềm, để sản xuất được một sản phẩm phần mềm phải trải qua nhiều công đoạn và tốn nhiều nhân lực, thường thì người ta gọi quá trình sản xuất 1 sản phẩm phần mềm này là "dự án ABC" với "ABC" là tên của sản phẩm.

Công việc của một QC trước tiên là phải được đào tạo về nghiệp vụ của dự án mà mình chuẩn bị tham gia, sau đó họ sẽ tìm hiểu tài liệu liên quan đến dự án, tài liệu hướng dẫn, các qui định riêng cho từng dự án, và tiếp theo khi dự án bắt đầu, công việc của người quản lý nhóm tester của dự án này (có thể là QC leader hoặc một QC bình thường) sẽ viết test plan (kế hoạch test sản phẩm này) sau đó lên kế hoạch (schedule) cho việc test dự án này, trong bảng kế hoạch này sẽ cho biết ai làm phần nào (module nào, màn hình nào, chức năng nào...) sau đó, các bạn QC trong nhóm tham gia dự án này sẽ tiến hành đọc spec của màn hình, chức năng đã được phân công trong schedule (spec= bản mô tả chi tiết về xử lý và layout của một chức năng hay màn hình - đang nói về phần thiết kế chi tiết, vì có khi spec cũng là bản mô tả xử lý của một chức năng gồm nhiều màn hình liên kết với nhau). Trong khi đọc hiểu spec các bạn QC sẽ viết test case (còn gọi là thiết kế test case - test case design). Trong quá trình đọc spec và viết test case, nếu gặp chỗ không hiểu, QC sẽ viết QA (Question & Answer) để liên hệ với bộ phận thiết kế chi tiết (nơi viết ra spec) để hỏi hoặc xác nhận lại vấn đề mà mình không hiểu.

Sau khi DEV lập trình xong màn hình/chức năng ACB và yêu cầu QC test, thì lúc này QC sẽ dựa vào test case mình đã viết để test màn hình/chức năng này. Trong khi test, nếu phát hiện lỗi thì QC sẽ post lỗi này vào chương trình quản lý lỗi (tùy mỗi công ty sẽ có chương trình quản lý lỗi khác nhau, có thể viết bằng excel hoặc tự viết chương trình riêng hay sử dụng các chương trình miễn phí, thương mại của công ty khác - ví dụ: Mantis, Bugzilla). Khi có lỗi thì DEV sẽ sửa lỗi, hoặc không sửa (nếu lỗi mà QC post lên không phải là lỗi của chương trình mà do QC làm sai thao tác - ví dụ như vậy). Trong quá trình test QC là người tạo data dùng để test chức năng/màn hình của mình, có khi do một người nào đó chuyên trách tạo data để test.

Sau khi DEV đã sửa lỗi xong, thì QC có nhiệm vụ là phải test lại - regression testing, nếu lỗi đã được khắc phục thì QC thực hiện thao tác "đóng" lỗi trên chương trình quản lý lỗi (chuyển trạng thái của lỗi sang trạng thái đã khắc phục xong). Nếu lỗi vẫn còn xảy ra thì chuyển trạng thái lỗi sang trạng thái "mở lại - reopen" (trạng thái vẫn còn lỗi sau khi đã sửa). Lặp lại quá trình này cho đến khi nào màn hình/chức năng đang test không còn phát hiện ra lỗi nữa. (không hẳn là "sạch lỗi" - chẳng qua mình chưa phát hiện được thôi :))

Sau khi test xong một màn hình/chức năng thì QC sẽ làm một bản báo cáo cho Quản lý dự án và mọi người trong dự án biết: trạng thái của màn hình ABC đã hết lỗi hay còn lỗi gì khó không khắc phục được và những thông tin chi tiết khác theo qui định của dự án hoặc công ty,...

Nếu công ty hay dự án có thực hiện test ở mức tích hợp hay mức hệ thống thì sau khi test xong ở mức đơn vị (test từng màn hình/chức năng) sẽ tiến hành thực hiện test ở mức hệ thống - system testing. (mức này cũng được viết test case - công việc này có thể do một QC nào khác đảm nhiệm)

Sau khi test xong và dự án hết lỗi thì tiến hành đóng gói giao cho khách hàng.

Trên đây là mô tả công việc bình thường, chung chung của một tester (QC), vì tùy vào mỗi công ty, tổ chức hay dự án khác nhau tester có một số công việc khác nhau nữa (ví dụ như tạo data để test, thiết kế chỉnh sửa hình ảnh để test, review code, thiết lập môi trường test,...).

Cám ơn các bạn đã quan tâm.
Thực sự rất cám ơn những bài viết của .Rất cụ thể và rõ ràng cho những bạn new bie trong ngành nghề này :roll:



Post Reply

Return to “Others - Các vấn đề khác”