Những người trong QA cần những kỹ năng lập trình nào để làm việc hiệu quả trong các dự án lập trình cực đoan?


8

Chà, tiêu đề thực sự nói lên tất cả, nhưng để giải thích một chút, bạn có thể lấy một bộ phận QA ngẫu nhiên, điển hình hiệu quả và cho họ học cách làm việc trong môi trường XP (dĩ nhiên là có một đường cong học tập để nắm bắt quy trình làm việc của XP) hoặc họ sẽ cần nhiều kỹ năng lập trình để có hiệu quả? Nếu vậy, họ cần biết những gì?

Câu trả lời:


9

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ự.


Câu trả lời rất hay! +1
Steven Evers

Tôi đã không nhận thấy chỉnh sửa cho đến một lúc trước. Bây giờ nó là một câu trả lời tốt.
psr

-1 cho "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 thậm chí không gần với kinh nghiệm của tôi "Tôi đã từng làm việc trong các dự án với tỷ lệ dev: test thay đổi từ 10 : 1 đến 1: 2 và tất cả bọn họ đều ổn và ổn. Người duy nhất bị hút là nơi không có người kiểm tra nào cả - và nó thực sự tệ ... "
gnat

Nó sẽ xuất hiện trong câu trả lời của tôi rằng tôi đánh giá cao những gì người kiểm tra làm. Nhưng nhiều người thử nghiệm đang sử dụng máy chạy bộ cắt vì các nhà phát triển nói rằng thử nghiệm WRT "không phải việc của tôi". Tôi biết một dự án nơi các bản phát hành kết thúc bằng "thử nghiệm bốn ngày". Nếu thất bại, bài kiểm tra và đồng hồ bắt đầu lại. Một số nhà phát triển đã thử nghiệm mức tích hợp vào khối lượng công việc của họ, mở rộng cấu hình thử nghiệm tại văn phòng của họ từ PC và một thiết bị được thử nghiệm không có thiết bị ngoại vi (~ $ 5000) để thêm PC thứ hai cộng với thiết bị ngoại vi DUT (~ $ 12K). Nhận kết quả ngay lập tức so với chờ phản hồi của người kiểm tra giúp mọi người tiết kiệm thời gian và công việc.
Nhà phát

Công việc thay đổi đáng kể khi các công cụ cải thiện và cạnh tranh toàn cầu thúc đẩy chi phí và thời gian chu kỳ. Sử dụng ít hơn, người có năng suất cao hơn là phổ biến. Các chuyên gia viết thư và báo cáo cho một thư ký để gõ được thay thế bằng email và xử lý văn bản. Nhóm thư ký được thay thế bởi một quản trị viên được đào tạo tốt, người đưa ra quyết định, chủ động. Tương tự, kiểm tra trở nên chuyên nghiệp hơn nhiều. Tôi đã làm việc với một người thử nghiệm với bằng cấp hai năm đã từ chối đọc một cuốn sách về thử nghiệm. Anh ấy đã thoát ra khi nhóm kiểm tra phát triển chuyên nghiệp hơn (giáo dục trung bình chỉ thiếu trình độ Thạc sĩ).
Nhà phát

-3

Đối với phát triển theo hướng kiểm tra điển hình, có lẽ QA của bạn không cần biết bất kỳ chương trình nào.

Nhưng nếu bạn đang thực hiện phát triển theo định hướng hành vi, sẽ có ích cho QA của bạn biết một ngôn ngữ như Cucumber . Đặc biệt, nếu các nhà phân tích kinh doanh của bạn đang viết các yêu cầu câu chuyện theo phong cách Cho-Khi-Sau đó.

Tuy nhiên, nó thực sự phụ thuộc vào 'người' của bạn và công cụ bạn đang làm việc. Tôi có thể nói rằng chúng có thể hiệu quả với kiến ​​thức lập trình bằng không, nhưng chắc chắn nó sẽ không gây hại và có thể làm cho chúng hiệu quả hơn.

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.