Qua bài viết trước: Kiểm thử phần mềm là gì? Những điều bạn chưa biết về kiểm thử phần mềm có lẽ bạn đã nắm được một số khái niệm cơ bản. Bây giờ có thể bạn đang mắc kẹt và đang phân vân với một đống câu hỏi: “Liệu tôi có nên chọn kiểm thử phần mềm để bắt đầu sự nghiệp của mình hay không?”, “Tôi có nên học kiểm thử phần mềm hay không?”, “Học kiểm thử phần mềm thì làm công việc gì? Liệu có thể thăng tiến được hay không? Lương có cao không?” và “Nếu tôi muốn học thì tôi cần học những gì, bắt đầu từ đâu?”,…và có thể ngàn câu hỏi khác.
Bài viết này sẽ giúp bạn suy nghĩ và tự trả lời cho câu hỏi: “Liệu có nên theo đuổi sự nghiệp của tester hay không?”. Và tất nhiên, nếu câu trả lời của bạn sau khi đã đọc xong đoạn đầu tiên là “Có !!!” thì chúc mừng bạn! Bạn có thể tiếp tục đọc phần tiếp sau của bài viết để biết câu trả lời cho những câu hỏi khác từ kinh nghiệm của những tester lâu lăm trong ngành. Bài viết sẽ cung cấp một danh sách toàn diện để giúp bạn tự quyết định hướng đi cho mình. Nếu bạn quyết định chọn kiểm thử phần mềm thì đây là bài viết bạn CẦN PHẢI ĐỌC. Nào hãy bắt đầu.
Kiểm thử phần mềm, nên hay không?
Như đã trình bày ở bài trước, Kiểm thử phần mềm là một quá trình xác minh hệ thống hoặc chương trình máy tính nhằm xác định xem nó có đáp ứng được các yêu cầu đã chỉ định và tạo ra kết quả mong muốn hay không. Kết quả của quá trình kiểm thử là các lỗi, các chênh lệch yêu cầu trong sản phẩm hoặc dự án phần mềm thực tế so với yêu cầu được thiết kế.
Công việc kiểm thử đã trải qua những thay đổi to lớn trong khoảng chục năm trở lại đây. Ở thời tôi còn mới tốt nghiệp đại học, ở Việt Nam tester vẫn là một công việc kém hot và khó thăng tiến. Tuy nhiên, giờ đây và cả trong tương lai, điều này đã thay đổi hoàn toàn. Kiểm thử đã trở thành một phần không thể thiếu để cung cấp, triển khai một sản phẩm chất lượng và không có lỗi hay sự cố nào. Điều này đặc biệt quan trọng với các sản phẩm lớn, các hệ thống thương mại điện tử… Doanh nghiệp giờ đây đã nhận ra tầm quan trọng của việc kiểm thử các ứng dụng trước khi phát hành. Và do đó mức lương và đãi ngộ đối với tester cũng được chú trọng nhiều hơn. Số lượng các vị trí công việc cho tester cũng mở rộng về nhiều cấp độ.
Một tester sẽ làm gì?
Công việc chính của tester tất nhiên là kiểm thử phần mềm. Một ngày làm việc của tester sẽ bao gồm những việc như: tìm hiểu các tài liệu yêu cầu, thiết kế testcase, tạo test cases, thực hiện test cases, báo cáo và kiểm thử lại các test cases bị lỗi, tham dự các cuộc họp đánh giá và các hoạt động xây dựng team khác.
Mức lương và đãi ngộ của tester ra sao?
Mức lương của testers là khác nhau. Mức lương trung bình của một tester ở Mỹ là $ 45,993 – $ 74,935. Mức lương trung bình của một tester ở Ấn Độ là Rs 247,315 – Rs 449,111. Còn ở Việt Nam thì sao? Theo các khảo sát thì mức lương trung bình của tester tại Việt Nam là 11.7 triệu đồng/tháng. Tuy nhiên mức độ dao động khá cao, có thể trải từ 300 – 2000 USD, cá biệt có một số vị trí lên tới 3000 USD. Đây là mức lương khá cao tại Việt Nam và có lẽ không thua kém gì các vị trí khác.
Tuy nhiên khách quan mà nói thì đa số các công ty phần mềm trong nước nói riêng và lĩnh vực IT ở Việt Nam nói chung đều đánh giá cao developer hơn là tester. Nếu so sánh cả 2 bên ở cùng 1 mức khởi điểm thì có vẻ như lương của developer sẽ nhỉnh hơn 1 chút so với tester, nhưng nếu bạn đã ở trình senior và master thì điều này không còn đúng nữa.
Ngoài ra, một tester cũng được cung cấp bảo hiểm y tế, tiền thưởng và các đặc quyền khác như các vị trí khác. Do đó, về mặt thu nhập cũng như về mặt thăng tiến thì tester không hề kém cạnh các vị trí khác.
Vậy tôi có nên làm tester?
Bây giờ chúng ta sẽ quay trở lại câu hỏi chính “Liệu tôi có muốn làm một tester không?”. Bạn đã biết công việc của một tester và thấy được mức lương và khả năng thăng tiến khi làm tester. Mọi thứ đều khá thênh thang. Chưa kể nhiều lợi ích khác mà bạn có thể thu được khi làm tester (tham khảo bài viết Những lợi ích khi làm tester tại đây).
Tuy nhiên, không ai có thể hướng dẫn bạn chọn nghề nghiệp phù hợp ngoài chính bản thân bạn! Đó là quyền của bạn và bạn là người duy nhất quyết định sự nghiệp của bạn. Bạn cần tự đánh giá để tìm được công việc phù hợp nhất cho mình. Hãy nghiên cứu về kỹ năng, sở thích, điểm mạnh, điểm yếu của bạn.

Nguồn: BT&T
Hãy tự đặt cho mình một số câu hỏi như:
- Mục đích trong cuộc sống của bạn là gì, bạn muốn trở thành ai trong cuộc đời này?
- Điều gì sẽ làm tăng sự hài lòng và kỹ năng của bạn?
- Sở thích của bạn là gì?
- Bạn có sở trường và khả năng gì?
- Nếu bạn càm thấy hứng thú với công việc này thì bạn sẽ phát triển bản thân như thế nào, và bạn có sẵn sàng cam kết để học tập, bổ sung những kỹ năng còn thiếu một cách liên tục hay không?
Bằng cách trả lời những câu hỏi này, bạn sẽ tự động đưa ra quyết định cho riêng mình.
Hãy tiếp tục đọc tiếp nếu bạn muốn thử sức trong công việc kiểm thử phần mềm. Còn nếu không, hãy chuyển sang lĩnh vực khác!
Nếu bạn vẫn muốn tiếp tục, chúng ta sẽ chuyển sang phần quan trọng hơn ngay sau đây. Vậy muốn là tester thì cần gì?
Vai trò của các tester trở lên ngày càng quan trọng hơn và tester vì thế cũng trở thành một lựa chọn nghề nghiệp “hot” hơn và tất nhiên, kèm theo nhiều thách thức và kỹ năng cần thiết hơn.
CÓ THỂ BẠN QUAN TÂM: Top 10 ngôn ngữ lập trình phổ biến nhất năm 2018
Kiểm thử phần mềm cần những gì?
“Nếu bạn không học được điều gì mới mỗi ngày, bạn sẽ không thể kiểm thử tốt” – một câu nói khá nổi tiếng và tất nhiên là quá chính xác của Jerry (Gerald) Weinberg, một nhà khoa học máy tính và chuyên gia kiểm thử gạo cội. Điều này không chỉ đúng với lĩnh vực kiểm thử mà còn trong toàn bộ các lĩnh vực khác trong môi trường công nghệ phát triển vũ bão liên tục và đầy tính cạnh tranh như hiện nay. Các hiểu biết về kiểm thử trước đây đã thay đổi một cách chóng mặt ngày nay. Để đảm bảo công việc kiểm thử một cách hiệu quả trong môi trường phát triển liên tục và tích hợp hiện nay, các kỹ năng cần thiết đòi hỏi ở tester cũng có những thay đổi nhất định.
Dưới đây là những kỹ năng mà mọi tester nên thành thạo:
Các kỹ năng chuyên môn, kỹ thuật
Nắm vững các kỹ thuật và phương pháp kiểm thử
Việc nắm vững các kỹ thuật và phương pháp kiểm thử là kỹ năng cần thiết và cốt lõi nhất với một tester. Những kiến thức về các loại, kỹ thuật kiểm thử khác nhau như: kiểm thử hộp đen, kiểm thử thâm nhập, kiểm thử an toàn, kiểm thử hệ thống, kiểm thử đơn vị,… không những giúp ích cho bạn trong các buổi phỏng vấn xin việc mà còn giúp bạn làm tốt công việc thực tế, linh hoạt trên bất cứ loại ứng dụng và dự án nào.
Sử dụng thành thạo các công cụ kiểm thử
Để thực hiện việc kiểm thử thực tế, chúng ta không thể không sử dụng các công cụ. Có hàng trăm các công cụ kiểm thử có trên thị trường, từ những công cụ miễn phí lẫn trả phí với hàng loạt các chức năng khác nhau từ theo dõi lỗi, quản lý kiểm thử, kiểm thử GUI, cho đến kiểm thử an toàn, kiểm thử hiệu năng của phần mềm… Điều quan trọng đối với tester chúng ta là phải biết cách sử dụng thành thạo hoặc chí ít là sơ qua các công cụ này để phục vụ các yêu cầu với độ phức tạp khác nhau của dự án. Đặc biệt các công cụ dưới đây cần được sử dụng thành thạo:
- Các công cụ Quản lý kiểm thử (Test Management): Quản lý kiểm thử là một khía cạnh quan trọng của kiểm thử phần mềm. Việc quản lý kiểm thử sẽ giúp quản lý các lỗi, các pha trong quá trình kiểm thử nhằm giúp việc kiểm thử không chồng chéo và đảm bảo đúng tiến độ cũng như biết lỗi nào đang phát sinh, lỗi nào đã được xử lý. Nếu không có kỹ thuật quản lý kiểm thử thích hợp, quy trình kiểm thử phần mềm sẽ thất bại. Các công cụ quản lý kiểm thử sẽ giúp quản lý các tài liệu liên quan đến kiểm thử phần mềm và xác định chính xác các kết quả kiểm thử để điều chỉnh. Các tester bắt buộc cần có kiến thức và kinh nghiệm làm việc với các công cụ này bởi vì chúng được sử dụng trong hầu hết các công ty.
- Các công cụ quản lý lỗi (Defect Tracking): Các công cụ quản lý theo dấu lỗi (Defect Tracking hay Defect life cycle) như QC, BugZilla, Jira đóng vai trò cực kỳ quan trọng trong kiểm thử phần mềm đặc biệt là với môi trường làm việc nhóm trên các dự án lớn. Các công cụ quản lý lỗi cho phép toàn bộ nhóm biết về tình trạng của lỗi, giúp cho lỗi được quản lý và theo dõi thường xuyên, đúng cách và có hệ thống, tránh sự chồng chéo và thiếu sót trong quá trình kiểm thử, xử lý lỗi. Chúng ta thường không làm việc một mình, một team test có thể có vài người, thậm chí vài chục người. Do đó, sẽ rất khó quản lý hết lỗi nếu chúng ta không sử dụng các công cụ này.
- Các công cụ kiểm thử tự động (Automation testing): Với sự phức tạp ngày càng gia tăng của các ứng dụng, việc chỉ dựa vào kiểm thử thủ công thì không thể đảm bảo hoàn thành công việc. Khi đó, các công cụ tự động đóng một vai trò không nhỏ.Các công cụ tự động có thể sử dụng để kiểm thử khả năng tương thích với trình duyệt, kiểm thử hiệu năng, cũng như khả năng tích hợp hệ thống, cơ sở dữ liệu…, Trong những trường hợp này, các công cụ tự động thật sự tuyệt vời, chúng có độ chính xác cao hơn và dễ sử dụng hơn cũng như đem lại kết quả nhanh hơn vượt trội.
Ngoài ra, có một số công cụ kiểm thử tự động hỗ trợ chuyên dụng cho loại kiểm thử cụ thể và đi kèm với các tính năng để hoàn thành công việc nhanh chóng và hiệu quả. Do đó, việc nắm bắt được cách thức sử dụng các công cụ này rất hữu ích trong công việc thực tế. Với rất nhiều tester, việc thành thạo các công cụ tự động đã giúp họ làm việc khá tốt trong các dự án. Tuy nhiên, trong trường hợp này, bạn phải rất thành thạo và có kinh nghiệm làm việc tốt. Việc chỉ biết sơ qua hoặc mang nặng tính lý thuyết sẽ không giúp ích được nhiều, ngay cả ở vòng phỏng vấn. Việc biết cách sử dụng một ngôn ngữ kịch bản nào đó như Python, VBScript, JavaScript, C#, Shell hoặc Perl luôn hữu ích và là một lợi thế cho một tester trong công việc cũng như trong quá trình tuyển dụng. Việc này sẽ phụ thuộc vào các công ty tuyển dụng và các công cụ được sử dụng trong công ty đó. Ngoài ra còn có rất nhiều các công cụ kiểm thử hiệu năng và an toàn cho phần mềm. Việc biết cách sử dụng các công cụ này cũng là một ưu thế lớn cho các tester. Nó tạo nên tính linh hoạt trong quá trình làm việc trên các dự án và đây cũng là các yếu tố rất được quan tâm của các hệ thống phần mềm hiện nay.
Nắm được quy trình phát triển phần mềm SDLC
Công việc của các tester là kiểm thử, tuy nhiên việc nắm được các kiến thức về công nghệ phần mềm hay lập trình cũng khá cần thiết. Việc nắm được quy trình phát triển phần mềm và một vài phương pháp luận phát triển phần mềm như Waterfall, Kanban, Scrum, Lean,… sẽ giúp tester hiểu được các nhiệm vụ trong vòng đời phát triển của ứng dụng và do đó có thể lập kế hoạch kiểm thử dễ dàng hơn. Việc có kiến thức chuyên sâu về chu trình SDLC cũng sẽ giúp dự đoán sự phức tạp trong ứng dụng và giúp dự trù các công việc và biện pháp phù hợp để thực hiện trước đó. Hiểu về SDLC cũng giúp cho tester có cái nhìn chính xác hơn về công việc của các lập trình viên và cách thức xử lý lỗi cũng như quan hệ phù hợp trong đội ngũ.

Nguồn: Microsoft
Phương pháp luận DevOps & Agile
Trong kỷ nguyên toàn cầu hóa hiện nay, việc phát triển một sản phẩm nhanh đóng vai trò then chốt trong cạnh tranh. Rất nhiều ý tưởng gọi vốn trên kickstarter thất bại do không thể cho ra mắt sản phẩm trước các đối thủ. Với tư tưởng phát triển sản phẩm nhanh chóng, liên tục thì nhu cầu về các tester có kiến thức về phương pháp Agile & DevOps là cực kỳ cần thiết. Agile & DevOps giúp thúc đẩy các mô hình làm việc hợp tác và lặp lại nhằm đáp ứng nhu cầu cấp bách về thời hạn bàn giao sản phẩm. Agile nhấn mạnh đến tốc độ của việc phát triển, còn DevOps giúp làm việc theo nhóm chức năng có vai trò chéo nhau ngay từ quá trình phát triển. Việc này giúp phân tích và đảm bảo chất lượng cho sản phẩm từ sớm và mang lại sản phẩm chất lượng cao với thời gian nhanh hơn trên thị trường. Việc nắm vững phương pháp luận DevOps và Agile sẽ loại bỏ sự cứng nhắc và đóng kín của các vai trò vị trí công việc trong nhóm, cho phép các nhóm chú ý đến sự phát triển theo giai đoạn và phát hành sản phẩm liên tục. Do đó, không chỉ đội ngũ phát triển mà các thành viên khác trong dự án trong đó có tester cũng cần có các kiến thức phù hợp về hai phương pháp luận này.
Liệu tôi có cần biết lập trình không?
Câu trả lời đầu tiên là không bắt buộc. Bạn không cần phải là một chuyên gia về lập trình hoặc khoa học máy tính để bắt đầu với công việc kiểm thử phần mềm. Vậy tại sao tôi lại đưa kỹ năng lập trình vào đây.
Lí do là, nếu bạn biết cách lập trình bạn có thể hiểu cách mà phần mềm được phát triển (và cách thức và vị trí mà phần mềm thường có lỗi và có thể bị phá vỡ). Tất nhiên, bạn vẫn có thể phá vỡ phần mềm mà không cần biết phần mềm được xây dựng như thế nào, nhưng nếu bạn biết điều này, bạn sẽ có khả năng tìm thấy những lỗi này nhanh, dễ dàng và có hệ thống hơn rất nhiều.
Ngoài ra, kỹ năng lập trình không cần để bắt đầu nhưng nếu bạn muốn trở thành một kỹ sư kiểm thử tự động hoặc tiến xa hơn, bạn cần phải biết viết các kịch bản để thực hiện các trường hợp kiểm thử tự động hoặc xây dựng các công cụ nhỏ để hỗ trợ việc kiểm thử phần mềm tốt hơn.
Do đó, một cách đơn giản, lập trình là không bắt buộc nhưng nó sẽ giúp bạn tiến xa hơn trong sự nghiệp. Với yêu cầu và tính cạnh tranh về công việc như hiện nay thì kỹ năng hoặc ít nhất là kiển thức về lập trình cũng rất cần thiết với tester.
Khi chúng ta nói về kỹ năng lập trình ở đây, không có nghĩa là các tester phải làm việc, phải code như các lập trình viên. Kỹ năng lập trình trong trường hợp này là việc hiểu được kiến trúc bên trong ứng dụng nhằm dễ dàng hơn trong việc nắm rõ các chức năng của nó và đưa ra các kiểm thử phù hợp. Kiến thức lập trình giúp xác định các lỗi có thể có trong mã ứng dụng một cách nhanh hơn, chi tiết và kỹ lưỡng hơn, điều này làm giảm thêm khả năng xảy ra lỗi và sự thiếu hiệu quả của ứng dụng. Nên học ít nhất hai ngôn ngữ lập trình với tư tưởng lập trình khác nhau chẳng hạn như Java cho hướng đối tượng, C cho ngôn ngữ bậc trung,…hoặc bất cứ thứ gì bạn muốn. Việc nắm được tư tưởng lập trình và thành thạo một ngôn ngữ sẽ giúp cho bạn hiểu được cách giải quyết của ứng dụng để đảm bảo vòng đời chất lượng ứng dụng tốt hơn.
Thêm vào đó, như đã nói ở trên, trong kiểm thử tự động nhiều khi việc sử dụng công cụ hiệu quả đòi hỏi tester phải sử dụng các ngôn ngữ lập trình kịch bản một cách thành thạo.
Kiến thức cơ bản về cơ sở dữ liệu
Các hệ thống phần mềm hiện nay đa phần đều làm việc trên dữ liệu và kết nối đến các hệ quản trị cơ sở dữ liệu như Oracle, MySQL.. Tuy nhiên, các cơ sở dữ liệu lại là một trong những nguồn phát sinh ra lỗi nhiều nhất trong hệ thống. Dữ liệu không được lưu vào cơ sở dữ liệu, hoặc đôi khi việc truy vấn cho kết quả không đúng, hay các lỗ hồng trong thiết kế có thể làm rò rỉ các dữ liệu trong cơ sở dữ liệu… Vì vậy, việc có những kiến thức cơ bản về SQL sẽ có giúp xác định xem dữ liệu thích hợp có được lưu trữ trong cơ sở dữ liệu hay không và những nơi nào nên tiến hành kiểm thử.
Kiến thức cơ bản về hệ thống (Linux/Windows): Việc hiểu biết về hệ thống cũng giúp chúng ta hiểu cách phần mềm vận hành và biết những vấn đề có thể xảy ra ở đâu. Ví dụ khi nào cần xây dựng những kịch bản để kiểm thử các quyền đọc ghi file trong hệ thống, khi nào cần kiểm thử xung đột giữa các phiên bản khác nhau của phần mềm trong hệ thống…Điều này đặc biệt sẽ giúp ích trong quá trình kiểm thử tích hợp và kiểm thử sản phẩm. Thêm vào đó, hầu hết các ứng dụng phần mềm như Web-Services, Databases, Application Servers được triển khai trên các máy chủ Linux hoặc Windows. Do đó, việc biết đôi chút về hệ thống và vài câu lệnh Linux sẽ giúp ích khá nhiều đối với tester.
Những hiểu biết về môi trường và công nghệ mới
Sẽ rất khó khăn nếu bạn là một tester được giao nhiệm vụ kiểm thử một ứng dụng web nhưng lại không biết chút gì về việc web vận hành và hoạt động ra sao. Tương tự như vậy với các ứng dụng di động, hay gần đây là các hệ thống phân tán Blockchain? Mỗi công nghệ đều có các đặc thù riêng biệt và trên mỗi đặc thù đó lại có những thành phần, yếu tố cần được kiểm thử. Việc không hiểu công nghệ và cách thức môi trường vận hành sẽ làm việc kiểm thử trở lên mò mẫm và bế tắc. Hãy luôn đảm bảo nắm được các tiến bộ công nghệ và các thách thức kỹ thuật để đưa ra các giải pháp kiểm thử hiệu quả.
Đó là kiến thức và kỹ năng chuyên môn.
Nếu bạn đã từng nghe ai đó nói rằng kiểm thử phần mềm rất dễ dàng và bạn không cần bất kỳ kỹ năng kỹ thuật nào để làm điều đó. Họ đã mắc phải sai lầm chết người.
Dù muốn hay không, bạn vẫn cần kỹ năng và kiến thức chuyên môn kỹ thuật tốt để có thể kiểm thử phần mềm một cách hiệu quả. Tuy nhiên, bạn không cần phải là một chuyên gia về lập trình, công nghệ mạng, hay cơ sở dữ liệu để kiểm thử phần mềm. Tất cả những gì bạn cần là mức độ cơ bản của những kỹ năng đó khi bắt đầu.
Điều quan trọng bạn cần lưu ý là bạn KHÔNG cần có TẤT CẢ các kỹ năng trên ngay từ đầu. Bạn chỉ cần nắm vững các kỹ thuật, phương pháp kiểm thử và biết cách sử dụng thành thạo các công cụ kiểm thử là đã đủ để bạn làm khá tốt công việc của mình. Các kỹ năng còn lại sẽ giúp ích cho bạn với các vai trò cao cấp hơn hoặc giúp bạn làm việc suôn sẻ hơn, tuy nhiên, để bắt đầu thì không cần toàn bộ. Hãy bắt tay vào làm ngay lập tức và rèn luyện từ từ, không có thứ gì là ngày một ngày hai và nếu bạn chờ cho đủ kiến thức bạn sẽ không bao giờ khởi đầu được. HÃY LÀM NGAY!!!
Các kỹ năng mềm
Ngoài các kỹ năng chuyên môn, kỹ năng mềm cũng đóng vai trò không thể thiếu đối với tester. Các kỹ năng sau đây là điều cần thiết để trở thành một tester tốt:
Kỹ năng phân tích và tư duy logic
Một tester giỏi cần có kỹ năng phân tích nhạy bén. Kỹ năng phân tích sẽ giúp phân chia một hệ thống phần mềm phức tạp thành các đơn vị nhỏ hơn để hiểu sâu hệ thống hơn và tạo ra nhiều trường hợp kiểm thử cho mỗi đơn vị đó. Kỹ năng phân tích và tư duy logic giúp xác định lỗi, hiểu được cấu trúc phức tạp của phần mềm, đánh giá các hành vi lạ của ứng dụng và lên kế hoạch kiểm tra chúng một cách phù hợp. Có kỹ năng phân tích và lý luận tốt sẽ giúp xác nhận các ứng dụng theo các kịch bản khác nhau và kiểm tra các yếu tố, quy trình làm việc của nó theo các tiêu chuẩn được xác định trước. Điều này hỗ trợ thêm trong việc đánh giá thông tin liên quan, đưa ra các câu hỏi rõ ràng, xác định điểm mạnh và điểm yếu mà không bị sai lệch, điều này giúp cho quá trình hành động và xây dựng giải pháp phù hợp.
Kỹ năng giao tiếp
Bạn có thể không giỏi lập trình hoặc kỹ thuật, nhưng bạn cần phải thực sự giỏi về kỹ năng giao tiếp nếu muốn trở thành một tester.
Trên thực tế, kỹ năng giao tiếp rất quan trọng không chỉ trong kiểm thử phần mềm mà còn trong các lĩnh vực khác. Tuy nhiên, trong kiểm thử phần mềm nó đặc biệt quan trọng. Lí do là vì một trong những mục tiêu của kiểm thử là khám phá hệ thống, tìm các vấn đề trong hệ thống và truyền đạt các vấn đề này đến quản lý hoặc các bên liên quan. Do đó sẽ không có ý nghĩa gì nếu bạn tìm thấy một vấn đề nhưng lại giữ nó một mình hoặc không ai hiểu vấn đề của bạn là gì do thiếu kỹ năng giao tiếp.
Trên thực tế, có rất nhiều hình thức của kỹ năng giao tiếp, tuy nhiên, với một tester, chúng ta cần tập trung vào ba kỹ năng quan trọng sau:
- Kỹ năng viết báo cáo và tài liệu kiểm thử (như test cases, test plans, chiến lược kiểm thử, bug reports…): Khi bạn tìm thấy một vấn đề trong hệ thống, bạn cần báo cáo vấn đề đó cho những người phụ trách tương ứng. Do đó, các báo cáo lỗi của bạn rất quan trọng vì nó giúp cho người quản lý biết được mức độ rủi ro trong hệ thống, và trong tình trạng nào thì sự cố xảy ra để có thể đưa ra quyết định chính xác, từng bước nhằm khắc phục sự cố. Một báo cáo tốt có thể cung cấp và truyền đạt một cách dễ hiểu về trạng thái chính xác của dự án và ứng dụng đang được kiểm thử cho các bên liên quan. Từ đó dẫn đến sự phối hợp tốt hơn của dự án kiểm thử tổng thể và mang lại cái nhìn rõ ràng cho đội ngũ quản lý về các trường hợp kiểm thử được thực hiện, lỗi gặp phải, thời gian phát hành,… để giúp đội ngũ quản lý đưa ra các quyết định đúng đắn cuối cùng, phân bổ ngân sách và nguồn lực phù hợp cho dự án.
- Đặt câu hỏi: Trên thực tế, việc kiểm thử phần mềm chính là việc đặt ra câu hỏi đúng nhằm phơi bày bản chất của vấn đề trong hệ thống đang được kiểm thử. Điều này đặc biệt đúng khi bạn đặt mình vào tư cách của người dùng cuối hoặc trong trường hợp khi bạn không có tài liệu nào về hệ thống (kiểm thử hộp đen). Khi đó bạn cần sử dụng sản phẩm và sau đó liên tục đặt các câu hỏi kiểu như: nếu tôi nhấp vào nút này thì sao? Điều gì xảy ra nếu tôi chỉnh sửa thông tin và sau đó tôi đóng ứng dụng mà không lưu dữ liệu? Điều gì sẽ xảy ra nếu tôi làm điều này và sau đó làm điều kia? Tính năng này được sử dụng để làm gì? Tại sao chúng ta cần nó?…
- Cuối cùng, kỹ năng giao tiếp bằng lời nói, trao đổi và làm việc nhóm cũng rất quan trọng đối với một tester giỏi. Việc trao đổi các vấn đề với các developers trong trường hợp có lỗi hoặc bất kỳ vấn đề nào khác sẽ đòi hỏi sự khéo léo và giao tiếp tốt. Nó sẽ giúp cho vấn đề được hiểu kỹ lưỡng và tránh sự bất đồng trong nội bọ tổ chức.
Kỹ năng quản lý dự án
Kiểm thử là một công việc đòi hỏi đặc biệt trong suốt quá trình phát triển phần mềm. Khi công việc kiểm thử bị đình trệ có thể dẫn tới những nút thắt cổ chai làm chậm tiến độ của dự án. Do đó, tester cần phải có kỹ năng quản lý hiệu quả khối lượng công việc của mình cũng như phối hợp tốt với tiến độ công việc của toàn nhóm, cũng như nhóm phát triển.
Việc làm chủ các kỹ năng quản lý dự án sẽ giúp tester thấm nhuần khả năng giải quyết vấn đề, đảm bảo năng suất làm việc tốt, quản lý thời gian tối ưu cũng như phối hợp tốt với đội nhóm. Kỹ năng quản lý dự án cũng giúp cho tester biết cách chịu trách nhiệm về công việc của mình cũng như thiết lập các kế hoạch kiểm thử phù hợp. Nói cách khác, các kỹ năng quản lý dự án góp phần cài thiện chất lượng, nâng cao hiệu suất cho toàn bộ quá trình kiểm thử.
Hỗ trợ khách hàng
Các dự án kiểm thử hiện đại đòi hỏi các tester phải sẵn sàng hỗ trợ khách hàng và suy nghĩ từ quan điểm của khách hàng. Trở thành một tester giờ đây không có nghĩa là phải luôn ở lại văn phòng mà phải luôn sẵn sàng đáp ứng và hỗ trợ các yêu cầu của khách hàng khi cần thiết. Việc thấu hiểu khách hàng, các yêu cầu của khách hàng sẽ giúp cho việc kiểm thử diễn ra thuận lợi hơn.
Kỹ năng sử dụng mạng xã hội
Kỹ năng sử dụng mạng xã hội đã trở lên khá phổ biến trong các yêu cầu về công việc hiện nay. Các mạng xã hội cung cấp khả năng thảo luận, và các tài nguyên nội dung, các kinh nghiệm được chia sẻ và mài giũa trong các lĩnh vực chuyên môn. Mạng xã hội còn giúp tester tham gia với các đối tác, tìm hiểu những điều mới và cập nhật thông tin mới nhất trong lĩnh vực và các tiến bộ về công nghệ. Sử dụng mạng xã hội hợp lý còn cho phép bạn kết nối với các chuyên gia trên Twitter và LinkedIn để trao đổi kiến thức và tất nhiên xây dựng các mối quan hệ lâu dài có thể có lợi cho các mục tiêu cho sự nghiệp cá nhân và doanh nghiệp của bạn.
Thái độ làm việc
Để trở thành một tester giỏi hay làm bất cứ việc gì điều đầu tiên bạn cần quan tấm là phải có thái độ tốt. Một thái độ ham học hỏi, hết mình vì công việc và có trách nhiệm luôn là điều mà nhà tuyển dụng cần. Ngoài ra tester nên có định hướng rõ ràng, sẵn sàng tìm hiểu, học hỏi những điều mới và tiến bộ trong các kỹ năng kỹ thuật trở nên không thể tránh khỏi để theo kịp các xu hướng và tránh trở nên lỗi thời. Thái độ phản ánh mức độ độc lập, nắm rõ nhiệm vụ được giao và hoàn thành nhiệm vụ mà không cần nhiều sự giám sát, hướng dẫn.
Đam mê
Trong bất kỳ ngành nghề hay công việc nào, người ta phải có một niềm đam mê nhất định nào đó. Một tester cũng phải có niềm đam mê với lĩnh vực của mình. NHƯNG làm thế nào để xác định được bạn có đam mê kiểm thử phần mềm hay không? Đơn giản là hãy thử, công việc kiểm thử phần mềm là phù hợp với bạn nếu không khiến bạn chuyển sang một công việc khác hay một lĩnh vực khác mà bạn quan tâm.
Khả năng làm việc độc lập
Cuối cùng, người kiểm thử phần mềm nên học kỹ năng làm việc độc lập. Điều này sẽ nâng cao khả năng thực hiện nhiệm vụ ngay từ khi hiểu được yêu cầu (yêu cầu kỹ thuật và nghiệp vụ) đến việc giao sản phẩm cuối cùng, thực hiện đúng các bước mà không cần sự trợ giúp từ người khác hoặc giám sát từ người quản lý.
Bất kể bạn có bao nhiêu năm kinh nghiệm, thì việc cố gắng liên tục học hỏi và cải thiện kỹ năng và kiến thức là không bao giờ thừa. Chúng ta có thể tự học khi có kinh nghiệm hoặc tham gia vào một chương trình đào tạo khi mới bắt đầu. Việc liên tục bổ sung và học hỏi các kỹ năng và phương pháp mới để cải thiện hiệu suất trong việc kiểm thử sẽ luôn giúp bạn làm tốt công việc và đi trước đối thủ cạnh tranh của mình.
Kiểm thử phần mềm có cần bằng đại học không?
Việc kiểm thử phần mềm trên thực tế không yêu cầu bằng cấp. Bạn có thể học một khóa, có kinh nghiệm làm việc là có thể được nhận làm kiểm thử phần mềm. Thậm chí có một số công ty sản xuất game, chuyên thuê một số game thủ không hề có bằng cấp, thậm chí chưa học hết phổ thông nhằm đánh giá và kiểm thử tính năng cho game mới phát triển.
Tuy nhiên, một bằng đại học hoặc cao đẳng chuyên ngành về Khoa học Máy tính có thể giúp ích cho bạn khi tìm việc một cách nhanh chóng. Nếu không có, thì việc hoàn thành một chứng chỉ kiểm thử phần mềm như ISTQB và CSTE cũng giúp bạn có lợi thế trong quá trình phỏng vấn. Hai chứng chỉ này giúp bạn hiểu về vòng đời phát triển và kiểm thử phần mềm cùng với các phương pháp kiểm thử khác nhau. Nếu bạn muốn tự học, không có vấn đề gì! Series bài viết Kiểm thử toàn tập này sẽ giúp bạn hệ thống hóa kiến thức và phát triển các kỹ năng cần thiết cho công việc kiểm thử. Hãy theo dõi và thực hành đầy đủ, điều đó sẽ giúp bạn tiếp cận và bắt đầu với kiểm thử phần mềm.
Quan điểm của bạn là gì? Theo bạn có những kỹ năng nào là quan trọng nhất đối với một tester? Bạn đã thực sự sẵn sàng để trở thành tester, bạn đã biết mình cần rèn luyện kỹ năng gì, bắt đầu từ đâu hay chưa? Hãy để lại bình luận cùng trao đổi thêm cùng Tek4 !