课程目录:Software Engineering, Requirements Engineering and Testing培训
4401 人关注
(78637/99817)
课程大纲:

        Software Engineering, Requirements Engineering and Testing培训

 

 

 

Software Engineering 5 days
Day 1: Project Management
Project versus line management and maintenance and support
Project definition and project forms
Management – general rules and project management
Management styles
What is special for IT projects?
Basic project process
Iterative, incremental, waterfall, agile and lean project process
Project phases
Project roles
Project documentation and other artefacts
Soft factors and peopleware
PRINCE 2, PMBOK, PMI, IPMA and other project standards
Day 2: Business Analysis and Requirements Engineering Fundamentals
Defining business goals
Business analysis, business process management, business process improvement
The boundary between business and system analysis
System stakeholders, system users, system context and system boudaries
Why are requirements necessary?
What us requirements engineering
The boundary between requirements engineering and architectural design
Where is requirements engineering often hidden?
Requirements engineering in iterative, lean, and agile development and in continuous integration – FDD, DDD, BDD, TDD
Basic requirements engineering process, roles and artefacts
Standards and certifications: BABOK, ISO/IEEE 29148, IREB, BCS, IIBA
Day 3: Architecture and Development Fundamentals
Programming languages – structural and object-oriented paradigms
Object-oriented development – how much is history, how much is the future
Modularity, portability, maintainability and scalability of architectures
Definition and type of software architectures
Enterprise architecture and system architecture
Programming styles
Programming environments
Programming mistakes and how to avoid and prevent them
Modelling architecture and components
SOA, Web Services and micro-services
Automatic build and continuous integration
How much architecture design is there on a project?
Extreme programming, TDD and re-factoring
Day 4: Quality Assurance and Testing Fundamentals
Product quality: what is it? ISO 25010, FURPS etc.
Product quality, user experience, Kano Model, customer experience management and integral quality
User-centred design, personas and other ways to make quality individual
Just-enough quality
Quality Assurance and Quality Control
Risk strategies in quality control
The components of quality assurance: requirements, process control, configuration and change management, verification, validation, testing, static testing and static analysis
Risk-based quality assurance
Risk-based testing
Risk-driven development
Boehm’s curve in quality assurance and in testing
The four testing schools – which suits your need?
Day 5: Process Types, Maturity and Process Improvement
The evolution of IT process: from Alan Turing through Big Blue to lean startup
Process and process-oriented organization
The history of processes in crafts and industries
Process modelling: UML, BPMN and more
Process management, process optimization, process re-engineering and process management systems
Innovative process approaches: Deming, Juran, TPS, Kaizen
Is (process) quality free? (Philip Crosby)
The need and history of maturity improvement: CMMI, SPICE and other maturity scales
Special types of maturity: TMM, TPI (for testing), Requirements Engineering Maturity (Gorschek)
Process maturity versus product maturity: any correlation? Any causal relationship?
Process maturity versus business success: any correlation? any causal relationship?
A forsaken lesson: Automated Defect Prevention and The Next Leap in Productivity
Attempts: TQM, SixSigma, agile retrospectives, process frameworks
Requirements Engineering - 2 days
Day 1: Requirements Elicitation, Negotiation, Consolidation and Management
Finding requirements: what, when and by whom
Stakeholder classification
Forgotten stakeholders
Defining system context – defining requirements sources
Elicitation methods and techniques
Prototyping, personas, and requirements elicitation through testing (exploratory and otherwise)
Marketing and requirements elicitation – MDRA (“Market-Driven Requirements Engineering”)
Prioritising requirements: MoSCoW, Karl Wiegers and other techniques (including agile MMF)
Refining requirements – agile “specification by example”
Requirements negotiation: types of conflicts, conflict-solving methods
Solving internal incongruence between some types of requirements (e.g. security versus ease of use)
Requirements traceability – why and how
Requirements status changes
Requirements CCM, versioning and baselines
Product view and project view on requirements
Product management and requirements management in projects
Day 2: Requirements Analysis, Modelling, Specification, Verification and Validation
Analysis is the thinking and re-thinking you do between elicitation and specification
Requirements process is always iterative, even in sequential projects
Describing requirements in natural language: risks and benefits
Requirements modelling: benefits and costs
The rules for using natural language for requirements specification
Defining and managing requirements glossary
UML, BPMN and other formal and semi-formal modelling notations for requirements
Using document and sentence templates for requirements description
Verification of requirements – goals, levels and methods
Validation – with prototyping, reviews and inspections, and testing
Requirements validation and system validation
Testing - 2 days
Day 1: Test Design, Test Execution and Exploratory Testing
Test design: after risk-based testing, choosing the optimum way to use the time and resources available
Test design “from infinity to here” – exhaustive testing is not possible
Test cases and test scenarios
Test design on various test levels (from unit to system test level)
Test design for static and for dynamic testing
Business-oriented and technique-oriented test design (“black-box” and “white-box”)
Attempting to break the system (“negative testing”) and supporting the developers (acceptance testing)
Test design to achieve test coverage – various test coverage measures
Experience-based test design
Designing test cases from requirements and system models
Test design heuristics and exploratory testing
When to design test cases? – traditional and exploratory approach
Describing test cases – how much detail?
Test execution – psychological aspects
Test execution – logging and reporting
Designing tests for “non-functional” testing
Automatic test design and MBT (Model-Based Testing)
Day 2: Test Organization, Management and Automation
Test levels (or phases)
Who does the testing, and when? – various solutions
Test environments: cost, administration, access, responsibility
Simulators, emulators and virtual test environment
Testing in agile scrum
Test team organization and role
Test process
Test automation – what can be automated?
Test execution automation – approaches and tools