Trong quá trình phát triển phần mềm, QA chiếm một vị trí độc nhất. Tester có trách nhiệm đảm bảo rằng mọi đoạn code được phát triển trong dự án đều không có lỗi và hoạt động phù hợp với các yêu cầu về technical và business.
Điều này có nghĩa là các QA phải có sự hiểu biết toàn diện về từng dự án và ý nghĩa của việc hoàn thành. Ngoài ra, họ phải hiểu rõ những gì có thể xảy ra sai sót trong hoạt động của một trang web hoặc ứng dụng nhất định. Họ cũng phải bắt kịp các cải tiến về technical để biết liệu có lỗi mới hoặc mối đe dọa mới nào cần kiểm tra hay không.
Với mục đích công việc của QA, điều đương nhiên là họ sẽ phải đối mặt với vô số thách thức trong công việc hàng ngày của mình. Bài viết này nhằm mục đích nêu bật những thách thức phổ biến nhất cũng như đề xuất cách giải quyết chúng.
- Những yêu cầu được thay đổi vào phút cuối
Việc thay đổi yêu cầu dự án giữa chặng nước rút trong các dự án phát triển Agile là điều khá phổ biến. Mặc dù điều này gây khó chịu cho toàn bộ nhóm nhưng những QA có thể bị ảnh hưởng đặc biệt. Họ có thể phải làm lại toàn bộ phạm vi thử nghiệm vì ngay cả những thay đổi nhỏ nhất đối với codebase cũng cần phải được thực hiện qua nhiều thử nghiệm để đảm bảo tính ổn định và khả năng tương thích của nó với code hiện có.
Giải pháp
Không có nhiều giải pháp ở đây vì thế giới kỹ thuật số không ngừng phát triển. Hoàn toàn có khả năng một tính năng cần được thay đổi hoặc sửa đổi do một số thay đổi trong phản hồi của người dùng hoặc cập nhật phần mềm.
Tester phải biết rằng điều này sẽ xảy ra thường xuyên. Nếu các thay đổi về yêu cầu diễn ra vào cuối giai đoạn chạy nước rút, người thử nghiệm có thể chọn chạy càng nhiều thử nghiệm càng tốt trong thời gian có sẵn. Phải làm rõ trước khi dự án bắt đầu rằng những thay đổi vào phút cuối đối với phần mềm có thể không được kiểm tra đầy đủ trong thời hạn định trước.
- Thông tin không đầy đủ về user’s story
Công việc chính của tester là xây dựng các trường hợp thử nghiệm dựa trên hành trình có thể có của người dùng. Tuy nhiên, để tạo test case, QA phải có thông tin chuyên sâu về hành trình của người dùng. Thông tin này phải đến từ chủ sở hữu sản phẩm, những người hiểu rõ nhất về chức năng của phần mềm và cách người dùng có thể điều hướng nó.
Tuy nhiên, nếu bản thân (các) chủ sở hữu sản phẩm không hiểu rõ về hành trình của người dùng, họ không thể thông báo điều đó với QA. Ngược lại, QA không thể tạo các trường hợp thử nghiệm để kiểm tra toàn diện trang web hoặc ứng dụng về những sai sót trong trải nghiệm người dùng.
Giải pháp
Đây là lúc mà tester phần nào phải phụ thuộc vào phán đoán của chính họ. Thay vì dựa vào các yêu cầu chi tiết và câu chuyện của người dùng, tester có thể bắt đầu suy nghĩ về các tình huống mà người dùng có thể gặp phải khi sử dụng một số phần mềm nhất định. Ví dụ: thay vì chờ làm rõ đầy đủ về một tính năng, tester có thể hình thành một tập hợp các tình huống người dùng có thể xảy ra dựa trên khái niệm trang web hoặc ứng dụng. - Thiếu kinh nghiệm trong automation test
Các dự án phát triển Agile yêu cầu người kiểm thử phải có năng lực về mặt kỹ thuật, đặc biệt là Kiểm thử tích hợp và Kiểm thử API. Họ cũng được yêu cầu tạo test scripts cho các bài kiểm tra tự động hóa giao diện người dùng bằng các công cụ tự động hóa như Selenium.
Nếu người kiểm thử hầu hết có kinh nghiệm với thử nghiệm thăm dò, thủ công, họ sẽ phải đối mặt với những thách thức lớn trong việc cung cấp kết quả với tốc độ mong đợi trong một dự án tự động hóa.
Giải pháp
Bất kỳ ai muốn làm việc trong lĩnh vực kiểm thử QA đều phải có một số kiến thức về ngôn ngữ lập trình thường được sử dụng để viết tập lệnh kiểm thử. Ruby và Java là những ví dụ phổ biến của các ngôn ngữ như vậy.
Ngay cả khi người kiểm thử đã quen thuộc với các ngôn ngữ, họ cũng phải thành thạo các công cụ phù hợp cho công việc. Như đã đề cập trước đó, Selenium có hiệu quả cao cho mục đích tự động hóa trình duyệt và kiến thức về cách thức hoạt động của nó là rất hữu ích. - Thiếu sự hợp tác giữa QA và developer
Căng thẳng chuyên môn giữa các nhóm phát triển và thử nghiệm vẫn còn khá phổ biến. Developers có thể cảm thấy thử nghiệm là một quá trình ở giai đoạn cuối và testers không cần bất cứ thứ gì ngoài danh sách hành trình của người dùng và các yêu cầu kỹ thuật.
Tuy nhiên, testers sẽ gặp khó khăn trong việc xác định các sai sót trong code nếu họ không quen với quá trình phát triển. Nếu họ không hiểu cách thức hoạt động của một phần mềm, họ sẽ gặp khó khăn khi tạo các kịch bản kiểm thử có thể phát hiện đầy đủ tất cả các lỗi có thể xảy ra.
Giải pháp
Sự hợp tác giữa developer và QA tạo điều kiện cho việc thử nghiệm tốt hơn. Bằng cách chia sẻ kiến thức với tester ngay từ khi bắt đầu phát triển, developers trang bị cho tester để đưa ra quyết định tốt hơn về những thử nghiệm nào sẽ chạy để đảm bảo chất lượng và chức năng của phần mềm.
Khi testers được trao quyền để đưa ra quyết định sáng suốt, developers cũng sẽ được hưởng lợi vì việc kiểm tra toàn diện các thành phần phần mềm đảm bảo rằng chúng sẵn sàng triển khai sau mỗi lần chạy nước rút.
Việc giải quyết các thách thức trên sẽ không chỉ giúp cuộc sống của QA dễ dàng hơn nhiều mà còn hợp lý hóa quy trình phát triển phần mềm để làm cho nó hiệu quả và tiết kiệm thời gian hơn. Bằng cách giúp QA dễ dàng thực hiện tốt công việc của mình, các tổ chức có thể đảm bảo rằng các sản phẩm phần mềm của họ được phát triển để đáp ứng mọi yêu cầu kinh doanh và hoạt động theo cách tốt nhất có thể. - Kiểm thử thất bại trong điều kiện người dùng thực tế
Đôi khi phần mềm không hoạt động như mong đợi trong điều kiện thực tế. Tuy nhiên, phần mềm đã vượt qua số test thành công trong môi trường được kiểm soát. Thử nghiệm trên Emulators và Emulators chỉ có thể bắt chước trình duyệt hoặc thiết bị và cung cấp môi trường được kiểm soát để thử nghiệm ứng dụng phần mềm. Đó là lý do tại sao ứng dụng phần mềm có thể thất bại trong điều kiện thực tế khi có nhiều hạn chế xuất hiện.
Giải pháp
Trong những trường hợp như vậy, bạn nên kiểm tra phần mềm trên các thiết bị và trình duyệt thực để đảm bảo rằng các điều kiện thực của người dùng như pin, thông báo đẩy, điều kiện mạng chậm, xác thực sinh học đều được tính đến để có độ chính xác cao hơn. Để làm như vậy, bạn có thể thiết lập một phòng thí nghiệm kỹ thuật số nội bộ hoặc bạn có thể chọn sử dụng đám mây thiết bị thực như BrowserStack. Khi so sánh việc xây dựng và mua, việc mua sẽ hiệu quả hơn về mặt chi phí và đòi hỏi ít nỗ lực hơn trong việc thiết lập và bảo trì.
Source: 5 Challenges Every QA faces and How to solve them | BrowserStack