How msdb.dbo.backupset works ( backup_size )
BACKUP DATABASE, by default, does not overwrite existing backup sets contained within a backup file.

According to Microsoft Docs on BACKUP DATABASE:


  If the physical device exists and the INIT option is not specified in the BACKUP statement, the backup is appended to the device.


To test this, the following code will create a blank database, then take three backups of that database, without the INIT option.  The size of the backup file increases each time a backup is taken.

USE master;

IF EXISTS (SELECT 1 FROM sys.databases d WHERE d.name = 'BackupTest')
BEGIN
    ALTER DATABASE BackupTest SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE BackupTest;
END
CREATE DATABASE BackupTest;
BACKUP DATABASE BackupTest TO DISK = 'C:\temp\BackupTest.bak';
EXEC sys.xp_cmdshell 'DIR "C:\temp\BackupTest.bak"';


 Volume in drive C is Windows
 Volume Serial Number is 1E06-5D89

 Directory of C:\temp

 05/15/2018  02:55 PM           399,360 BackupTest.bak
               1 File(s)        399,360 bytes
               0 Dir(s)  111,145,492,480 bytes free


BACKUP DATABASE BackupTest TO DISK = 'C:\temp\BackupTest.bak';
EXEC sys.xp_cmdshell 'DIR "C:\temp\BackupTest.bak"';


 Volume in drive C is Windows
 Volume Serial Number is 1E06-5D89

 Directory of C:\temp

 05/15/2018  02:55 PM           796,672 BackupTest.bak
               1 File(s)        796,672 bytes
               0 Dir(s)  111,145,091,072 bytes free


BACKUP DATABASE BackupTest TO DISK = 'C:\temp\BackupTest.bak';
EXEC sys.xp_cmdshell 'DIR "C:\temp\BackupTest.bak"';


 Volume in drive C is Windows
 Volume Serial Number is 1E06-5D89

 Directory of C:\temp

 05/15/2018  02:55 PM         1,193,984 BackupTest.bak
               1 File(s)      1,193,984 bytes
               0 Dir(s)  111,144,693,760 bytes free


If we look at the content of the backup file with RESTORE HEADERONLY we see the three backups contained within the file:

╔════════════╦═══════════════════╦════════════╦════════════════╦════════════╦══════════╦════════════╦══════════╦════════════╦══════════════╦═════════════════╦═════════════════════════╦════════════╦═══════════════════╦═══════════════════╦═══════════════════╦═══════════════════╦═════════════════════════╦═════════════════════════╦═══════════╦══════════╦═════════════════╦════════════════════════╦════════════════════╦══════════════════╦══════════════════════╦══════════════════════╦══════════════════════╦═════════════╦═══════╦══════════════════════════════════════╦══════════════════════════════════════╦══════════════════════════════╦══════════════════════════════════════╦═══════════════════╦════════════╦════════════╦══════════════╦════════════════════╦═══════════╦════════════════╦═══════════════════════╦════════════════╦════════════╦══════════════════════════════════════╦══════════════╦═══════════════╦═════════════════════╦══════════════════════╦═══════════════════════╦══════════════════════════════════════╦══════════════════════╦═════════════╗
║ BackupName ║ BackupDescription ║ BackupType ║ ExpirationDate ║ Compressed ║ Position ║ DeviceType ║ UserName ║ ServerName ║ DatabaseName ║ DatabaseVersion ║  DatabaseCreationDate   ║ BackupSize ║     FirstLSN      ║      LastLSN      ║   CheckpointLSN   ║ DatabaseBackupLSN ║     BackupStartDate     ║    BackupFinishDate     ║ SortOrder ║ CodePage ║ UnicodeLocaleId ║ UnicodeComparisonStyle ║ CompatibilityLevel ║ SoftwareVendorId ║ SoftwareVersionMajor ║ SoftwareVersionMinor ║ SoftwareVersionBuild ║ MachineName ║ Flags ║              BindingID               ║            RecoveryForkID            ║          Collation           ║              FamilyGUID              ║ HasBulkLoggedData ║ IsSnapshot ║ IsReadOnly ║ IsSingleUser ║ HasBackupChecksums ║ IsDamaged ║ BeginsLogChain ║ HasIncompleteMetaData ║ IsForceOffline ║ IsCopyOnly ║         FirstRecoveryForkID          ║ ForkPointLSN ║ RecoveryModel ║ DifferentialBaseLSN ║ DifferentialBaseGUID ║ BackupTypeDescription ║            BackupSetGUID             ║ CompressedBackupSize ║ Containment ║
╠════════════╬═══════════════════╬════════════╬════════════════╬════════════╬══════════╬════════════╬══════════╬════════════╬══════════════╬═════════════════╬═════════════════════════╬════════════╬═══════════════════╬═══════════════════╬═══════════════════╬═══════════════════╬═════════════════════════╬═════════════════════════╬═══════════╬══════════╬═════════════════╬════════════════════════╬════════════════════╬══════════════════╬══════════════════════╬══════════════════════╬══════════════════════╬═════════════╬═══════╬══════════════════════════════════════╬══════════════════════════════════════╬══════════════════════════════╬══════════════════════════════════════╬═══════════════════╬════════════╬════════════╬══════════════╬════════════════════╬═══════════╬════════════════╬═══════════════════════╬════════════════╬════════════╬══════════════════════════════════════╬══════════════╬═══════════════╬═════════════════════╬══════════════════════╬═══════════════════════╬══════════════════════════════════════╬══════════════════════╬═════════════╣
║ NULL       ║ NULL              ║          1 ║ NULL           ║          1 ║        1 ║          2 ║ me       ║ machine    ║ BackupTest   ║             706 ║ 2018-05-15 15:06:09.000 ║    2633728 ║ 35000000005500064 ║ 35000000008500001 ║ 35000000005500064 ║                 0 ║ 2018-05-15 15:06:10.000 ║ 2018-05-15 15:06:10.000 ║        52 ║        0 ║            1033 ║                 196609 ║                110 ║             4608 ║                   11 ║                    0 ║                 6260 ║ machine     ║   512 ║ 2E885286-1648-4085-96D8-0AFF92CCE995 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ SQL_Latin1_General_CP1_CI_AS ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║                 0 ║          0 ║          0 ║            0 ║                  0 ║         0 ║              0 ║                     0 ║              0 ║          0 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ NULL         ║ FULL          ║ NULL                ║ NULL                 ║ Database              ║ 94CA4CD7-659F-406B-9411-AF00DCC8E900 ║               397660 ║           0 ║
║ NULL       ║ NULL              ║          1 ║ NULL           ║          1 ║        2 ║          2 ║ me       ║ machine    ║ BackupTest   ║             706 ║ 2018-05-15 15:06:09.000 ║    2632704 ║ 35000000009500037 ║ 35000000011200001 ║ 35000000009500037 ║ 35000000005500064 ║ 2018-05-15 15:06:10.000 ║ 2018-05-15 15:06:11.000 ║        52 ║        0 ║            1033 ║                 196609 ║                110 ║             4608 ║                   11 ║                    0 ║                 6260 ║ machine     ║   512 ║ 2E885286-1648-4085-96D8-0AFF92CCE995 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ SQL_Latin1_General_CP1_CI_AS ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║                 0 ║          0 ║          0 ║            0 ║                  0 ║         0 ║              0 ║                     0 ║              0 ║          0 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ NULL         ║ FULL          ║ NULL                ║ NULL                 ║ Database              ║ 840F2E51-1805-4270-AF31-BB09F4799B4F ║               396242 ║           0 ║
║ NULL       ║ NULL              ║          1 ║ NULL           ║          1 ║        3 ║          2 ║ me       ║ machine    ║ BackupTest   ║             706 ║ 2018-05-15 15:06:09.000 ║    2632704 ║ 35000000012200037 ║ 35000000013900001 ║ 35000000012200037 ║ 35000000009500037 ║ 2018-05-15 15:06:11.000 ║ 2018-05-15 15:06:11.000 ║        52 ║        0 ║            1033 ║                 196609 ║                110 ║             4608 ║                   11 ║                    0 ║                 6260 ║ machine     ║   512 ║ 2E885286-1648-4085-96D8-0AFF92CCE995 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ SQL_Latin1_General_CP1_CI_AS ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║                 0 ║          0 ║          0 ║            0 ║                  0 ║         0 ║              0 ║                     0 ║              0 ║          0 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ NULL         ║ FULL          ║ NULL                ║ NULL                 ║ Database              ║ 448F651F-D847-463D-A5DA-8C2F8EA8ECC5 ║               396295 ║           0 ║
╚════════════╩═══════════════════╩════════════╩════════════════╩════════════╩══════════╩════════════╩══════════╩════════════╩══════════════╩═════════════════╩═════════════════════════╩════════════╩═══════════════════╩═══════════════════╩═══════════════════╩═══════════════════╩═════════════════════════╩═════════════════════════╩═══════════╩══════════╩═════════════════╩════════════════════════╩════════════════════╩══════════════════╩══════════════════════╩══════════════════════╩══════════════════════╩═════════════╩═══════╩══════════════════════════════════════╩══════════════════════════════════════╩══════════════════════════════╩══════════════════════════════════════╩═══════════════════╩════════════╩════════════╩══════════════╩════════════════════╩═══════════╩════════════════╩═══════════════════════╩════════════════╩════════════╩══════════════════════════════════════╩══════════════╩═══════════════╩═════════════════════╩══════════════════════╩═══════════════════════╩══════════════════════════════════════╩══════════════════════╩═════════════╝


However, if we now use the INIT option:

BACKUP DATABASE BackupTest TO DISK = 'C:\temp\BackupTest.bak' WITH INIT;
EXEC sys.xp_cmdshell 'DIR "C:\temp\BackupTest.bak"';


We see the size of the backup file reflects a single backup again:

 Volume in drive C is Windows
 Volume Serial Number is 1E06-5D89

 Directory of C:\temp

 05/15/2018  03:02 PM           398,336 BackupTest.bak
               1 File(s)        398,336 bytes
               0 Dir(s)  111,145,304,064 bytes free

And if we look at RESTORE HEADERONLY, we see a single backup is contained in the file:

╔════════════╦═══════════════════╦════════════╦════════════════╦════════════╦══════════╦════════════╦══════════╦════════════╦══════════════╦═════════════════╦═════════════════════════╦════════════╦═══════════════════╦═══════════════════╦═══════════════════╦═══════════════════╦═════════════════════════╦═════════════════════════╦═══════════╦══════════╦═════════════════╦════════════════════════╦════════════════════╦══════════════════╦══════════════════════╦══════════════════════╦══════════════════════╦═════════════╦═══════╦══════════════════════════════════════╦══════════════════════════════════════╦══════════════════════════════╦══════════════════════════════════════╦═══════════════════╦════════════╦════════════╦══════════════╦════════════════════╦═══════════╦════════════════╦═══════════════════════╦════════════════╦════════════╦══════════════════════════════════════╦══════════════╦═══════════════╦═════════════════════╦══════════════════════╦═══════════════════════╦══════════════════════════════════════╦══════════════════════╦═════════════╗
║ BackupName ║ BackupDescription ║ BackupType ║ ExpirationDate ║ Compressed ║ Position ║ DeviceType ║ UserName ║ ServerName ║ DatabaseName ║ DatabaseVersion ║  DatabaseCreationDate   ║ BackupSize ║     FirstLSN      ║      LastLSN      ║   CheckpointLSN   ║ DatabaseBackupLSN ║     BackupStartDate     ║    BackupFinishDate     ║ SortOrder ║ CodePage ║ UnicodeLocaleId ║ UnicodeComparisonStyle ║ CompatibilityLevel ║ SoftwareVendorId ║ SoftwareVersionMajor ║ SoftwareVersionMinor ║ SoftwareVersionBuild ║ MachineName ║ Flags ║              BindingID               ║            RecoveryForkID            ║          Collation           ║              FamilyGUID              ║ HasBulkLoggedData ║ IsSnapshot ║ IsReadOnly ║ IsSingleUser ║ HasBackupChecksums ║ IsDamaged ║ BeginsLogChain ║ HasIncompleteMetaData ║ IsForceOffline ║ IsCopyOnly ║         FirstRecoveryForkID          ║ ForkPointLSN ║ RecoveryModel ║ DifferentialBaseLSN ║ DifferentialBaseGUID ║ BackupTypeDescription ║            BackupSetGUID             ║ CompressedBackupSize ║ Containment ║
╠════════════╬═══════════════════╬════════════╬════════════════╬════════════╬══════════╬════════════╬══════════╬════════════╬══════════════╬═════════════════╬═════════════════════════╬════════════╬═══════════════════╬═══════════════════╬═══════════════════╬═══════════════════╬═════════════════════════╬═════════════════════════╬═══════════╬══════════╬═════════════════╬════════════════════════╬════════════════════╬══════════════════╬══════════════════════╬══════════════════════╬══════════════════════╬═════════════╬═══════╬══════════════════════════════════════╬══════════════════════════════════════╬══════════════════════════════╬══════════════════════════════════════╬═══════════════════╬════════════╬════════════╬══════════════╬════════════════════╬═══════════╬════════════════╬═══════════════════════╬════════════════╬════════════╬══════════════════════════════════════╬══════════════╬═══════════════╬═════════════════════╬══════════════════════╬═══════════════════════╬══════════════════════════════════════╬══════════════════════╬═════════════╣
║ NULL       ║ NULL              ║          1 ║ NULL           ║          1 ║        1 ║          2 ║ me       ║ machine    ║ BackupTest   ║             706 ║ 2018-05-15 15:06:09.000 ║    2632704 ║ 35000000014900037 ║ 35000000016600001 ║ 35000000014900037 ║ 35000000012200037 ║ 2018-05-15 15:06:11.000 ║ 2018-05-15 15:06:11.000 ║        52 ║        0 ║            1033 ║                 196609 ║                110 ║             4608 ║                   11 ║                    0 ║                 6260 ║ machine     ║   512 ║ 2E885286-1648-4085-96D8-0AFF92CCE995 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ SQL_Latin1_General_CP1_CI_AS ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║                 0 ║          0 ║          0 ║            0 ║                  0 ║         0 ║              0 ║                     0 ║              0 ║          0 ║ 9F2C5269-0971-4BD5-AEEE-D64D8810CF55 ║ NULL         ║ FULL          ║ NULL                ║ NULL                 ║ Database              ║ EA10F663-FAF3-422C-AE4E-3478AA7658BC ║               396310 ║           0 ║
╚════════════╩═══════════════════╩════════════╩════════════════╩════════════╩══════════╩════════════╩══════════╩════════════╩══════════════╩═════════════════╩═════════════════════════╩════════════╩═══════════════════╩═══════════════════╩═══════════════════╩═══════════════════╩═════════════════════════╩═════════════════════════╩═══════════╩══════════╩═════════════════╩════════════════════════╩════════════════════╩══════════════════╩══════════════════════╩══════════════════════╩══════════════════════╩═════════════╩═══════╩══════════════════════════════════════╩══════════════════════════════════════╩══════════════════════════════╩══════════════════════════════════════╩═══════════════════╩════════════╩════════════╩══════════════╩════════════════════╩═══════════╩════════════════╩═══════════════════════╩════════════════╩════════════╩══════════════════════════════════════╩══════════════╩═══════════════╩═════════════════════╩══════════════════════╩═══════════════════════╩══════════════════════════════════════╩══════════════════════╩═════════════╝


I have backup compression turned on, so msdb.dbo.backupset shows the following sizes for the backups I just took:

SELECT bs.backup_finish_date
    , bs.backup_size
    , bs.compressed_backup_size
FROM msdb.dbo.backupset bs
WHERE bs.database_name = 'BackupTest'
ORDER BY bs.backup_set_id DESC


╔═════════════════════════╦═════════════╦════════════════════════╗
║   backup_finish_date    ║ backup_size ║ compressed_backup_size ║
╠═════════════════════════╬═════════════╬════════════════════════╣
║ 2018-05-15 15:06:11.000 ║     2632704 ║                 396310 ║
║ 2018-05-15 15:06:11.000 ║     2632704 ║                 396295 ║
║ 2018-05-15 15:06:11.000 ║     2632704 ║                 396242 ║
║ 2018-05-15 15:06:10.000 ║     2633728 ║                 397660 ║
╚═════════════════════════╩═════════════╩════════════════════════╝


As you can see the backup_size is the uncompressed size of the backup, in bytes, and the compressed_backup_size closely matches the size reported by the filesystem, assuming you incrementally add the sizes as each backup is added to the backup file.