Our Top Courses
There are no shortcuts, but there is a better way to get there. Let us show you how.


About Course
The Software Engineering for Test Applications course builds upon the software engineering process that was covered in the LabVIEW Core 3 Course. This course expands upon this knowledge by focusing on the LabVIEW tools and industry practices that aid in the definition, management, design, development, validation, and deployment of a quality solution. The course teaches common practices for managing large, team oriented, application development projects from specification to deployment.
Benefits of the course
- Manage projects that require timely delivery of a quality solution that satisfy application requirements and regulatory standards
- Manage development of a test application project from definition to deployment
- Adapt the software engineering process, as presented in this course, to your development projects
- Select and leverage appropriate tools and techniques for managing the development of your LabVIEW application
- Conduct an effective code review
- Develop a strategy for testing and validating your application
- Select an appropriate method for deploying your applications to other developers and end users
Course Content
-
Introduction
-
Orientation Towards CI
00:47 -
Traditional Module
01:35 -
Agile and Continuous Delivery
02:14 -
Why to Implement CI?
03:04 -
CI Systems
00:58 -
Elements of a CI Pipeline
01:59 -
Benefits of CI Systems
02:07 -
Reporting Test Results and Build Health
01:21 -
Knowledge Check
-
Summary
-
Introduction
-
Why to Run Tests?
01:07 -
Dynamic Test vs Static Analysis
02:16 -
Testing Frameworks and Reporting
02:32 -
Dynamic Testing – Invocation
01:45 -
Static Analysis
03:13 -
Static Analysis – Invoking
00:59 -
Getting Started
00:39 -
Optimizing
01:22 -
Knowledge Check
-
Summary
-
Introduction
-
What Is a CLI? CLI, G-CLI and NI LabVIEW CLI
02:16 -
Comparison of NI LabVIEW CLI and G-CLI
01:51 -
Demonstration of Using CLI in interaction with LabVIEW
01:57 -
Other Tools with CLI
00:29 -
Summary
-
Introduction
-
Overall Process
01:43 -
Benefits of Using a Jenkins CI
01:24 -
Configuring CI Orchestrator
02:04 -
Configuring a Jenkins Agent
05:29 -
Environment Variables
05:11 -
Knowledge Check
-
Summary
-
Introduction
-
What is GitLab?
01:49 -
Setting up the System
01:13 -
What the Project Looks Like in GitLab
04:41 -
Building a Pipeline on GitLab
05:05 -
Building a Pipeline on GitLab – Output
10:00 -
Knowledge Check
-
Summary
-
Introduction
-
Overall Process of Continuous Integration of CI
00:59 -
Configuring the Orchestrator
03:29 -
Configuring the Agent
02:51 -
Overall Process
05:45 -
Pipelines
03:54 -
Pipelines (Test)
08:09 -
Knowledge Check
-
Summary
-
Introduction
-
Builds
04:17 -
Artifacts
02:14 -
Demonstration on How to Invoke LabVIEW via the Commend Line to Create New Builds
02:32 -
Tips and Tricks on How to Improve the CI Build System
02:18 -
Knowledge Check
-
Summary
-
Introduction
-
Consequences for Not Having a CI Process
00:44 -
What Do You Already Have?
00:57 -
What Do You Need?
01:38 -
IT handshake
01:26 -
Things You Should Have Before Approaching IT
01:26 -
Creating a POC
01:34 -
Deployment
01:11 -
Continued deployment
00:47 -
Knowledge Check
-
Summary
-
Introduction
-
Value of Implementing a Reuse Strategy
00:55 -
Start Where You Are
00:42 -
Understanding Requirements
00:26 -
Project Timeline
00:41 -
Project Lifetime
01:12 -
Resources
00:48 -
Restrictions
01:02 -
Top-Level Architecture Design
00:53 -
Shipping Example
01:37 -
Scalable
00:30 -
Identify Code Modules to Reuse
01:15 -
Repeated Code
00:50 -
Case Study: Error Handling
02:15 -
Summary
-
Introduction
-
Identify Duplication
01:01 -
Duplication in the Same Application
00:38 -
Two Types of Duplication
02:16 -
Advantages and Disadvantages
02:53 -
Templates
00:45 -
VI Templates
00:30 -
LabVIEW Project Templates
01:22 -
More Templates- Delacor Queued Message Handler (DQHM) Template
01:05 -
Advantages and Disadvantages
00:49 -
Combinations of Reuse and Template
01:10 -
Knowledge Checks
-
Summary
-
Introduction
-
Why Is Design Important
01:09 -
Coupling and Cohesion
00:58 -
Goal
00:31 -
LabVIEW Tips on Coupling and Cohesion
00:58 -
Dependency and Packaging
01:30 -
Finding Dependencies
01:02 -
Dependency and Packaging Tips
01:27 -
Program to Interface Not Implementation
01:20 -
Use Composition and Inheritance
01:30 -
Gang of Four (GOF) Design Patterns
03:06 -
Solid Principles
02:00 -
Knowledge Checks
-
Summary
-
Introduction
-
The Anatomy of a LabVIEW Reuse Module
00:31 -
Creating a Public Application Programming Interface (API)
00:34 -
API Complexity
01:07 -
Module Complexity
01:46 -
Document Your API
00:27 -
Create Examples
00:19 -
Document Your API
00:33 -
Use the LabVIEW Project Library
00:35 -
Knowledge Checks
-
Summary
-
Introduction
-
What is Object-Oriented Programming?
00:36 -
How Object-Orient Programming Enables Reuse
00:28 -
Extension via Inheritance Case 1
01:16 -
Extension via Inheritance Case 2
00:37 -
Encapsulated Data
01:21 -
Example
06:29 -
Knowledge Checks
-
Summary
-
Introduction
-
What is a template?
01:17 -
Templates In LabVIEW
00:46 -
Why to Use Templates?
00:30 -
Different Templatizing Opportunities
00:15 -
Templates for Standard Coding Practices
00:40 -
Development Accelerators
01:06 -
The Best Use of Reusable Libraries
00:28 -
Organize the Files and Projects
00:38 -
Distribute and Expose Templates
00:48 -
LabVIEW Native Instantiation Window
00:53 -
Exposing the Templates
00:20 -
Custom Instantiation Utility
00:17 -
Providing as a LabVIEW Example
00:31 -
Knowledge Checks
-
Summary
-
Introduction
-
Package Contents
00:37 -
Package Principles
00:34 -
Package Cohesion
01:04 -
Reuse Release Equivalency
00:36 -
Package Coupling
00:46 -
Package Coupling
00:16 -
Acyclic Dependencies
01:24 -
LabVIEW Filetypes for Reuse Modules
00:13 -
Source Distribution
00:30 -
LLB
00:24 -
LabVIEW Packed Project Library
01:01 -
Package Tools
00:22 -
Knowledge Checks
-
Summary
-
Introduction
-
Objective
00:25 -
Choosing Package Manager
00:36 -
What is a Package?
03:32 -
What is a Package Manager?
01:47 -
To Package or Not to Package?
03:00 -
Matching a Package Manager to Your Needs
05:10 -
Using GCentral
00:58 -
Knowledge Checks
-
Summary
-
Introduction
-
Why Maintain Reuse Code?
01:32 -
Maintenance Cycle
00:40 -
Waiting For a Reason To Change
01:11 -
Revising Source Code
00:13 -
Open Closed Principle
00:39 -
Breaking Changes
00:43 -
Non-Breaking Changes
00:19 -
Examples
02:44 -
Deprecating Functions
01:20 -
Testing
00:57 -
Releasing
01:45 -
Distributing
00:45 -
Knowledge Checks
-
Summary
-
Introduction
-
What is a Design Review?
01:05 -
When should you do a design review
00:58 -
Aspects of Software Design
01:31 -
How to present software design
00:49 -
Scenarios
00:19 -
Logical View_1
00:26 -
Logical View_2
00:45 -
Process View_1
00:32 -
Process View_2
00:17 -
Physical View
00:55 -
Development View
00:32 -
Organizing a Design Review
00:40 -
Summary
-
Introduction
-
What is a Code Review?
00:26 -
The Benefits of a Code Review
01:40 -
The Review Process
02:05 -
Bookmark Manager
01:29 -
References & Links
-
Summary
-
Introduction
-
What is Static Code Analysis?
00:39 -
Introduction to the LabVIEW VI Analyzer Toolkit
00:42 -
Demonstration_Using VI Analyzer Interatively
04:21 -
Custom VI Analyzer Tests
00:24 -
Using Vi Analyzer Programmatically
00:30 -
Summary
-
Introduction
-
What is Dynamic Code Analysis?
00:39 -
Introduction to Profile Performance and Memory Tool
00:18 -
Demonstration: Profile Performance and Memory Tool
04:41 -
Desktop Execution Trace Toolkit
00:29 -
Demonstration: Desktop Execution Trace Toolkit
02:08 -
Summary
-
Introduction
-
What is a Software Unit from a LabVIEW Perspective?
00:20 -
How to define a software unit
01:21 -
Why do we write code to test code
00:19 -
What are the characteristics of a good unit test
00:40 -
Examples of Unit Test Framework
00:13 -
Demonstration: LabVIEW Unit Test Framework
03:10 -
Demonstration: Caraya Unit Test Framework
01:23 -
Demonstration: Insta Coverage Unit Test Framework
01:51 -
Demonstration: JKI Unit Test Framework.
01:41 -
Check for Understanding
-
Summary
-
Introduction
-
Why Object-Oriented Code Needs Special Consideration?
00:23 -
Types of LabVIEW Unit Test Frameworks
01:06 -
Key Considerations
01:13 -
Example: Testing Functionality
01:28 -
Unit Test Considerations
00:18 -
Example: Setup and Teardown VIs
02:37 -
Check for Understanding
-
Summary
-
Introduction
-
What is TDD? Part 1
00:24 -
What is TDD? Part 2
00:52 -
The Benefits of TDD
01:12 -
Demonstration: Empty Project
00:45 -
Demonstration: Creating Stub VIs
00:37 -
Demonstration: Create Unit Tests
00:15 -
Demonstration: Populate Unit Tests
02:09 -
Demonstration: Implement Functionality
01:02 -
TDD Top Tips
01:03 -
References & Links
-
Summary
-
Introduction
-
Cost of Fixing Bugs
00:26 -
Typical activities related with the software development process
01:19 -
How does the Agile work
01:00 -
Mapping the Activities into Agile
02:33 -
The Proportion of Tests
00:52 -
Summary
-
Introduction
-
Why Project Management Is Valuable
01:04 -
Is It Worth It?
02:05 -
Types of project Management: Waterfall vs Agile
02:57 -
Summary
-
References and Links
-
Introduction
-
Why Use Agile?
04:10 -
Agile Roles
02:20 -
Agile Ceremonies
00:39 -
The Work of Agile: User Stories
01:28 -
The Work of Agile: Epics
01:06 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Working Together: Trust
01:22 -
Building Trust
00:42 -
Identify Your Stakeholders
01:57 -
Building Trust with Your Boss/Customer
03:31 -
Building Trust with Your Coworkers
01:48 -
Building Trust with Upper Management
02:21 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Risk
02:44 -
Risks to Consider
02:00 -
Estimating Time Accurately
02:04 -
Managing Risks
04:24 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Estimating and Planning
02:39 -
Estimation – Time
02:56 -
Story Points – Tips
02:02 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Coordinating Threads
03:34 -
Tracking Work Status
02:39 -
JIRA as a Tool to Track in Progress Work
01:23 -
Coordination: Executing Work
01:02 -
Coordination: Tools
00:45 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Agile Roles and Ceremonies
01:12 -
Evaluation and Planning
01:36 -
Development
04:56 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
Issues
01:21 -
Tracking Issues to Build Trust
02:41 -
Getting Started with Issue Tracking
01:11 -
Recommendations
01:17 -
Issue Categories
01:39 -
Issue Priorities
00:54 -
Issue States
02:38 -
Issue Form
01:31 -
Knowledge Check
-
Summary
-
References and Links
-
Introduction
-
What Is Project Management?
02:20 -
What Is “Done”?
01:15 -
Defining “Done”: Recommendations
05:56 -
Summary
-
References and Links
-
Introduction
-
Requirements Overview
01:09 -
Specific
00:41 -
Measurable
00:48 -
Attainable/Achievable
00:53 -
Realistic
00:55 -
Time-Bound
01:03 -
Terminology
01:06 -
Project Differences
00:49 -
User Stories and Tips
01:28 -
Knowledge Check
-
Summary
-
Sources
01:00
-
Introdution
-
What Is Requirements Gathering?
01:04 -
Getting Started with Requirements Gathering
00:22 -
Defining the Tools
01:47 -
Identifying the Stakeholders
00:46 -
Gathering Requirements
00:28 -
Talking to All Stakeholders
00:49 -
Stakeholders – End-Users
00:31 -
Other Requirements Sources
01:31 -
Evolution of Requirements
00:25 -
Knowledge Check
-
Summary
-
Introduction
-
Change is Inevitable
00:33 -
Software Development Processes
01:09 -
Identify the Stakeholders
00:31 -
Record the Changes
00:58 -
Determine the Impact
01:52 -
Communicate- Not So Great Example
02:08 -
Communicate- Better Example
02:02 -
Change Control Board
01:13 -
Knowledge Check
-
Summary
-
Sources
-
Introduction
-
Essential Features of a Requirements Management Tool
00:39 -
Manage Requirements’ Lifecycle
00:20 -
Aspects Important for Integration into Existing Tools within the Company
00:51 -
Interface with Existing Infrastructure
00:31 -
Export to and Import from Other Formats
00:54 -
Popular Tools
00:31 -
Requirements Tracing Tool
00:19 -
Knowledge Check
-
Summary
-
Introduction
-
Requirements Tracing
01:34 -
Minimal Requirements Tree
00:33 -
Requirements Testing Traceability
00:45 -
Requirements Compliance
01:02 -
Traceability Matrix
01:17 -
Requirements Compliance Matrix
00:40 -
Why use Requirements Gateway?
01:07 -
Knowledge Check
-
Summary
-
References
00:41
-
Introduction
-
What is Source Code?
00:46 -
Life Without Source Code Control
02:27 -
What is Source Code Control?
00:51 -
SCC Terminology
03:40 -
Different Models of SCC
01:59 -
SCC Best Practices
00:53 -
Knowledge Check
-
Summary
-
Introduction
-
Overview of Git
03:00 -
Demonstration: Git Installation
03:43 -
Demonstration: Create a New Repository
05:33 -
Demonstration: Clone Existing Repository
03:15 -
Demonstration: Merge Operations
03:49 -
Demonstration: Branch Operations
04:09 -
Demonstration: Work on GitHub Repository
03:30 -
Git Branching Strategy
01:42 -
Knowledge Check
-
Summary
-
Introduction
-
Why LabVIEW Is Different?
02:16 -
Git Ignore
00:35 -
Demonstration: Introducing Git Ignore
05:06 -
Proliferation of Code Changes
01:03 -
Demonstration: Proliferation of Code Changes
01:46 -
Separate Source from Compiled Code
00:24 -
Demonstration of Separating Source from Compiled Code
01:36 -
Separating Source from Compiled Code
00:56 -
Recommendations
00:46 -
Troubleshooting
00:16 -
Knowledge Check
-
Summary
-
Introduction
-
CLI vs GUI
01:33 -
CLI Options
01:30 -
CLI Demo
11:20 -
GUI Options
01:44 -
GUI Demo
05:16 -
Summary
-
Introduction
-
Overview of Git Workflow
03:19 -
Gitflow Tools
00:53 -
Avoiding Unnecessary Merge Conflicts
11:03 -
Collaborating Using Remotes
02:47 -
Creating a Fork
02:32 -
Creating a Pull and a Merge Request
02:14 -
Knowledge Check
-
Summary
-
Introduction
-
What is Diff?
01:39 -
Merging
04:49 -
Conflicts
05:16 -
LVCompare and LVMerge
02:46 -
Demonstration: LVCompare
05:23 -
Demonstration: LVMerge
11:16 -
Summary
-
Introduction
-
Code Reuse Conflicts
00:33 -
Solution 1: File Copy
01:07 -
Solution 2: Package
00:53 -
Solution 3: Git Submodule
00:57 -
Comparison
03:05 -
Having Large Binary Files
02:02 -
Long Cloning Times
01:11 -
Knowledge Check
-
Summary
-
Introduction
-
Demonstration: Git Repository in a Shared Location
01:28 -
Repositories in Network Directories
02:17 -
Demonstration: Azure DevOps User Management
02:50 -
Git Hosting Services
02:43 -
Knowledge Check
-
Summary
$515.00
$1,030.00
- Lessons435
- Quizzes35
- Skill LevelIntermediate
- LanguageEnglish
- Course Duration 10h
Tags
Target Audience
- Developers who are concerned about creating quality applications that must meet deadlines, satisfy requirements, and satisfy regulatory standards
- Developers who are newer to LabVIEW and interested in learning Best Practices for LabVIEW development
- Advanced programmers who are managing the development of large applications
- Architects managing a team of developers
- LabVIEW users pursuing the Certified LabVIEW Architect certification
Software Engineering for Test Applications
$515.00
$1,030.00
Hi, Welcome back!