Một số chú ý để kiểm thử phần mềm hiệu quả hơn
Chúng ta đều thường băn khoăn “liệu phương pháp mình áp dụng để test phần mềm đã đạt hiệu quả tốt nhất chưa?” hoặc “làm thế nào để chúng ta có thể kiểm thử phần mềm hiệu quả hơn”. Hôm nay, tôi sẽ đưa ra 1 số lưu ý trong quá trình kiểm thử để đảm bảo phần mềm được kiểm tra ...
Chúng ta đều thường băn khoăn “liệu phương pháp mình áp dụng để test phần mềm đã đạt hiệu quả tốt nhất chưa?” hoặc “làm thế nào để chúng ta có thể kiểm thử phần mềm hiệu quả hơn”. Hôm nay, tôi sẽ đưa ra 1 số lưu ý trong quá trình kiểm thử để đảm bảo phần mềm được kiểm tra đạt hiệu quả tốt hơn, tối ưu hơn.
1. Tham gia vào quá trình phát triển phần mềm ngay từ đầu.
Thông thường thì 1 quy trình phát triển phầm mềm thường như sau:
- Để tester có thể thực sự hiểu được hầu hết yêu cầu của khách hàng thì tester nên được tham gia vào quá trình xây dựng phần mềm càng sớm càng tốt, thậm chí có thể ở ngay bước đầu tiên “tiếp xúc với khách hàng”, như vậy tester có thể nắm bắt được càng rõ hơn mong muốn thực sự của khách hàng và đưa ra các chiến lược test hiệu quả.
- Hiện nay, tôi nhận thấy, hầu hết tester thường tham gia vào các dự án ở sau giai đoạn phân tích yêu cầu, thậm chí sau giai đoạn coding (lập trình) cho nên hiệu quả thực sự chưa được cao vì tester chưa được làm việc trực tiếp với khách hàng để tiếp cận những mong muốn thực sự của họ, cũng như là để có thể hiểu chi tiết, rõ ràng yêu cầu của khách hàng.
2. Có một kế hoạch test hiệu quả
- Có 1 kế hoạch test hiệu quả là hết sức quan trọng và cần thiết đối với việc kiểm thử 1 phần mềm, 1 test plan tốt cần được viết hoặc review bởi 1 QA leader hoặc 1 quản lý nhiều kinh nghiệm.
- Kế hoach test cần phù hợp và chạy theo tiến độ chung của dự án.
- 1 test plan hiệu quả cần bao phủ được phạm vi test, đối tượng test, hạn chế ngân sách, thời hạn, tiến độ thực hiện kiểm tra, xác định các rủi ro và các vấn đề khác.
3. Lưu trữ, quy hoạch dữ liệu thông minh
- Quản lý dữ liệu tốt là 1 vấn đề hết sức cần thiết đối với 1 dự án phát triển phần mềm.
- Dữ liệu cần quản lý sao cho dễ tra cứu, dễ đọc, dễ sử dụng, an toàn, có thể update, sao lưu, backup…
- Truy cập để tra cứu dữ liệu cần được phân cấp và quản lý quyền hiệu quả.
4. Tets sớm, test thường xuyên
- Test sớm: test sớm ở đây tôi muốn nhấn mạnh là test càng sớm càng tốt, Tester có thể tham gia vào các giai đoạn tiếp nhận yêu cầu, phân tích yêu cầu của khách hàng và tiến hành test luôn tại thời điểm đó. Các bug được tìm ra ở giai đoạn sớm của dự án càng giảm thiểu rủi ro, giá thành cho sản phẩm.
- Test thường xuyên: 1 số bug có thêt phát sinh trong quá trình phát triển và sửa lỗi cho nên cần test lại sản phẩm thường xuyên, đoán được vùng rủi ro để có thể phát hiện ra bug.
5. Khởi động viết TCs sớm cùng với quá trình phân tích và thiết kế yêu cầu
- Nếu bạn bắt đầu viết các TCs trong giai đoạn đầu của chu trình phát triển phần mềm thì bạn sẽ hiểu được tất cả các yêu cầu được kiểm chứng hay không.
6. Viết TCs có hiệu quả
- Viết trường hợp thử nghiệm có hiệu quả là một kỹ năng và được thực hiện bằng kinh nghiệm, kiến thức chuyên sâu và khả năng nghiên cứu các ứng dụng.
- Bạn nên viết các bước rõ ràng hơn khi viết TCs, sẽ tiện dụng để tái tạo TCs cho cả nhà phát triển và thử nghiệm.
7. Kiểm thử phần mềm với tư duy tích cực
- Khi bạn kiểm tra chất lượng phần mềm với 1 suy nghĩ và thái độ tích cực bạn sẽ có nhiều hướng khác nhau để nhìn nhận vấn đề.
- Bên cạnh đó, với hướng suy nghĩ không có 1 phần mềm hoàn hảo, luôn tồn tại bug ở đâu đó trong sản phẩm thì khả năng phát hiện bug của bạn sẽ được nâng cao.
8. Quản lý số liệu hiệu quả
- Đối với 1 dự án phần mềm số liệu là quan trọng hơn so với lý do cần phải kiểm thử. Kiểm tra phần mềm là 1 vấn đề, lựa chọn đúng số liệu lại là 1 vấn đề khác. Đo lường đúng số liệu sẽ dẫn đến đo lường đúng chất lượng và quyết định các vấn đề khác. Số liệu được sử dụng để có được hiệu quả và năng suất công việc theo thời gian.
9. Quản lý tốt test coverage và phân chia module 1 cách hiệu quả
Kiểm thử phần mềm nên được chia thành các module, các chức năng nhỏ sẽ giúp hiểu rõ được phạm vi của kiểm thử. Nếu có thể đảm bảo rằng các module chức năng được phân chia thành các phần hợp lý. Các module nên được viết trong riêng biệt và viết trong các module duy nhất.
10. Luôn sẵn sàng có TCs cho cả team
- Đội QA cần nhận thức được nên áp dụng kiểm thử theo chiều dọc hay theo chiều ngang. Khi đội QA viết TCs sau đó chắc chắn rằng bạn cần nắm bắt được phần công việc của người khác và toàn bộ QA team đều có thể truy cập vào TCs.
- Hãy cùng phát triển và phân tích TCs để nâng cao chất lượng phần mềm.
11. Viết bug rõ ràng, chi tiết, đầy đủ thông tin
- Viết tốt, báo cáo và mô tả lỗi rõ ràng sẽ giúp đỡ để thực hiện thử nghiệm phần mềm của bạn hiệu quả hơn. Hãy nhớ rằng thử nghiệm là một công việc đầy thách thức và sáng tạo. Đó là kỹ năng của bạn như thế nào, bạn đang xử lý các tình huống khó khăn nào.
- Những nỗ lực của bạn trong bug report sẽ không chỉ tiết kiệm tài nguyên của công ty mà còn tạo ra một mối quan hệ tốt đẹp giữa bạn và dev team. Trong khi báo cáo lỗi không chỉ cung cấp cho các triệu chứng của lỗi mà còn cung cấp các giải pháp. Bổ sung thông tin phải được cung cấp cùng với các lỗi như phiên bản trình duyệt, chi tiết đăng nhập nếu có, các bước chính xác để repro vv .Điều này sẽ giúp khắc phục các vấn đề rõ ràng một cách nhanh chóng.
12. Môi trường test nên được quản lý bởi test team.
Môi trường test cần phải được quản lý chặt chẽ, chuẩn xác theo từng version của code. Với mỗi 1 version code, dev sẽ thêm 1 số module, 1 số chức năng, 1 số cấu hình và nó sẽ làm thay đổi hệ thống của bạn. Tuy nhiên, khi thêm các dòng code đó vào mà không được quản lý cẩn thận sẽ rất dễ dẫn đến lỗi hệ thống, chạy sai chương trình… như vậy sẽ làm cho môi trường test bị giảm chất lượng. Do vậy, việc quản lý môi trường test bởi test team sẽ làm giảm thiểu hiệu quả việc dev tự ý thêm dòng code không theo phiên bản làm việc mà không có sự đồng ý của QA/test team.
13. Xác định TCs hồi quy và các similar screen.
Lựa chọn TCs hồi quy và các màn hình liên quan khi test sẽ giúp phân vùng phạm vi ảnh hưởng của 1 chức năng mới được phát triển hoặc 1 bug mới được fix.
14. Nâng cao kỹ năng giao tiếp với dev team
Trong quá trình làm việc, kỹ năng giao tiếp là 1 skill cần thiết để kết nối giữa các team làm việc cùng nhau. Trong các buổi họp hàng ngày cần phải thảo luận những điểm chưa rõ ràng hoặc trao đổi với nhau về các thông tin mới. Giao tiếp trực tiếp với nhau để giải quyết vấn đề 1 cách dễ dàng và nhanh nhất, điều đó giúp tránh 1 số hiểu lầm không cần thiết. Sau mỗi lần thảo luận trực tiếp đó bạn cần note vào văn bản qua email hoặc các phương thức khác. Nguyên tăc cơ bản là không giao tiếp bằng miệng, cần có văn bản để xác thực.
15. Vượt qua chính mình
Chắc chắn một điều là ai cũng còn yếu điểm, và sợ nhìn thẳng vào yếu điểm đó của mình. Bạn phải sợ thì bạn mới biết là mình còn yếu, bạn mới có động lực để tìm hiểu vấn đề và nguyên nhân nỗi sợ hãi của bạn, miễn đừng chỉ đơn giản là sợ và cứ sợ mãi thì bạn sẽ lại bước thụt lùi. Bởi sợ không xấu, nhưng luôn sống trong sợ hãi mà không thoát ra được là xấu. Nỗi sợ nào cũng có nguyên nhân và đều có thể giải quyết chỉ cần bạn thực sự quyết tâm. Muốn phát triển kỹ năng của bản thân hơn, bạn cần phải vượt qua được nỗi sợ hãi đó và vươn lên làm chủ bản thân mình.