Tech 101: Validating and Testing Your eBooks
By Hufsa Tahir
Like the finer things in life, eBooks don’t look as good as they often do without a lot of testing and loving attention to detail.
Whether you use InDesign or head direct to a software like Calibre or Sigil, chances are, the ePub you generate will not be error-free. You’re likely going to need to do some tweaking and troubleshooting, and even if your ePub file seems to have generated perfectly, you’re still going to have to test it on an actual eReading device or app.
Validating Your Newly Created ePub
So you’ve just created an ePub/had someone else do it for you. The first thing you’ll do after you get this freshly generated ePub file is validate it to see what errors pop up. You can use any ePub validator, but the quickest way is to visit the IDPF Validator website here and upload your ePub file. The website will generate a list of any errors found, giving you the exact location of the errors so you can easily fix them. For most of these, you’ll need to unzip and open up the ePub file.
Here’s what a typical error list may look like:
How to Open an ePub File
- On a Mac, you can simply download “ePub Zip“, a free and extremely handy utility that unzips and re-zips your ePub files for you.
- If you’re on Windows, first place your .epub file in its own folder. Then simply change the extension of the ePub’s filename from “.epub” to “.zip”. You may need to enable an option in File Explorer to let you see file extensions. Then use a free program like 7Zip to extract the content of the ePub. I’d recommend making a copy of the original .epub file before this.
How to Resolve Validation Errors
- Note the error code listed beside each error message.
- Look up the error code. A good explanation of these oft-mystifying errors can be found here.
- If you can’t find the error listed on that website, the best solution is often to Google the error message.
How to Zip an ePub File
- On a Mac, use “ePub Zip” to re-zip your ePub file.
- On a Windows, it’s a little more work:
- Open File Explorer and navigate to the folder where your ePub file’s contents are.
- Right-click on a blank spot. Select New -> Compressed (Zipped) folder.
- Drag the mimetype file into this zipped folder.
- Then drag everything else into the zipped folder.
- Right-click on the zipped folder and rename it’s extension from “.zip” to “.epub”.
Testing Your Validated ePub
You’ve worked out the kinks, and the ePub validator is coming back with zero errors. What’s next? Testing, testing, and more testing.
Quick QA Checklist
- Does the book open without any noticeable lag or other loading issue?
- Can you quickly navigate through the book without seeing any odd behaviour?
- Look for broken charachter symbols, odd spacing or any other text-related problems.
- Are any special fonts displaying correctly? More potential problems with fonts here.
- Test the links on the Contents page (if you have one). Do they go where they’re supposed to?
- Click the reading device’s menu to bring up the built in Table of Contents that shows chapter listings. Do the chapters appear as they’re meant to? (Some books do not require chapters to appear.)
- Are all images where they’re supposed to be? Is there any overlapping?
- If testing on a phone/tablet: rotate the device. Are there off display issues with the text or any images?
- If testing Fixed Layout eBooks: is everything (text columns, images, charts) positioned where it should be?
- If testing interactive eBooks: test the interactive elements. Do they respond as they’re meant to?
- Did you test across at least two platforms (apps or devices)? More below.
Testing on Different Platforms
This is pretty important. Your book may look great on an eInk device but less so on the Kobo Android App. This is especially true of Fixed Layout eBooks. There could be many reasons why, but until you’ve tested on at least one eReader and one phone/tablet, you run the risk of missing errors.
For instructions on how to load your ePub onto various Kobo apps and devices, visit our ePub specification page on GitHub.