Top 10 đầu sách Agile Tester nên đọc
Bài viết tham khảo và dịch từ nguồn: https://www.testingexcellence.com/top-10-books-every-agile-tester-should-read/ Dưới đây là danh sách Top 10 cuốn sách mà mỗi Agile Tester nên đọc để hiểu agile workflow và các phương pháp học và thành công trong vai trò của một Agile Tester. Xin lưu ý, danh ...
Bài viết tham khảo và dịch từ nguồn: https://www.testingexcellence.com/top-10-books-every-agile-tester-should-read/ Dưới đây là danh sách Top 10 cuốn sách mà mỗi Agile Tester nên đọc để hiểu agile workflow và các phương pháp học và thành công trong vai trò của một Agile Tester. Xin lưu ý, danh sách không theo thứ tự cụ thể nào và không phải là sách miễn phí ^^.
1. Agile Testing
Trở thành một "aglie tester" có nghĩa là gì? Liệu một team agile có cần một thành viên có chuyên môn về QA hay không? Vai trò thực sự của tester trong Agile là gì?
Testing là một thành phần chủ chốt trong agile. Việc ứng dụng rộng rãi agile cũng đưa nhu cầu có một phương pháp testing hiệu quả lên trước ánh đèn sân khấu, và các project agile cũng thay đổi vai trò gốc của tester. Tuy nhiên, vẫn còn nhiều công việc của tester vẫn bị hiểu lầm.
Trong cuốn Agile Testing, Crispin và Gregory đưa ra định nghĩa agile testing và mô tả vai trò của tester từ ví dụ một agile team trong thực tế. Cuốn sách dạy về
- Cho tester tham gia vào agile như thế nào
- Vị trí của tester và QA manager trong một team agile
- Yêu cầu để tuyển dụng một agile tester
- Làm thế nào để tester chuyển từ mô hình truyền thống sang mô hình agile
- Làm cách nào để hoàn thành testing trong một chu kì ngắn
- Cách sử dụng test để hướng dẫn cho quá trình phát triển
- Cách để vượt qua các rào cản tiến tới sử dụng test tự động
Cuốn sách Agile Testing là một cuốn sách buộc phải có của một agile tester, team agile, manager và khách hàng của họ. Link sách: Agile Testing
2. User Stories Applied
Cách tốt nhất để xây dựng phần mềm đáp ứng được nhu cầu của người dùng là bắt đầu bằng "user story": đơn giản, rõ ràng, mô tả ngắn gọn về chức năng sẽ có giá trị cho người dùng thực.
Trong cuốn User Stories Applied, bạn sẽ học được điều gì tạo nên một user story tuyệt vời, và điều gì làm cho một user story không tốt. Bạn sẽ khám phá ra cách thực hành để thu thập user story, ngay cả khi bạn không thể nói chuyện với người dùng của mình. Sau đó, khi bạn đã biên soạn user story, tác giả cho chúng ta biết cách tổ chức chúng, xác định độ ưu tiên và sử dụng chúng để lập kế hoạch, quản lý và kiểm thử. Bạn sẽ học được những gì ở cuốn sách này?
- Mô hình hóa vai trò người dùng: Hiểu người dùng có điểm gì chung và khác biệt ở đâu
- Thu thập các user story: phỏng vấn người dùng, thăm dò ý kiến, quan sát và hội thảo
- Làm việc với các manager, trainer, salespeople và các người đại diện khác
- Viết user story để kiểm thử chấp nhận
- Sử dụng các user story để thiết lập độ ưu tiên, thiết lập lịch biểu và ước tính chi phí phát hành
- Bao gồm các câu hỏi thực hành cuối chương và bài tập
Và nhiều hơn nữa!
User Stories Applied rất có ích đối với mọi deverloper, tester, analyst và manager với bất kỳ phương pháp agile nào: XP, Scrum ... hoặc thậm chí là cách tiếp cận riêng của bạn.
Link: User Stories Applied
3. Specification by Example
Đặc tả bằng ví dụ là một phương pháp hợp tác để xác định các yêu cầu và kiểm thử.
Trong cuốn sách này, tác giả Gojko Adzic phỏng vấn các team thành công trên toàn thế giới, chia sẻ cách họ xác định, phát triển và bàn giao phần mềm, mà không có lỗi, trong các chu kỳ phân phối ngắn lặp đi lặp lại.
Các nghiên cứu điển hình trong cuốn sách này bao gồm các trang web khởi nghiệp nhỏ cho các tổ chức tài chính lớn, hoạt động trong nhiều quy trình bao gồm XP, Scrum, và Kanban.
Trong cuốn Specification by Example, tác giả mô tả khái niệm về các đặc tả có thể thực hiện được được kiểm tra tự động như tài liệu. Loại tài liệu này luôn cập nhật, bởi vì nó chạy hàng ngày chống lại phần mềm để kiểm tra nó.
Cuốn sách này dành cho các nhà phát triển, người thử nghiệm, nhà phân tích làm việc cùng nhau để xây dựng phần mềm tốt nhất vì nó nhấn mạnh tầm quan trọng của việc hiểu các yêu cầu của khách hàng và làm thế nào để thực hiện nó sao cho đáp ứng được nhu cầu của khách hàng.
Link: Specification by Example
4. Continuous Delivery
Việc phát hành phần mềm cho người dùng thường là một quá trình vất vả, may rủi và tốn nhiều thời gian.
Sau khi đọc cuốn sách này, bạn sẽ học được các nguyên tắc và kỹ thuật thực tiễn cho phép cung cấp chất lượng, tính năng mới có giá trị và nhanh chóng cho người dùng.
Cuốn sách này bao gồm
- Tự động hóa mọi khía cạnh của việc xây dựng, tích hợp, thử nghiệm và triển khai phần mềm
- Thực hiện các đường ống triển khai ở cấp độ team và tổ chức
- Cải thiện sự hợp tác giữa deverloper, tester và nhà điều hành
- Phát triển các tính năng gia tăng trên các tem lớn và phân tán
- Thực hiện chiến lược quản lý cấu hình hiệu quả
- Kiểm thử chấp nhận tự động, từ phân tích đến thực hiện
- Khả năng kiểm thử và các yêu cầu phi chức năng khác
- Thực hiện triển khai liên tục và các bản phát hành không ngừng hoạt động
- Quản lý cơ sở hạ tầng, dữ liệu, các thành phần và phụ thuộc
- Điều hướng quản lý rủi ro, tuân thủ và kiểm toán
Link: Continuous Delivery
5. Experiances of Test Automation
Test Automation đã trở thành một điều cần thiết đối với phát triển agile. Khi các ứng dụng và hệ thống lớn lên và trở nên phức tạp, việc test thủ công không thể xử lý được hết.
Khi công nghệ thay đổi, và có nhiều hơn những tổ chức chuyển sang phát triển agile thì test cũng cần thích nghi với nó một cách nhanh chóng. Test automation là thiết yếu, nhưng việc tự động hoá không hợp lý sẽ gây ra lãng phí - làm sao để bạn biết công sức bạn bỏ ra có đáng hay không.
Cuốn sách này nói về cả việc quản lý và các vấn đề kỹ thuật, diễn giải các thất bại và thành công, các ý tưởng tuyệt vời và các quyết định tồi tệ, và hơn tất cả, cho bạn biết những bài học cụ thể mà bạn có thể sử dụng.
Bao gồm có:
- Test automation trong phát triển agile
- Việc hỗ trợ quản lý có thể tạo nên hoặc phá huỷ những sự tự động hoá thành công như thế nào
- Sự quan trọng của một kiến trúc test tốt và các cấp trừu tượng
- Đo đạc lợi ích và sự thu được từ đầu tư
- Vấn đề quản lý, bao gồm kỹ năng, việc lên kế hoặc, phạm vi và các dự tính
- Model-Based Testing (MBT), monkey testing, và exploratory test automation
- Tầm quan trngj của các tiêu chuẩn, việc giao tiếp, tạo tài liệ, và sự mềm dẻo trong enterprise-wide automation
- Các hoạt động hỗ trợ việc tự động hoá
- Test nào nên tự động hoá, test nào không nên
- Những chi phí ngầm cho việc tự động hoá: bảo trì và phân tích thất bại
- Mục tiêu chính xác cho việc tự động hoá test: tại sao “tìm bug" không phải là một mục tiêu tốt
- Những điểm nổi bật, bao gồm các bài học đã nhận được, các điểm tốt và các mẹo có ích
- Cuốn Experiences of Test Automation sẽ có giá trị đối với những ai đang xem xét, đang thực hiện, sử dụng hay quản lý việc test tự động. Kiểm thử viên, người phân tích, nhà phát triển, automator và cấu trúc tự động hoá, nhà quản lý kiểm thử, quản lý dự án, chuyên gia QA, và giám đốc kỹ thuật sẽ có được nhiều lợi ích từ việc đọc cuốn sách này.
Link: Experiances of Test Automation
6. Agile Lean ATDD
Trong framework của Acceptance Test-Driven-Development (ATDD), các khách hàng, nhà phát triển, và các kiểm thử viên phối hợp với nhau để tạo ra kiểm thử nghiệm thu để diễn giải một cách đầy đủ nhất phần mềm cần hoạt động như thế nào, dưới góc nhìn của khách hàng.
Bằng cách thắt chặt mối liên hệ giữa các khách hàng và agile teams, ATDD có thể cải thiện cả chất lượng phần mềm cũng như hiệu năng phát triển một cách rõ rệt.
“Cuốn cách này cung cấp hướng dẫn một cách rõ ràng, thẳng vào vấn đề làm cách nào để sử dụng business-facing test để điều hướng việc phát triển phần mềm. Tôi háo hức với những kiến thức xuất sắc trong cuốn sách này. Nó là một sự kết hợp tuyệt vời giữa kinh nghiệm của tác giả, tham khảo cả các chuyên gia và nghiên cứu khác, và có một dự án mẫu đã bao quát rất nhiều khía cạnh của ATDD. Một phạm vi rộng những người đọc sẽ hoạc được rất nhiều để học có thể ứng dụng, dù họ làm trong các project lean hay agile hay đơn thuần là họ muốn chuyển giao sản phẩm phần mềm tốt nhất có thể.”
Bao gồm có:
- Làm thế nào để phát triển phần mềm với đầy đủ các yêu cầu có thể kiểm thử được
- Làm thế nào để đơn giản hoá và phân chia các kiểm thử và sử dụng chúng để tìm ra những logic còn thiếu
- Làm thế nào để test giao diện người dùng, thực hiện dịch vụ hay các thành phần khó nhằn của một hệ thống phần mềm
- Làm thế nào để định dạng cách yêu cầu mà có thể xử lý một cách tốt nhất ngoài phần mềm
- Làm thế nào để đưa ra kết quả kiểm thử, đánh giá chúng và sử dụng chúng để đánh giá tổng quát tiến độ của dự án
- Làm thế nào để xây dựng test nghiệm thu tạo ra lợi ích tương hỗ cho tổ chức phát triển và các khách hàng
- Làm thế nào để mở rộng ATDD cho các dự án lớn
Link: Agile Lean ATDD
7. The Cucumber Book
Nếu bạn là một tester trong team agile, rất có thể bạn đã thực hiện kiểm thử chấp nhận các user story mà bạn muốn tự động hoá. Cuốn sách này dạy cho bạn những phần cơ bản của BDD, cách viết Gherkin đúng và đúng định dạng mà dễ hiểu, ngay cả những bài kiểm tra tự động của bạn.
Bạn sẽ học cách sử dụng Gherkin DSL của Cucumber để mô tả bằng ngôn ngữ đơn giản - hành vi mà khách hàng của bạn muốn từ hệ thống.
Cuốn sách này sẽ cho bạn thấy làm thế nào để thể hiện ý tưởng của khách hàng thành một tập hợp rõ ràng, đặc tả khả thi mà mọi người trong team có thể đọc. Bạn sẽ học được cách làm thế nào để áp dụng những ví dụ này trong Cucumber. Bạn sẽ xây dựng đúng mã để khiến cho khách hàng của bạn hài lòng, chứ không phải là một dòng nữa.
Được viết bởi người tạo ra Cucumber và là một trong những người dùng và người đóng góp nhiều kinh nghiệm nhất, cuốn sách Cucumber là một hướng dẫn cung cấp cho bạn và team của bạn những kiến thức bạn cần để tự tin bắt đầu sử dụng Cucumber.
Link: Cucumber
8. Explore It!
Trong các dự án agile, kiểm thử khám phá thường được xem là một quy trình kiểm thử bổ sung cho kiểm thử tự động. Thực sự là việc kiểm thử khám phá tìm ra nhiều bug hơn các phương pháp kiểm thử khác.
Lập trình phần mềm luôn ẩn chứa những bất ngờ. Không quan tâm bạn giỏi đến bao nhiêu, khi bạn tạo ra một phần mềm luôn có khả năng nó sẽ hành động khác với dự kiến. Test khám phá góp phần giảm thiểu những nguy cơ đó.
Cuốn sách này giúp bạn học những kỹ năng cốt lõi trong việc khám phá, bao gồm cách để phân tích phần mềm và chỉ ra những điểm gây lỗi chính, cách thiết kế các thực nghiệm ngay lập tức, cách để mài giũa khả năng quan sát và cách để tập trung vào mục tiêu.
Phần 1 giới thiệu các kỹ năng cốt lõi, quan trọng của test khám phá
Phần 2 tiếp tục xây dựng từ nền tảng trên
Phần 3 đưa các kỹ thuật áp dụng vào môi trường phát triển phần mềm
9. Agile Tester – One for all, All for one
Cuốn sách này nói về các kiến thức cơ bản của ISTQB Agile Test Foundation. Nó là một tài liệu học tập đầy đủ và sẽ chuẩn bị cho bạn trong các kỳ thi lấy chứng chỉ.
Phát triển phần mềm với agile
Các nguyên tắc cơ bản, ứng dụng và quy trình của agile testing
Các phương pháp, kỹ thuật và công cụ agile testing
Cuốn sách này cũng có chứa các kiến thức để lấy chứng chỉ International Agile Tester Foundation trên trang www.scrum.as, một lộ trình học tập mới nổi trên thế giới. Lộ trình này có lệ phí kiểm tra thấp hơn và cho phép thực hiện tại nhà. Link: Agile Tester – One for all, All for one
10. Lessons Learned in Software Testing
Và cuối cùng nhưng không kém phần quan trọng ... Cuốn sách mà mọi tester nên đọc. Cuốn sách này chứa hơn 200 bài học thu được từ hơn 30 năm kinh nghiệm kiểm thử kết hợp.
Mỗi bài học là một assertion liên quan đến kiểm thử phần mềm, tiếp theo là một lời giải thích hoặc ví dụ cho bạn thấy nó như thế nào, khi nào và tại sao.
Không chỉ là tip, thủ thuật và những bẫy để tránh, bài học rút ra trong kiểm thử phần mềm giúp bạn vượt qua giai đoạn kiểm thử quan trọng của dự án phát triển phần mềm mà không cần phải trải qua quá trình thử nghiệm và lỗi mà nó thường phải thực hiện.
Tài nguyên cuối cùng cho tester ở mọi cấp độ chuyên môn.
Link: Lessons Learned in Software Testing