Giai đoạn nào của Agile (SCRUM) chúng ta nên bắt đầu tạo các thử nghiệm tự động hóa?


9

Một chút nền tảng của tôi - Tôi là người thử nghiệm thủ công trong gần 2 năm trong môi trường Agile sử dụng SCRUM (1-2 tuần nước rút). Vì vậy, tôi muốn giới thiệu thử nghiệm tự động hóa trong công việc của mình bằng Selenium WebDriver (với Java).

Câu hỏi của tôi là khi nào tôi nên kiểm tra chức năng bằng tay và khi nào tôi nên chuyển đổi chúng để kiểm tra tự động hóa?

Tôi đã đọc và nhận được cách tiếp cận khác nhau, chẳng hạn như:

  1. Khi một lần chạy nước rút mới đang bắt đầu, hãy chuyển đổi các câu chuyện của người dùng thành các tập lệnh tự động từ lần chạy nước rút trước đó, OR;
  2. Chuyển đổi các câu chuyện của người dùng trong cùng một lần chạy nước rút.

Bất kỳ lời khuyên / s sẽ được rất nhiều đánh giá cao. Cảm ơn bạn trước.


4
Vui lòng không đăng chéo cùng một câu hỏi trên hai trang web trao đổi ngăn xếp khác nhau. Vui lòng xóa một trong số họ.
R Sahu

Câu trả lời:


13

Tự động hóa thử nghiệm (và tất cả các thử nghiệm khác) nên là một phần của định nghĩa thực hiện . Điều này để làm cho một sản phẩm có khả năng shippable. Bạn có thể gửi nếu nó không được thử nghiệm?

Kiểm thử cũng phải là một cách tiếp cận toàn đội, vì vậy tự động hóa kiểm thử không phải là trách nhiệm của người kiểm thử. Bắt đầu suy nghĩ về thử nghiệm càng sớm càng tốt trong quá trình.

Tự động hóa thử nghiệm rất quan trọng trong Agile vì:

Agility tổ chức bị hạn chế bởi Agility kỹ thuật

Nói cách khác, khi bạn chậm thực hiện các thay đổi cho sản phẩm của mình, thì việc bạn cấu trúc các nhóm, tổ chức của bạn hoặc khuôn khổ bạn áp dụng là gì, bạn sẽ chậm phản ứng với các thay đổi.

https://less.works/less/technical-excellence/index.html

Nếu bạn hoãn thử nghiệm cho đến khi lặp lại, bạn sẽ luôn bị tụt lại phía sau. Làm cho việc thay đổi hướng của sản phẩm trở nên khó khăn hơn vì khó tái cấu trúc và bảo vệ an toàn cho hành vi bên ngoài của sản phẩm. Có bất kỳ thử nghiệm thủ công lặp đi lặp lại là chìa khóa trong việc làm chậm bạn, tự động hóa nó!

Rất nhiều người thử nghiệm sẽ nói với bạn rằng bạn không nên bắt đầu thử nghiệm từ đầu đến cuối cho đến khi giao diện sản phẩm ổn định. Đừng chờ đợi, thay vào đó hãy sử dụng tốt PageObjects và đảm bảo các bài kiểm tra của bạn có thể duy trì được và khiến cho nhà phát triển có trách nhiệm tạo và sửa chúng.


Tôi không đồng ý về "nên" đầu tiên. Định nghĩa hoàn thành là điều mà nhóm Scrum cần phải tự mình giải quyết. Nếu nhóm coi việc kiểm tra tự động là quan trọng, thì họ sẽ đưa nó vào như một phần định nghĩa của họ. Tuy nhiên, quá trình tự nó không nói rằng họ phải, hoặc thậm chí là họ nên. Đó là một cái gì đó hoàn toàn phụ thuộc vào đội và không có câu trả lời đúng, sai hoặc ưa thích.
aroth

@aroth Tôi đồng ý với bạn, nhưng trong gần như tất cả các trường hợp bạn xây dựng một sản phẩm phần mềm lớn hơn, bạn muốn thêm thử nghiệm vào DoD. Do đó tôi nghĩ thật tốt khi nói với mọi người rằng bạn nên suy nghĩ về điều đó. Là một người thử nghiệm, tôi tin rằng thử nghiệm ở cuối bởi một nhóm riêng biệt là những bước đầu tiên để Wagile. Nhưng có, có những tình huống và hoặc trường hợp mà việc kiểm tra thậm chí không cần thiết.
Niels van Reijmersdal

2

Điều quan trọng là bạn không đánh dấu một câu chuyện hoàn chỉnh trừ khi bạn đã viết các bài kiểm tra tự động cho câu chuyện đó.

Vì vậy, 1 dường như đã hết, vì bạn đang viết bài kiểm tra cho một nhiệm vụ đã hoàn thành trong lần chạy nước rút trước đó. Nếu xét nghiệm thất bại thì sao?


Vì vậy, nếu trong tuần một trong những lần chạy nước rút mới, không có câu chuyện người dùng nào về lần chạy nước rút đó ở trạng thái có thể kiểm tra hồi quy, bạn đề nghị OP nên về nhà và không làm gì cả? Nghe có vẻ không hiệu quả đối với tôi ;-)
Doc Brown

Người kiểm thử nên sử dụng tuần đầu tiên đó để đặt câu hỏi về thông số kỹ thuật "hmmmm với tư cách là người dùng tôi mong đợi nhạc nền trên trang web của mình .." tìm lỗi trong các câu chuyện chưa hoàn chỉnh và thường gây rắc rối. Các nhà phát triển được phép nói rằng họ không thể bắt đầu cho đến khi kế hoạch kiểm tra được viết
Ewan

@DocBrown: trong tuần một trong những lần chạy nước rút mới, người thử nghiệm có một khối lượng công việc đáng kinh ngạc. Họ cần hiểu những gì các nhà phát triển đang xây dựng bằng cách làm việc với chủ sở hữu sản phẩm và các nhà phát triển. Họ cần làm việc với nhà phát triển để đảm bảo rằng họ làm cho mã có thể kiểm tra được. Họ có thể bắt đầu làm việc trên một kế hoạch kiểm tra tự động. Họ thậm chí có thể bắt đầu viết một số bài kiểm tra. Nếu bạn có một khung kiểm tra thích hợp trong đó các bài kiểm tra của bạn được viết ở mức độ trừu tượng cao, bạn có thể viết chúng trước khi mã sẵn sàng.
Bryan Oakley

1

Tốt nhất bạn nên viết các bài kiểm tra tự động trong cùng một lần chạy nước rút mà mã được viết. Mã không nên được coi là "hoàn thành" cho đến khi các bài kiểm tra tự động được viết và bạn phải đưa mã về trạng thái "hoàn thành" vào cuối giai đoạn nước rút.

Bạn nên bắt đầu quá trình vào ngày đầu tiên của cuộc chạy nước rút bằng cách làm việc với nhà phát triển để hiểu mã và để giúp họ hiểu nhu cầu của bạn như một người thử nghiệm. Ví dụ: nếu bạn đang xây dựng các trang web, bạn có thể giúp họ hiểu nhu cầu thêm số nhận dạng duy nhất cho mọi thành phần trang mà bạn cần tương tác.

Hãy nhớ rằng trong scrum, công việc của bạn không phải là viết bài kiểm tra. Công việc của bạn là làm việc với nhóm để hoàn thành các mục tiêu nước rút. Điều đó có nghĩa là giao tiếp và hợp tác, điều sẽ xảy ra rất sớm trong giai đoạn nước rút. Bạn có thể bắt đầu làm việc với các thiết kế thử nghiệm và kế hoạch thử nghiệm trước khi mã sẵn sàng để được thử nghiệm.


0

Nếu bạn định kiểm tra tự động, bạn cũng có thể tạo các bài kiểm tra trả trước. Điều này sẽ giúp bạn xác định hành vi nào bạn đang mong đợi và kích thích bạn suy nghĩ như một khách hàng, cuối cùng nó sẽ giúp phần mềm của bạn có thể sử dụng được nhiều hơn. Và bạn sẽ được hưởng lợi từ thử nghiệm ngay lập tức khi bạn đang thực hiện chức năng.


1
Điều đó không hoạt động với các công cụ kiểm tra giao diện người dùng như Selenium. Bạn cần một giao diện người dùng ổn định và hoạt động để có thể tạo các bài kiểm tra.
Doc Brown

@DocBrown: Tôi không nghĩ điều đó nhất thiết phải đúng. Nếu bạn cung cấp cho tôi thông số kỹ thuật cho một trang web mới, tôi có thể bắt đầu (và có thể kết thúc!) Viết các bài kiểm tra tự động trước khi trang được viết. Bạn chỉ cần cộng tác với nhà phát triển để cả hai đồng ý về cấu trúc trang là gì, id thành phần là gì, v.v.
Bryan Oakley

0

Bạn có thể làm một trong hai, nhưng thông thường bạn muốn nhắm mục tiêu kiểm tra hồi quy với các kiểm tra tự động hóa. Điều đó có nghĩa là tôi sẽ làm thủ công cho đến khi bạn chắc chắn rằng nó đủ vững chắc để làm bài kiểm tra hồi quy. Điều này có thể ở giữa giai đoạn nước rút cho một số chức năng và có thể là trong giai đoạn nước rút trong tương lai cho chức năng khác.


0

Như đã nêu trong một câu trả lời khác , khi thử nghiệm xảy ra nên là một phần của định nghĩa thực hiện . Tuy nhiên, tôi không đồng ý với một số câu trả lời đó, vì vậy tôi muốn mở rộng với những trải nghiệm mà tôi đã gặp.

Trong một môi trường Agile thực sự, mọi người đều có thể làm mọi thứ. Sẽ không có ai đó tận tâm 100% để thử nghiệm, bạn cũng sẽ phát triển các kỹ năng để trợ giúp một số công việc UI cơ bản hoặc một cái gì đó khác. Tuy nhiên, chúng ta hiếm khi sống trong một thế giới lý tưởng.

Những gì tôi muốn giới thiệu sẽ là làm một chút của một phương pháp lai. Đối với Định nghĩa Hoàn thành của bạn, tôi sẽ nói rằng kiểm tra thủ công phải là một phần của Sprint, công việc được mã hóa. Bạn biết nó hoạt động và mọi lỗi có thể được báo cáo ngay lập tức, có thể được sửa, trước khi Sprint kết thúc để bạn có thể lập kế hoạch tiếp theo một. Bằng cách tập trung vào kiểm tra thủ công, bạn trở nên quen thuộc với những gì mã phải làm. Vào đầu Sprint tiếp theo khi bạn không có nhiều việc phải làm, bạn có thể thiết lập các bài kiểm tra tự động có thể chạy như một phần của quy trình xây dựng để ngăn ngừa lỗi hồi quy.


Tôi chưa bao giờ thấy một cuộc chạy nước rút mà ở đó không có nhiều việc phải làm cho các mục tiêu chạy nước rút hiện tại vào ngày đầu tiên. Để viết các bài kiểm tra tự động cần có sự hợp tác và lập kế hoạch, và điều đó sẽ bắt đầu trong giờ đầu tiên của ngày đầu tiên của cuộc đua nước rút.
Bryan Oakley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.