Expertise Areas

Software Verification and Validation

Verification aims at detecting faults in software systems whereas Validation is about gaining sufficient confidence in their dependability (reliability, security, safety)  to deploy and deliver them. Many different techniques exist to support either verification or validation.

  • Requirements Quality Assurance: How to ensure that requirements are unambiguous, consistent, up-to-date, and adequately addressed by the system design and implementation?
  • Regulatory Compliance: How to demonstrate compliance with standards and legal frameworks that regulate different aspects of IT systems?
  • Design-time analysis: How can we automatically analyze the algorithmic, behavioral, real-time and architecture design of systems to ensure, early on, that they comply with their requirements?
  • Functional Safety of Artificial Intelligence: How can we ensure that systems consisting of machine learning-based applications are sufficiently robust to be used in autonomous systems and are compliant with industry standards for functional safety?
  • Automated software testing and analysis: How can we automatically and efficiently test and analyze software systems to ensure their dependability, i.e., reliability, security, and safety?
  • Run-time monitoring and analysis: After system deployment, while in use, how can we ensure that it is compliant with essential (e.g., security) requirements and prevent critical failures?
  • Cybersecurity: How can we detect security vulnerabilities  (e.g., injection, access control misconfiguration) in software systems using program analysis, software testing, and run-time analysis techniques?