The original stock firmware on official website is 11.1 MB.
Another stock firmware (but not on official site) is 3.5 MB, but its name lede-ar71xx-generic-tl-wr942n-v1-squashfs-factory.bin.
If I want to install OpenWRT with a programmer, should I use the factory image (by link I provided above)?
I would say so.
The factory file is a binary image, so also meant to be flashed with a chip programmer. The sysupgrade file contains separate partition files which can only be managed by an OpenWrt script (meant to be dd-ed or mtd-ed for example).
Neither the OEM- nor OpenWrt's factory firmware images are sufficient for flashing with an external spi-nor programmer. In (almost) all cases, there are additional absolutely vital partitions on the device (bootloader, bootloader environment, wireless calibration data, various OEM data) that is not part of downloadable firmware images and non-recoverable (unless you have backups from your own device).
The sysupgrade file is an image of what should be in that partition of flash. Do not use the factory file as it has headers (which are removed as the stock firmware installs the firmware) in addition to the kernel and filesystem image.
But as @slh said, that is only one partition and to rebuild a completely blank or corrupted flash chip, you need to get the bootloader and calibration data images from somewhere else. The calibration data is unit specific and only exists in the flash chip, so if that has been clobbered you really can't recover.
If you have the bootloader in flash and firmware from the Internet and the ART calibration on your hard disk, you can install everything with a serial connection. Assuming the WR942 is a typical Atheros TP-Link. I could not find much detail about that model.