Thứ Tư, 7 tháng 6, 2017

[ISTQB]Chương 6: Tool Suport for Testing

1. Types of Test Tools

a, Tool Support for Testing

Test tools có thể được sử dụng cho 1 or nhiều hoạt động để hỗ trợ những thử nghiệm đó
Bao gồm:
- Tools đó được sử dụng trực tiếp trong kiểm thử như test execution tools, test data generation tools and result comparison tools
- Tools đó giúp trong quản lý test process như datas, test result, requirements, incidents, defects ... và cho báo cáo và giám sát thực hiện thử nghiệm
- Tools đó được sử dụng trong trinh sát
- Tool bất kỳ viện trợ trong testing

Tool hỗ trợ cho Testing có thể có 1 or nhiều mục đích tùy theo bối cảnh:
- Cải tiến hiệu quả các hoạt động test bằng cách tự động lặp đi lặp lại các task or hỗ trợ các hoạt động test thủ công như test planning, test design, test reporting và monitoring
- Tự động hóa các hoạt động không thể thực hiện thủ công được
- Tự động hóa các hoạt động yêu cầu tài nguyên đáng kể khi hoàn thành manual
- Tăng độ tin cậy của testing

Điều kiện "Test framework" cũng thường xuyên được sử dụng trong công nghiệp
- Có thể dùng lại được và có khả năng mở rộng thư viện kiểm thử đó có thể được sử dụng để build test tool
- A type of design of test automation (data driven, keywork driven)
- Overall process of execution of testing

b, Test Tool Classification 


c, Tool Support for Management of Testing and Tests

Test Management Tool
Requirement Management Tools
Incident Management Tool (defect tracking tool)
Configuration Management Tools

d, Tool Support for Static Testing

Review Tool
Static Analysis Tool
Modeling Tool

e, Tool Support for Test Specification 

Test Design Tools
Test Data Preparation Tools

f, Tool Support for Test Execution and Logging 

Test Execution Tools
Test Harness/Unit Framework Tools
Test Comparators
Coverage Measurement Tools
Security Testing Tools

g, Tool Support for Performance and Monitoring

Dynamic Analysis Tools
Performance Testing/Load Testing/Stress Testing Tools
Monitoring Tools

h, Tool Support for Specific Testing Needs

Data Quality Assessment

2. Effective Use of Tools: Potential Benefits and Risks

a, Potential Benefits and Risks of Tool Support for Testing

Potential benefits:
- Repetitive work is reduced: Công việc lặp đi lặp lại được giảm
- Greater consistency and repeatability: Tính nhất quán và tính lặp lại tốt
- Objective assessment: Đánh giá mục tiêu
- Ease of access to information about tests of testing: Dễ dàng tiếp cận thông tin về kiểm thử
Risks:
- Unrealistic expectations for the tool: Mong muốn không thực tế cho tool
- Underestimating the time, cost and effort for initial introduction of a tool: Đánh giá thấp thời gian, giá và nỗ lực cho sự giới thiệu đầu tiên của tool
- Đánh giá thấp thời gian và nỗ lực cần để hoàn thành đáng kể và lợi ích tiếp theo từ tool
- Đánh giá thấp nỗ lực được yêu cầu để bảo trì tài sản kiểm thử được tạo bởi tool
- Over-reliance on the tool: Quá phụ thuộc vào tool
- Bỏ bê kiểm soát phiên bản của tài sản kiểm thử bên trong tool
- Bỏ mặc mối quan hệ và khả năng tương tác vấn đề giữa các tool quan trọng như requirement management tools, version control tools, incident management tools, defects tracking tools and tools from multiple vendors
- Rủi ro của nhà cung cấp tool mất đi nghiệp vụ, Tool dừng hoạt động or được bán cho nhà cung cấp khác
- Phản hồi kém từ nhà cung cấp cho việc hỗ trợ, nâng cấp, fix lỗi
- Không lường trước được, như không có khả năng để hỗ trợ cho nền tảng mới
- Rủi ro bị treo mã nguồn mở

b, Special Considerations for Some Types of Tools

Test Execution Tools
 Static Analysis Tools
Test Management Tools

3. Introduction a Tool into an Organization

Các xem xét chính trong lựa chọn tool cho 1 tổ chức:
- Đánh giá của tổ chức trưởng thành, điểm mạnh, điểm yếu và nhận biết của các cơ hội cho cải tiến test pprocess được hỗ trợ bởi tool
- Đánh giá chống lại các yêu cầu rõ ràng và tiêu chuẩn mục tiêu
- Chứng minh khái niệm, sử dụng test tool trong giai đoạn đánh giá để thiết lập liệu nó thực hiện hiệu quả với phần mềm dưới test và bên trong cơ sở hạ tầng hiện tại or để nhận biết thay đổi để cơ sở hạ tầng đó sử dụng hiệu quả tool
- Đánh giá của nhà cung cấp
- Nhận biết các yêu cầu bên trong cho huấn luyện và tư vấn sử dụng tool
- Đánh giá đào tạo cần xem xét nhóm test hiện tại, các kỹ năng test auto
- Ước tính tỉ lệ chi phí-lợi ích dựa trên trường hợp nghiệp vụ
Giới thiệu tool được chọn cho tổ chức bắt đầu với 1 dự án thí điểm:
- Học chi tiết về tool
- Đánh giá tool phù hợp với qui trình và thực hành đã tồn tại và mục đích những gì cần thay đổi
- Quyết định các chuẩn sử dụng, quản lý, bảo trì tool và test assets
- Đánh giá liệu các lợi ích sẽ được hoàn thành với chi phí hợp lý
Yếu tố thành công cho việc triển khai tool bên trong tổ chức:
- Đưa ra tool cho phần còn lại của tổ chức theo từng bước
- Sửa đổi và cải tiến qui trình để phù hợp với việc sử dụng tool
- Cung cấp đào tạo, huấn luyện, tư vấn cho người dùng mới
- Thực hiện cách thu thập thông tin sử dụng từ việc dùng thực tế
- Định nghĩa hướng dẫn sử dụng
- Giám sát sử dụng và lợi ích tool
- Hỗ trợ cung cấp tool cho test team
- Thu thập các bài được học từ tất cả các team






Thứ Ba, 6 tháng 6, 2017

[ISTQB]Chương 5: Test Management

1. Test Organization 

a, Test Organization and Independence

Hiệu quả của việc tìm kiếm các lỗi bởi kiểm thử và đánh giá có thể đc cải tiến bằng việc sửa dụng các Tester độc lập
Các lựa chọn:
- Không có Tester độc lập, Dev kiểm tra chính code của họ
- Tester độc lập bên trong Dev teams
- Group or teams kiểm tra độc lập bên trong tổ chức, báo cáo để quản lý dự án or quản lý sự thực hiện
- Testers độc lập từ tổ chức nghiệp vụ or cộng đồng người dùng
- Chuyên gia (specialists) kiểm tra độc lập cho các loại kiểm tra riêng như Usability Tester, Security Tester, Certification Tester
- Tester độc lập được thuê bên ngoài or bên trong của tổ chức

Lợi ích của sự độc lập
- Tester độc lập thấy được sự khác  biệt các lỗi và không thiên vị
- 1 Tester độc lập có thể xác thực giả thiết người làm trong đặc điểm kỹ thuật và sự thực thi của hệ thống

Hạn chế:
- Cô lập từ nhóm phát triển
- Dev mất đi cảm giác tương ứng về chất lượng
- Tester độc lập có thể như là 1 thắt nút cổ chai or đổ lỗi cho các sự chậm trễ trong khi phát hành


b, Task of the Test Leader and Tester

Test Leader còn được gọi là Test manager or Test coordinator (điều phối viên). Vai trò của Test Leader có thể được thực hiện bởi PM, Dev manager, QA manager or người quản lý của nhóm kiểm thử. Ở các dự án lớn  có thể tồn tại 2 vị trí: Test Leader or Test manager.

Leader task:
- Điều phối kế hoạch và chiến lược kiểm tra với PM or người khác
- Viết or đánh giá chiến lược kiểm thử cho dự án và chính sách kiểm thử cho tổ chức
- Đóng góp các quan điểm kiểm thử cho các hoạt động dự án khác, như là tích hợp kế hoạch
- Kế hoạch kiểm thử - xem xét bối cảnh và hiểu mục tiêu kiểm thử và rủi ro - bao gồm chọn các kiểm thử tiếp cận, ước tính thời gian, cố gắng và giá của kiểm thử, mua lại tài nguyên, định nghĩa các mức độ kiểm thử, các chu kỳ, kế hoạch quản lý biến cố.
- Bắt đầu đặc tả, chuẩn bị, thực thi và thực hiện kiểm thử, giám sát kết quả kiểm thử và kiểm tra tiêu chuẩn đầu ra
- Phỏng theo kế hoạch dựa trên kết quả kiểm thử và quy trình và lấy bất kỳ hoạt đông cần thiết để bù lại cho các vấn đề
- Thiết lập đầy đủ quản lý cấu hình của kiểm thử phần cho việc truy xuất nguồn gốc
- Giới thiệu các số liệu thích hợp cho việc đo lường quy trình kiểm thử và đánh giá chất lượng kiểm thử và sản phẩm
- Quyết định những gì nên tự động, trình độ gì và như thế nào
- Chọn các công cụ hỗ trợ kiểm thử và tổ chức đào tạo sử dụng công cụ cho Tester
- Quyết định về sự thực hiện của môi trường kiểm thử
- Viết báo cáo kiểm thử tổng quát dựa trên các thông tin tập hợp lại trong khi kiểm thử

Tester task:
- Đánh giá và góp phần cho kế hoạch kiểm thử
- Phân tích, đánh giá các yêu cầu người dùng, các đặc tả và mô hình có khả năng kiểm thử
- Tạo đặc tả kiểm thử
- Thiết lập môi trường kiểm thử
- Chuẩn bị và thu lại dữ liệu kiểm thử
- Thực thi các kiểm thử trên tất cả các mức độ, thực hiện và ghi log kiểm thử, đánh giá kết quả và ghi lại độ lệch của kết quả mong muốn
- Sử dụng các công cụ quản lý kiểm thử và giám sát như đã yêu cầu
- Automate tests
- Đo lương hiệu suất của thành phần và hệ thống
- Đánh giá các kiểm thử được phát triển bởi người khác


2. Test Planning and Estimation 

a, Test planning

Đề cương của tài liệu Test planning được bao phủ bởi "Standard for software test document" (IEEE Std 829-1998)
Test planning là 1 hoạt động liên tiếp và được thực hiện trong tất cả vòng đời quy trình và các hoạt động
Phản hồi từ các hoạt động kiểm thử đã từng sử dụng để nhìn nhận lại thay đổi của rủi ro vì vậy planning có thể được điều chỉnh.


b, Test planning activities 

Hoạt động cho 1 phần or toàn bộ hệ thống có thể bao gồm:
- Xác đinh phạm vi và các rủi ro và nhận định các mục tiêu của kiểm thử
- Định nghĩa các tiếp cận của kiểm thử, bao gồm định nghĩa các mức độ kiểm thử, tiêu chuẩn đầu vào và đầu ra
- Tích hợp và điều phối các hoạt động kiểm thử đến các hoạt động của vòng đời phần mềm
- Tạo các quyết định về những gì để kiểm thử, những vai trò gì sẽ thực hiện các hoạt động kiểm thử, các hoạt động kiểm thử như thế nào nên hoàn thành, kết quả kiểm thử như thế nào sẽ được đánh giá
- Lên lich phân tích kiểm thử và hoạt đông thiết kế
- Lên lịch thực hiện , đánh giá kiểm thử
- Phân công tài nguyên (resources) cho các hoạt động khác đươc định nghĩa
- Định nghĩa chi tiết số tiền, mức độ, cấu trúc và bản mẫu cho tài liệu kiểm thử
- Chọn số liệu cho giám sát và điều khiển chuẩn bị kiểm thử, thực hiện, vấn đề rủi ro và độ phân giải lỗi
- Thiết lập chi tiết các mức độ cho thủ tục kiểm thử trong thứ tự cung cấp đủ thông tin để hỗ trợ tái sản xuất sự chuẩn bị và thực hiện kiểm thử


c, Entry criteria

- Môi trường kiểm thử khả dụng và sẵn sàng
- Công cụ kiểm thử sẵn sàng trong môi trường kiểm thử
- Code khả dụng có thể kiểm thử
- Dữ liệu kiểm thử sẵn sàng


d, Exit criteria

- Các biện pháp triệt để như là bao phủ code, chức năng or rủi ro
- Giá
- Ước tính được mật độ lỗi or biện pháp tin cậy
- Rủi ro dư như các lỗi chưa fix or thiếu độ bao phủ kiểm thử trong 1 vùng nhất định
- Sắp xếp như những người dựa trên thời gian để thị trường


e, Test estimation 

Có 2 tiếp cận cho ước tính nỗ lực thử nghiệm:
- Cách tiếp cận dựa trên số liệu:
- Cách tiếp cận dựa trên chuyên gia: ước tính tasks dựa trên ước tính được làm bởi chủ các task đó or bởi chuyên gia
Nỗ lực thử nghiệm tùy theo số các yếu tố, bao gồm:
- Đặc điểm của sản phẩm: Chất lượng của đặc tả và thông tin khác được sử dụng để kiểm thử các mô hình, kích thước của sản phẩm, độ phức tạp của problem domain, các yêu cầu cho độ tin cậy và bảo mật và các yêu cầu cho tài liệu
- Đặc điểm của quá trình phát triển: Sự ổn định của tổ chức, tools test, test process, skills của người tham gia, áp lực thời gian
- Kết quả của thử nghiệm: Số lỗi và số tiền yêu cầu làm việc lại


f, Test strategy and test approach 

Test approach là sự thực hiện của Test strategy cho 1 dự án riêng
Test approach được định nghĩa và lọc trong test plan và test design 
Test approach là điểm bắt đầu cho kế hoạch test process, cho sự lựa chọn test design techniques và test type để ứng dụng và cho định nghĩ tiêu chuẩn đầu vào và đầu ra.
Lựa chọn tiếp cận tùy theo bối cảnh và có thể xem xét rủi ro, nguy hiểm và an toàn, tài nguyên sẵn sàng, skills, technology, bản chất của hệ thống, các mục tiêu và quy định thử nghiệm.
Approaches bao gồm:
- Analytical approaches (Phân tích tiếp cận), như là thử nghiệm dựa trên rủi ro
- Model-based approaches (Tiếp cận dựa trên mô hình)
- Methodical approaches (Phương pháp tiếp cận), như: failure-based, experience-based, checklist-based và chất lương characteristic-based 
- Process or standard-compliant approaches
- Dynamic and Heuristic approaches
- Consultative approaches  (Tư vấn tiếp cận,)
- Regression-averse approaches (Tiếp cận hồi tưởng ngược)

3. Test Progress Monitoring and Control 

a, Test Progress Monitoring 

Mục đích của Test monitoring là để cung cấp các phản hồi và khả thi về các hoạt động kiểm thử. Thông tin được giám sát có thể được thu thập tự động or thủ công và có thể sử dụng để đo tiêu chuẩn đầu ra như dộ bao phủ.
Common test metrics:
- Phần trăm công việc hoàn thành trong sự chuẩn bị test case
- Phần trăm công việc hoàn thành trong sự chuẩn bị môi trường test
- Thực thi test case
- Thông tin lối
- Thử nghiệm bao phủ các yêu cầu, rủi ro or code
- Niềm tin chủ quan của Tester trong sản phẩm
- Ngày tháng của các mốc kiểm thử
- Giá kiểm thử

b, Test Reporting

Test reporting liên quan với việc tóm tắt thông tin về nỗ lực kiểm thử, bao gồm:- Những gì đã xảy ra trong gia đoạn kiểm thử
- Phân tích thông tin và số liệu để hỗ trợ sự giới thiệu và quyết định về hoạt động tương lai, như đánh giá các lỗi còn lại, các rủi ro nổi bật, mức độ tự tin của phần mềm đã kiểm thử.
Dùng chuẩn "Standard for software test documentation" (IEEE std 829-1998)
Số liệu nên được thu thập trong khi và kết thúc 1 mức độ kiểm thử theo thứ tự để đánh giá:
- Đầy đủ các mục tiêu kiểm thử cho mức độ kiểm thử đó
- Đầy đủ kiểm thử tiếp cận 
- Hiệu quả của việc kiểm thử với sự tôn trọng các mục tiêu

c, Test Control

Ví dụ các hoạt động Test control, bao gồm:
- Tạo ra các quyết định dựa trên thông tin từ thử nghiệm giám sát
- Tái ưu tiên các thử nghiệm khi được nhận định rủi ro xảy ra

4. Configuration Management 

Mục đích là để thiết lập và bảo trì toàn vẹn sản phẩm, phần mềm, hệ thống qua vòng đời của dự án và sản phẩm
For testing:
- Tất cả các mục của phần mềm được nhận định, version controlled, theo dõi sự thay đổi, liên quan đến nhau và liên quan tới các mục phát triển vì vậy truy xuất nguồn gốc có thể được bảo trì khắp qui trình kiểm thử
- Tất cả các tài liệu được nhận định và các mục phần mềm được tham khảo rõ ràng trong tài liệu kiểm thử
For Tester:
- Giúp nhận định duy nhất Test items, test document

5. Risk and Testing

a, Project risk 

Organizational factors: (Yếu tố tổ chức)
- Skill, training và thiếu nhân viên
- Các vấn đề nhân viên
- Các vấn đề chính trị
- Thái độ không đúng cách or sự mong đợi  của testing
Technical issues: (Vấn đề kỹ thuật)
- Vấn đề trong việc định nghĩa đúng các yêu cầu
- Phạm vi các yêu cầu đó không thể đáp ứng được các hạn chế đang tồn tại
- Môi trường thử nghiệm không sẵn sàng đúng thời hạn
- Late data conversion, migration planing and development and testing data conversion/migration tools
- Design, code, cấu hình dữ liệu, test data chất lượng thấp
Supplier issues: (vấn đề nhà cung cấp)
- Failure of third party: Thất bại của bên thứ 3
- Contractual issues: Vấn đề về hợp đồng

b, Product risk 

Bao gồm:
- Phần mềm thất bại được đưa ra
- Tiềm năng mà phần mềm, phần cứng có thể là nguyên nhân làm hại đến cá nhân hay công ty
- Đặc điểm phần mềm kém
- Sự toàn vẹn và chất lượng dữ liệu kém
- Phần mềm không thể thực hiện được các chức năng dự định của nó.
Các rủi ro được sử dụng để quyết định bắt đầu testing ở đâu và test nhiều hơn ở đâu; 

6. Incident Management 

Mục tiêu của Incident report :
- Cung cấp người phát triển và các bên khác với phần hồi về vấn đề để cho phép nhận biết, cô lập và chỉnh sửa khi cần thiết
- Cung cấp Test leader để theo dõi chất lượng hệ thống và tiến độ của testing
- Cung cấp các ý tưởng để cải tiến qui trình test
Detail of incident report:
- Ngày phát hành, tổ chức phát hành và tác giả
- Kết quả thực tế và mong muốn
- Nhận biết các mục và môi trường kiểm thử
- Qui trình vòng đời của phần mềm or hệ thống, trong đó các sự cố đã được quan sát
- Miêu tả sự cố để cho phép tái sản xuất và độ phân giải, bao gồm logs
- Phạm vi or trình độ của các tác động người liên quan
- Tác động nghiêm trọng trên hệ thống
- Ưu tiên để sửa chữa
- Trạng thái của sự cố
- Kết luận, giới thiệu và phê duyệt
- Global issues (vấn đề toàn cầu)
- Change history
- References