-->
ads here

[First post] Tôi đã trở thành tester như thế nào?

advertise here

Content


  1. Giới thiệu
  2. Tester là gì? Vai trò của tester trong một dự án phần mềm
  3. Công việc cụ thể của tester là gì?
  4. Phân biệt các khái niệm QA engineer, QC engineer và Software tester
  5. Con đường của tôi khi trở thành tester tại một start up
---

1.Giới thiệu
Hello, mình là Huy, đây là blog post đầu tiên của mình. Sau bao năm tháng ngày ấp ủ và chiến đấu chống lại căn bệnh lười, mình đã quyết định xây dựng và viết blog để chia sẻ những thứ xung quanh cuộc số của một dân IT như mình. Blog này sẽ không giới hạn chủ đề bao gồm về lĩnh vực IT như coding, testing hay các công nghệ liên quan; bên cạnh đó còn có thể là những bài viết về những thứ “Ngoài lề” khác như review một cuốn sách mình thấy là hay, một số cách để cải thiện productivity (một trong những chủ đề mình rất hứng thú) vân vân và mây mây…
Và đây là bài viết đầu tiên cho blog này. Mình rất đau đầu khi chọn chủ đề để viết “first article”, sau khoảnng 3 ngày suy nghĩ thì đã quyết định chọn viết về công việc hiện tại của mình, Software Tester.
It's me :D 
PS: Đây là bài viết đầu tiên, chắc chắn sẽ có nhiều thiếu sót, mong các bạn có những feedback mang tính xây dựng để mình có thể cải thiện dần chất lượng cho các post sau… Thanks! 


2.Tester là gì? Vai trò của tester trong một dự án phần mềm.
Công việc của mình là một tester, nên đầu tiên mình sẽ định nghĩa tester là gì theo quan điểm cá nhân.
Vậy Tester là gì?
Theo mình tester là người có vai trò và trách nhiệm tìm ra những lỗi tiềm ẩn trong hệ thống phần mềm như web, app. Cụ thể, sau khi dev code xong một chức năng nào đó, tester có trách nhiệm test lại những feature đó để đảm bảo xem những tính năng đó đã đúng với requirement của phần mềm hay của khách hàng hay chưa. Nếu đúng ok, that’s good. Nếu không đúng thì tester sẽ phối hợp với dev để chỉ ra bug nằm ở đoạn code nào từ đó giúp dev fix lại vì mục tiêu tạo ra một sản phẩm phần mềm có chất lượng tốt nhất có thể.
Bên cạnh đó, tester có nhiệm vụ report lại cho cấp trên - có thể là QA lead hay PM -  những thông số về chất lượng của phần mềm từ đó giúp QA lead hay PM có thể đánh giá về chất lượng phần mềm để có những cải thiện…

So, thế vai trò của tester trong một dự án phần mềm là gì?
Nếu tóm lại trong một câu thì: vai trò của tester là người verify lại những gì dev làm có đúng với yêu cầu, đặc tả của phần mềm hay không, đồng thời đảm bảo phần mềm không thực hiện những thứ không được mô tả trong đặc tả, yêu cầu.
Nếu ông BA là người làm việc trực tiếp với client, bào bào bào khách hàng để khai thác hết những yêu cầu về phần mềm của client xong đóng gói lại thành document - thường là SRS - Software Requirement Specification- và ném nó cho design và dev. Design thiết kế UI và dev gõ gõ, code code theo SRS. Và cuối cùng, tester có vai trò đảm bảo những cái ông dev làm ra nó đúng với thiết kế của ông design và những yêu cầu đặt ra trong SRS.


3.Công việc cụ thể của tester là gì?
Để đảm bảo hoàn thành tốt những vai trò của mình trong dự án phần mềm, thì tester phải thực hiện những công việc cụ thể sau (*):
  • Thiết kế test/Testcase design: Khi bắt đầu dự án, tester sẽ nhận đọc test plan để biết mình phải test những tính năng gì? Thời gian test như thế nào? Sau đó dựa vào đặc tả SRS để viết những testcase để cover hết các trường hợp có thể xảy ra khi user sử dụng phần mềm. Một testcase sẽ gồm 3 phần chính: test input - dữ liệu hay tương tác của người dùng với hệ thống; Expected result -  Kết quả mong muốn theo đặc tả; và cuối cùng là Actual result - Kết quả thực tế mà phần mềm trả về khi nhận vào test input
  • Thực hiện test/ Test execution: Sau khi đã thiết kế testcase xong, và dev đã deliver ra những tính năng thì tester sẽ thực hiện test để đánh giá phản ứng của phần mềm so với yêu cầu đặc tả. Thực hiện test bao gồm 2 cách là manual testing và automation testing. Dù thực hiện bằng cách nào thì các bước thực hiện một testcase như sau:
    1. Tester nhập test input vào phần mềm
    2. So sánh kết quả phần mềm trả về Actual result với Expected result
    3. Nếu Actual result trùng với Expected result thì testcase đó passed,  còn nếu Actual result khác với Expected result thì ngược lại, testcase đó failed.
    • Re-test: sau khi thực thi test, tester sẽ report lại những testcase failed với dev, trao đổi để tìm cách fix những những testcase đó sao cho pass. Sau khi dev fix xong thì tester sẽ thực hiện lại testcase đó để đảm bảo việc fix của dev là đúng. Việc này sẽ lặp lại cho đến khi trạng thái của testcase chuyển từ “failed” sang “passed”
    • Test hồi quy/Regression test: Nếu bạn nghĩ sau khi fix để chuyển testcase thành passed xong là xong thì bạn đã nhầm, tester còn phải thực hiện một việc quan trọng không kém đó là regression test. Vì sao lại như vậy? Bởi vì không gì đảm bảo rằng testcase mà dev vừa fix xong đã pass nhưng liệu nó có ảnh hưởng đến các tính năng khác hay không? Regression test có vai trò như thế. Sau một loạt các re-test, tester sẽ thực hiện test hồi quy để đảm bảo rằng những thay đổi của dev dù đã pass re-test có gây ảnh hưởng đến các tính năng khác hay module khác trong hệ thống phần mềm hay không.
    • Viết báo cáo/Report: công việc cuối cùng của tester là report lại quá trình test của mình thông qua việc hoàn thành các báo cáo, biểu mẫu. Những báo cáo, biểu mẫu này có thể ít hay nhiều tuỳ thuộc vào từng quy trình của từng công ty.
    (*): Ở mỗi công ty khác nhau thì công việc có thể khác nhau nhưng đây là những công việc mà mình thấy gần như các tester ở các công ty khác đều phải thực hiện 

    4.Phân biệt các khái niệm QA engineer, QC engineer và Software tester
    Nãy giờ trên các mục trên, mình toàn dùng là tester. Và mình biết khá nhiều bạn vẫn còn nhập nhằng về 3 khái niệm QA engineer, QC engineer và software tester. Nên mình mạn phép nêu ra định nghĩa về 3 khái niệm này theo  quan điểm cá nhân và tự tìm hiểu:
        QA engineer (Quality Assurance engineer): là người có trách nhiệm giám sát, quản lý và đảm bảo chất lượng của sản phẩm phần mềm. Họ có nhiệm vụ giám sát toàn bộ các bước trong quy trình phát triển phần mềm để đảm bảo chất lượng thiết kế; đảm bảo phần mềm được theo đúng những tiêu chuẩn của công ty. Kỹ sư QA chịu trách nhiệm đảm bảo sản phẩm hoạt động tốt trước khi release public
        Vậy QC engineer hay Quality Controll engineer là gì? Là người chịu trách nhiệm thực hiện công việc kiểm tra chất lượng phần mềm. Đối với mình Software tester và QA engineer là một ^^

    5.Con đường của tôi khi trở thành tester tại một start up
    Mình bắt đầu vị trí tester với xuất phát điểm là từ dev chuyển sang. Lúc đầu công ty mình không có bộ phận này, tuy nhiên, trong quá trình phát triển công ty phát sinh nhu cầu về bộ phận test nên sếp đã đề nghị mình làm vị trí này. Lúc đó chả hiểu vì sao mình một ông dev chả bik khỉ j về test lại gật đầu đồng ý (Chắc có lẽ thấy cái này lạ nên muốn làm và muốn trải nghiệm cái mới ^^). 

    Khi bắt đầu vị trí mới này mình bắt đầu bằng việc thử viết unit test để hiểu hơn về test. Mình viết unit test cho app iOS tại thời điểm đó của công ty. Sau khoảng hơn 1 tuần vật vã mày mò vừa tìm hiểu Swift vừa viết unit test, điều mình thấy khác biệt nhất giữa dev và tester chính là mind set. Nếu dev với suy nghĩ là làm tính năng nó ra đúng với yêu cầu thì tester phải đứng dưới góc nhìn của user, phải nghĩ ra những case sai, những case mà khách hàng có thể thực hiện với phần mềm trong thực tế. Bên cạnh đó, tester còn phải nhìn phần mềm theo những góc nhìn khác đa chiều hơn như của dev, của hacker... để thấy được bức tranh tổng quan hơn về phần mềm, để rồi từ đó viết testcase.
    Khi đã hiểu hơn vấn đề, mình bắt đầu tập tò tìm hiểu làm cách nào để trở thành tester, tester là gì? họ phải làm gì? Bằng cách research trên mạng. Và khi đó mình tìm được một trang khá là hay đó là Software Testing Help. Trên này có chứa rất đa dạng và phong phú những thứ mà tester cần: từ phương pháp, cách thực hiện, các mẫu report…
    Tiếp sau đó mình tìm hiểu và áp dụng thực hiện manual test vào dự án của công ty, sau đó là automation testing với framework nổi tiếng là Selenium.
    Sau khi đã hiểu thêm rồi, thì bắt đầu tới nhu cầu test cho app mobile, do đó mình tìm hiểu đến Appium và một số các tool test khác và thực hiện nó đến bây giờ…
    Đó chính là con đường trở thành tester trong suốt 1 năm tính đến thời điểm này của mình…. Đến đây có lẽ đã quá đủ cho first article rồi. Rất mong mọi người có ý kiến feedback để mình cải thiện chất lượng những bài viết sau này hơn. Thanks!


    Advertisement
    COMMENTS ()