22 Jan, 2021
Người kiểm thử phần mềm giỏi
Nhiều người phát triển phần mềm coi người kiểm thử là ai đó tìm lỗi trong mã của họ để cho họ có thể sửa chúng.
Họ viết mã rồi “ném nó qua” cho người kiểm thử để tìm lỗi rồi họ sẽ sửa sau. Đây là thói quen rất xấu và nên tránh bởi vì phần lớn các dự án phần mềm không có đủ thời gian để làm mọi thứ. Điều gì sẽ xảy ra nếu người phát triển không có thời gian sửa lỗi của họ? Điều gì sẽ xảy ra nếu người phát triển quên sửa lỗi? Cuối cùng phần mềm vẫn có lỗi và sẽ rất tốn kém để sửa chúng về sau, đặc biệt khi khách hàng tìm ra nó.
Người kiểm thử không phải là “nô lệ” cho người phát triển, việc của họ là nhiều hơn chỉ kiểm thử để tìm lỗi. Người kiểm thử giỏi biết rằng khi họ đương đầu với cái gì đó có thể tạo ra vấn đề về sau, cho dù nó còn chưa xảy ra, họ để cho người phát triển và người quản lí biết. Cho nên người kiểm thử cũng kiểm về rủi ro phần mềm. Rủi ro là cái gì đó còn chưa xảy ra nhưng khi nó xảy ra, nó tạo ra vấn đề hay nó có thể trở thành lỗi. Chẳng hạn, người kiểm thử có thể nhận diện vấn đề an ninh bằng việc chỉ ra cho người phát triển mã nào đó mà có thể là vấn đề tiềm năng nếu hắc cơ nắm được nó. (Thực hành viết mã không an ninh).
Người kiểm thử giỏi có thể để ý tới những điều thú vị về phần mềm mà không thay đổi kết quả nhưng có thể có những tính năng ẩn kín mà bản thân người lập trình thậm chí không nghĩ tới. Họ có thể gợi ý cách tốt hơn cho phần mềm thực hiện tốt hơn và với những thay đổi nhỏ, người phát triển có thể làm cho phần mềm chạy nhanh hơn. Cho nên người kiểm thử có kiểm về hiệu năng nữa. Người kiểm thử giỏi có thể tìm một số vấn đề sinh lỗi và thậm chí phần mềm có thể làm việc tốt nhưng nếu người dùng bất cẩn và làm cái gì đó sai, điều đó có thể gây cho phần mềm này chạy hỏng. Với một số gợi ý để thêm vào trình xử lí lỗi, vấn đề này có thể tránh được. Cho nên người kiểm thử làm kiểm thử về tính dùng được nữa.
Người kiểm thử giỏi có thể tìm được vấn đề ẩn kín, cái gì đó có thể đe doạ tới chất lượng của sản phẩm về sau và khuyến cáo người phát triển sửa đổi mã của họ để tránh những vấn đề này. Chẳng hạn, người kiểm thử có thể chỉ ra một số khía cạnh của sản phẩm làm cho nó khó tìm và và khó thay đổi về sau. Đây là những điều mà người phát triển có thể làm để cải tiến phần mềm cho dễ dàng thay đổi. Cho nên người kiểm thử có kiểm tính bảo trì được nữa.
Có nhiều điều thế mà người kiểm thử giỏi có thể làm, nhiều hơn chỉ là tìm lỗi. Người kiểm thử chuyên nghiệp sẽ làm tất cả những điều trên bởi vì họ có kinh nghiệm và họ coi kĩ năng của họ có giá trị cho công ti. Người phát triển nên coi người kiểm thử như đối tác, người bạn có giá trị, ai đó có thể giúp họ cải tiến kĩ năng của họ và nên đánh giá cao đóng góp của họ cho phát triển phần mềm.
—-English version—-
Good software tester
Many software developers consider testers as someone to find defects in their code so they can fix them. They write code then “throw it over” to testers to find defects then they will fix them later. This is a very bad habit and should be avoid because most software projects do not have enough time to do everything. What will happen if developers do not have time to fix their defects? What will happen if developers forget to fix defects? Eventually the software still have defects and it will be very expensive to fix them later, especially when customers find out about it.
Testers are not “Slaves” to developers, their job is more than just testing to find defects. Good testers know that when they encounter something that can create problem later, even it has not happen yet, they let developers and project manager know. So testers also check for software risk. Risk is something has not occur but when it does, it creates problem or it could become a defect. For example, testers can identify security issues by point out to developers certain code that could become a potential problem if hackers get hold of it. (Unsecured coding practice).
Good testers may notice interesting things about software that do not change the result but may have hidden features that the developers themselves do not even think about. They may suggest better way for the software to perform better and with minor changes, developers can make software run faster. So testers do check for performance too. Good testers can find some error-prone issues and even the software may work well but if users are careless and do something wrong, it may cause the software to crash. With some suggestion to add an error-handling routine, this issue can be avoid. So testers do check for usability too.
Good testers may find some hidden issues, something that can threaten the quality of the product later and recommend that developers to modify their codes to avoid these issues. For example, Testers can point out some aspects of the product that make it hard to find and hard to change later. These are things that the developers can do to improve the software for easy to change. So testers do check for maintainability too.
There are so many things that a good testers can do, much more than just finding defects. Professional testers will do all of the above because they have experiences and they consider their skills valuable to the company. Developers should consider testers as a partners, a valuable friends, someone who could help them to improve their skills and should appreciate their contributions to the software development.