UPDATE 20160204: This is fixed since release 2.14.x!.
QGIS is really a great tool, but…
When I recently discovered following bug it really shocked me, because I had no idea how many corrupted Shapefiles I produced in past years.
You start editing existing shapefile and you delete a record. Save and everything looks fine in QGIS. Even if you close and reopen QGIS with that shapefile, its’ OK. But when you open that shapefile in ANY other GIS software, deleted features are still there! Hard to believe, you can easilly test it yourself.
I don’t understand too deeply what’s not working, but it is related to GDAL version used to build QGIS. Here is link to already opened and discusses issue – https://hub.qgis.org/issues/11007. Deleting is problem, editing attributes works.
These days you have many other formats to use (SQLite or Database), but SHP is standard for so many years and still very usable for simple features or to just quickly interchange (and edit) data. This problem has been around for many years and versions and is still confirmed with latest 2.12.
…no, you don’t have to. You can check if something is wrong by comparing number of attributes with Feature Count (use “Show Feature count” option on Layer context menu – right mouse button). Above image shows this (3 elements on map, 3 records in table and 4 feature counts).
Below is image of same shapefile in other GIS viewer. Deleted shape is there!
To correct the problem just use “Save as” option on layer context menu to create new shapefile, which will be OK.