1. Giới thiệu về khoá học Vấn đề kiểm tra lỗi phần mềm trong một thời gian dài trước đây có mối quan hệ rất lỏng lẻo với việc phát triển phần mềm, nhưng nay đã trở thành một phần tích hợp trong chiến lược phát triển phần mềm. Khoá học đặc biệt này sẽ chỉ ra cho bạn cách thức triển khai một chiến lược kiểm tra lỗi thành công trong công ty hoặc cơ quan của bạn. Việc lựa chọn và đánh giá chiến lược kiểm tra lỗi dựa trên rủi ro được đưa ra cùng với các công cụ, các kỹ thuật và phương pháp được yêu cầu để cho ra đời những sản phẩm có chất lượng, đã được kiểm tra lỗi một cách tin cậy cho dù sản phẩm đó tồn tại độc lập riêng hoặc nằm trong cấu trúc phân tán. Khoá học ba ngày này mang tính đặc thù duy nhất, đó là trình bày một kiến trúc độc đáo cho việc cải thiện tính hiệu quả của việc kiểm tra lỗi phần mềm, được kết hợp giữa lý thuyết và thực hành. Kiến trúc này hợp nhất cả những khái niệm và hoạt động kiểm tra lỗi mà trước đây được coi là không có mấy liên quan. Sau khoá học, học viên sẽ được trang bị các công cụ và các kỹ thuật kiểm tra lỗi có thể sử dụng để nâng cao chất lượng các hệ thống phần mềm. 2. Mục tiêu của khoá học - Chỉ ra cách thức tích hợp việc kiểm tra lỗi phần mềm vào toàn bộ quá trình phát triển phần mềm và văn hoá công ty.
- Giải thích tại sao việc kiểm tra lỗi lại trở thành yêu cầu cơ bản của tất cả các sản phẩm phần mềm.
- Chỉ ra cách thức ngăn ngừa việc loại bỏ việc kiểm tra lỗi sản phẩm ra khỏi chương trình nghị sự.
- Chỉ ra việc kiểm tra chất lượng phần mềm là một phần tích hợp và những lợi ích đi kèm của các kỹ thuật phát triển phần mềm hiện đại.
- Thảo luận các tiêu chuẩn kiểm tra lỗi được chọn trong việc kiểm tra lỗi dựa trên rủi ro. Thảo luận các kiểu và các kỹ thuật kiểm tra lỗi khác nhau.
- Chỉ ra tại sao các tiêu chuẩn kiểm tra lỗi được chọn bị ảnh hưởng bởi phạm vi và cấu trúc của các sản phẩm phần mềm.
- Minh hoạ việc kiểm tra lỗi được thực hiện ở những mức độ khác nhau như thế nào.
3. Đối tượng tham gia - Những người quản trị dự án
- Trưởng nhóm
- Lập trình viên
- Các chuyên gia kiểm tra lỗi phần mềm
- Các chuyên viên cần được trang bị kiến thức về việc lập kế hoạch kiểm tra lỗi
- Những kỹ sư có dự định chuyển sang làm việc trong nhóm kiểm tra lỗi phần mềm
4. Yêu cầu trước khi tham gia khoá học Học viên cần có những kiến thức cơ bản về phát triển phần mềm, ngôn ngữ lập trình, các vấn đề liên quan đến phát triển phần mềm và làm quen với những dự án có nhiều người tham gia. Kiến thức và kinh nghiệm trong việc kiểm tra lỗi phần mềm là không bắt buộc. 5. Thời lượng của khoá học :24 giờ
6. course content/ Giới thiệu INTRODUCTION AND OVERVIEW - Testing and inspection methods
- Recognizing various testing concepts
- Structured testing approaches
- Reducing costs and minimizing risks
- Applying black box vs. white box testing
LEVERAGING FUNDAMENTAL CONCEPTS Writing test cases and scenarios - Analyzing input and execution conditions
- Monitoring expected results
- Conformance to requirements
- Adopting best practices and lessons learned
Maximizing test coverage - Equivalence classes and boundary values
- Decision tables
- Orthogonal arrays
- State transition diagrams
CREATING TEST PLANS AND DOCUMENTATION Developing test plans, logs and reports - Estimating the inspection and testing effort
- Prioritizing work with limited resources
- Establishing format, content and structure
Managing the test environment - Documenting policies and procedures
- ; Linking to configuration management
- Coordinating new version releases
- Refreshing the test environment
CONDUCTING THE INSPECTION PROCESS Implementing formal inspections - Distinguishing reviews, inspections, walkthroughs and audits
- Harnessing the benefits of inspection
- ; Reducing the need for dynamic testing
- Employing traceability tables and lists
Simplifying the inspection process - Entry
- Kickoff meeting
- Individual checking
- Logging meeting
- Edit and follow-up
- Exit
PERFORMING UNIT TESTING Essential testing skills - Preparing the test data and environment
- Calculating cyclomatic complexity
- Determining path and branch coverage
- Testing loops and conditional statements
Advanced testing concepts - Applying unit \"buddy\" testing
- Performing OO class testing
- Creating browser-test checklist
- Assessing automated testing tools
IMPLEMENTING INTEGRATION TESTING Identifying integration approach factors - Replacing scaffoldings with components
- Maximizing test scripts reuse
- Separating databases for each test stage
Selecting the order of integration - \"Big Bang\"
- Bottom-up
- Top-down
- Centralized
- Layer
- Collaboration
Specialized integration techniques - Generic scheme of an embedded system
- Sequential and continuous integration
- Object interaction and class inheritance
EXECUTING SYSTEM TESTING Developing a system test strategy - Creating production-like test environments
- Defining organizational responsibilities
- ; In-house vs. third-party software
Applying a risk-driven test strategy - Justifying the risks of testing too much
- Capturing and managing software defects
Overcoming complex system challenges - Addressing data privacy and security issues
- Desensitizing test data from production
- Performing load, volume and stress testing
MANAGING ACCEPTANCE TESTING Expediting the sign-off process - Contrasting acceptance with system testing
- Choosing and training testing participants
- Buyer protection through stringent criteria
- Classifying bugs and prioritizing fixes
Examining software usability - Incorporating assistive technologies
- Adding features for users with disability
- Creating test cases from use-case scenarios
Accepting third-party software - Customized
- Off-the-shelf
- GOTS
ADMINISTERING REGRESSION TESTING Categorizing maintenance test classes - Corrective
- Perfective
- Adaptive
- Downloadable updates
- Plug-ins
Deploying regression techniques - Identifying existing scripts for reuse
Accelerating the process through automated tools |