Chuyển đổi nhóm QA sang XP?
Câu hỏi này bạn hỏi là một trong đó nhiều người thử nghiệm truyền thống phụ thuộc vào sự sống còn của sự nghiệp.
Câu trả lời ngắn gọn là có thể. Bạn có quyền xác định luồng công việc là một vấn đề, nhưng luồng công việc đơn giản so với đào tạo cho lập trình và phát triển. Làm người thử nghiệm thành lập trình viên có thể là một cây cầu quá xa. Có nhiều kỹ năng khác có mối quan hệ gần gũi hơn với bộ kỹ năng hiện tại của người thử nghiệm của bạn.
Tôi nghĩ rằng có một vai trò cho Kỹ sư kiểm thử phần mềm, nhưng có hai sinh vật mới xuất hiện, Nhà phát triển thử nghiệm và Kỹ sư phát triển phần mềm trong Thử nghiệm, người sẽ tiếp quản rất nhiều sân cỏ từng thuộc về STE.
Quy trình làm việc XP
Theo quy trình làm việc XP, kiểm tra đơn vị là trách nhiệm của nhà phát triển. Thông thường, quy trình công việc sẽ liên quan đến việc tạo thẻ câu chuyện, lập sơ đồ ca sử dụng và một số trường hợp sử dụng, sau đó biến chúng thành các trường hợp thử nghiệm. Các trường hợp thử nghiệm sẽ thúc đẩy sự phát triển trong một phương pháp gọi là Phát triển hướng thử nghiệm (TDD). Mỗi phút chương trình tồn tại, có một trường hợp thử nghiệm được thực hiện trước, tiếp theo là một số mã ban đầu sẽ thất bại, sau đó sau khi làm việc bổ sung, vượt qua thử nghiệm đó. Khi tất cả các bài kiểm tra được xác định từ thẻ câu chuyện vượt qua, sản phẩm được thực hiện. Hoặc ít nhất là sự gia tăng mới nhất được thực hiện. Các bài kiểm tra đơn vị được tạo theo cách phụ thuộc ngôn ngữ và là một phần của mã. Có nhiều tài liệu tham khảo, nhưng để có phần giới thiệu nhanh, hãy kiểm tra Wikipedia, sau đó là trang web sau của Scott Ambler.
http://www.agiledata.org/essays/tdd.html#WhatIsTDD
Ngoài ra còn có sự chồng chéo đáng kể với thử nghiệm chấp nhận hệ thống vì các trường hợp thử nghiệm đến từ thẻ câu chuyện và trường hợp sử dụng. ATDD (Chấp nhận TDD) tạo ra sự khác biệt, nhưng tôi nghĩ nó có thể là loại tùy ý.
Không phải ai cũng thực hiện kiểm tra với mức độ nghiêm trọng như nhau. Các nhà quản lý có thể thúc đẩy các nhà phát triển không kiểm tra. Họ có thể đẩy để có người kiểm tra không kiểm tra quá. Tôi đã gặp khó khăn một năm khi các nhà phát triển trong nhóm của tôi có ngân sách nhưng những người thử nghiệm trong dự án đã thử nghiệm sửa lỗi và các tính năng mới vài giờ một tuần mặc dù kế hoạch dự án chỉ có hai tuần. Có vẻ như điều đó là đúng, và dự án vẫn có lãi và khách hàng có sản phẩm tốt hơn vì nó.
Các nhà phát triển phải kiểm tra. Sẽ rất lãng phí khi họ không làm vì người kiểm tra phải chạy, báo cáo và lặp lại. Chất lượng phần mềm không kém trách nhiệm của các nhà phát triển so với người thử nghiệm. Việc chia sẻ này sẽ làm cho cuộc sống của người thử nghiệm bớt bực bội, nhưng nó cũng đáp ứng nhu cầu về nhiều kiến thức và kỹ năng cho mọi người.
Nếu các nhà phát triển không thực hiện kiểm tra một cách nghiêm túc, các yêu cầu đối với người kiểm tra có thể tăng lên vì bạn sẽ nhận được bản dựng hàng ngày. Trong một thời gian mọi người có thể được nghe nói, "tại sao có vẻ như chúng ta tiến một bước và lùi hai bước." Câu trả lời sẽ là bởi vì bạn hiện đang sử dụng một hệ thống mà nhóm có tầm nhìn như chưa từng có trước đây và trước đó chỉ ở mức 90% mà những người đó biết về thảm họa sắp xảy ra.
Sự thay đổi của thử nghiệm đối với các nhà phát triển
Kinh nghiệm của tôi là để tăng tốc phát triển, nó có thể giúp chuyển các công việc được thực hiện bởi những người thử nghiệm sang phát triển. Điều này đúng với tất cả mọi thứ từ kiểm tra giao diện người dùng của màn hình cảm ứng rõ ràng thông qua kiểm tra phòng thí nghiệm chất lượng phần cứng của Windows đối với một mục rất phức tạp như trình điều khiển Windows cho WiFi.
Hãy xem xét những ngày trước PC khi các kỹ sư ra lệnh ghi nhớ và thông tin kỹ thuật cho một thư ký để được đánh máy, sao chép và phân phối. So sánh với nhà phát triển sử dụng email, wiki mạng nội bộ, nhận xét về theo dõi lỗi, kiểm soát nguồn hoặc công cụ đánh giá mã, nhắn tin tức thời, v.v. Chúng tôi chỉ có quá nhiều thay đổi cần kiểm tra và truyền thông và truyền đạt kiến thức xung quanh là như vậy nản chí rằng phần lớn thử nghiệm của chúng tôi được tự động thực hiện bởi các nhà phát triển không có ủy quyền để thử nghiệm.
Giá trị gia tăng cho người kiểm tra
Tôi đã làm việc với một số người thử nghiệm có thể là kỹ sư hệ thống và một số người có kỹ năng giao tiếp tốt điên rồ (gần như tâm trí đọc / thần giao cách cảm). Công việc hiệu quả nhất của tôi với họ là khi họ làm tốt công việc giải thích những hành vi bất ngờ mà họ thấy trong hệ thống, thường là bằng văn bản trong trình theo dõi lỗi, mặc dù thường thì một cuộc biểu tình là vô cùng hữu ích.
Một tiêu chí quan trọng khác là nỗ lực của một mã tay càng nhỏ càng tốt. Trong một thời gian, các nhà phát triển cảm thấy nhẹ nhõm khi những người thử nghiệm có thể tạo ra các bản dựng của riêng họ. Bây giờ, chúng tôi sử dụng các máy chủ tích hợp liên tục để các nhà phát triển chỉ cần cam kết nguồn và miễn là chúng tôi sử dụng TDD đúng, có rất nhiều thử nghiệm tự chạy và báo cáo lại.
Cạnh tranh toàn cầu đang đẩy thời gian chu kỳ và làm lại đang được làm lại ra khỏi hệ thống. Nếu ngày mai tôi nghe từ một người kiểm tra về một khiếm khuyết tôi đã thêm vào hôm nay, làm thế nào tôi sẽ cạnh tranh với anh chàng không tạo ra khuyết điểm ngày hôm nay (hoặc tự tìm thấy nó)? Chúng tôi chưa có ở đó, nhưng tôi nghĩ rằng những ngày lập trình viên cố gắng được đánh số. Tôi đã thấy các bản demo từ các nhà phát triển Google, những người có thể đã luyện tập rất nhiều, nhưng họ dường như có thể gõ một chương trình từ đầu đến cuối trong một bài giảng 90 phút, giải thích khi họ gõ ít hoặc không có vấn đề gì trong chu kỳ thay đổi và thực hiện . Người kiểm tra thêm giá trị bằng cách rút ngắn thời gian giữa công việc và làm lại, vì vậy báo cáo ngắn gọn về bản dựng ngày nay là một điểm cộng lớn.
Vai trò thử nghiệm mới
Nhiều tổ chức đang khắc chế vai trò của SDET - Kỹ sư phát triển phần mềm trong thử nghiệm. Những kẻ này kịch bản, mã, và mã xem xét. Liên kết sau đây là một blog cho SDET tại Microsoft.
http://aliabdin.wordpress.com/2007/03/31/what-does-an-sdet-do/
Ông cũng mô tả các Kỹ sư kiểm thử phần mềm (STE), những người cung cấp các lỗi mà họ tìm thấy cho SDET. Một điều khác làm tôi ngạc nhiên về vai trò của SDET là không giống như các nhà phát triển phần mềm truyền thống, khi họ có hệ thống lỗi, họ cần biết mã cho toàn hệ thống vì hầu như bất kỳ phần nào cũng có thể là nguồn gốc của vấn đề, vì vậy bản đồ tinh thần mở rộng giúp họ theo dõi nó xuống.
Hình thành một tầm nhìn dẫn đến sự chuyển đổi thành công
Tôi đã gặp một vấn đề tương tự của một người quản lý dự án không biết làm thế nào để phù hợp với vai trò đó vào scrum. Là chủ scrum là điểm đến chuyển tiếp của cô. Đó là một vai trò được xác định rõ, và có đào tạo cho nó. Tiếp tục tìm kiếm và bạn có thể tìm thấy một cái gì đó tương tự để thử nghiệm.
Có nhiều thông tin hơn về thử nghiệm Agile tại đây:
http://www.ambysoft.com/essays/agileTesting.html#AgileTestingStrargeties
và về nhóm thử nghiệm độc lập ở đây:
http://www.ambysoft.com/essays/agileTesting.html#Inep khuTestTeam
Những quan sát của Scott Ambler về tỷ lệ nhà phát triển so với người thử nghiệm trong Agile so với phương pháp truyền thống sẽ không làm cho ngày của bạn (15: 1 so với 3: 1). Tôi sẽ đề nghị hiểu và tạo ra một tầm nhìn cho nhóm thử nghiệm của bạn dựa trên chuyên môn về kỹ năng và công cụ:
- Hoàn toàn lưu loát với trình theo dõi lỗi.
- Hiểu các khái niệm kiểm soát nguồn cấp nhà phát triển như cam kết, chi nhánh, thẻ.
- Có thể chạy các báo cáo về cam kết mã và nhận xét của họ từ hệ thống kiểm soát nguồn.
- Tìm hiểu để giải mã nhà phát triển nói trong các bình luận cam kết và ánh xạ sau đó đến các bài kiểm tra UI và thủ công không chạy tự động.
- Tìm hiểu về hệ thống của một kỹ sư hệ thống, nhưng giúp làm rõ hơn là đưa ra quyết định về những gì không có giấy tờ và mơ hồ.
- Nhận một chu kỳ hàng ngày với các nhà phát triển. Điều này có thể có nghĩa là cấu hình lại thiết bị thường xuyên và nhanh hơn nhiều theo các công cụ kiểm tra và thử nghiệm.
- Tùy thuộc vào môi trường của bạn, nhà phát triển có thể đang sử dụng bộ công cụ rộng hơn nhiều so với người kiểm tra. Nếu phòng thí nghiệm của bạn có những gì họ sử dụng, đó là tâng bốc và một môi trường thân thiện hơn để đối mặt với thời gian và đào tạo đặc biệt từ các nhà phát triển. Các ví dụ có thể bao gồm sử dụng Trình quản lý máy ảo và máy ảo, gỡ lỗi hoặc chẩn đoán từ xa qua mạng với SSH hoặc máy tính để bàn từ xa, khả năng lưu trạng thái thiết bị hoặc giao diện người dùng thông qua chụp màn hình hoặc bằng cách chụp ảnh bằng máy ảnh hoặc điện thoại thông minh và đăng nhập vào thư mục mạng hoặc ổ đĩa ngón tay cái.
- Các phân tích sơ bộ sử dụng dữ liệu nhật ký được chuyển vào các bảng tính và chuyển đổi thành các ô. Có rất nhiều thứ được viết về dữ liệu lớn và đôi khi đầu ra thử nghiệm từ các trang web thử nghiệm hoặc thử nghiệm beta có thể là dữ liệu lớn.
- Tìm hiểu để tạo điều kiện cho giao diện khách hàng trong quá trình thử nghiệm beta. Điều này có thể liên quan đến việc truy xuất các tệp nhật ký bằng cách ghi lại và huấn luyện khách hàng qua điện thoại hoặc có thể được nối vào một hệ thống tự động cung cấp các bãi đổ trực tiếp cho nhà phát triển (hoặc cho bạn nếu bạn có kỹ năng xử lý).
- Giúp hỗ trợ phân tích định lượng các sản phẩm cấp phần mềm và hệ thống (như trước đây, nhưng thậm chí có thể nhiều hơn).
- Hãy tìm cách để các nhà phát triển nhận thức rõ hơn về bao nhiêu phương pháp và công cụ kiểm tra khác nhau mà bạn có, và những gì hoạt động tốt để yêu cầu công việc của họ được đảm bảo chất lượng, không chỉ ở cuối dự án, mà là hàng tuần hoặc hàng ngày.
- Hỏi các nhà phát triển trong tổ chức của bạn xem họ có tầm nhìn gì về cách người kiểm tra có thể giúp họ. Nó sẽ đi tốt nếu bạn đã theo dõi lưng cho đến nay. Bạn nên có được những ý tưởng tuyệt vời cùng nhau.
Chúc may mắn trong quá trình chuyển đổi sang XP và chuẩn bị nhóm của bạn làm điều tương tự.