Source code for the OneNote Merge Pages powertoy and a tedious test task


Reader Mark Jordan made a request last week for the source code for the Merge Pages powertoy at  Jeff Cardon graciously agreed to release it, and you can download it here.  Down at the bottom of this entry below my signature is the link for attachments and the compressed file is there.


(I would have posted it with the previous entry, but the blog software we have only lets me add one attachment per article.  I'll update that page to point here, too).


My other big task for this week has been tracking a bug in our newer, still in progress versions of OneNote.  Head's up early: this is a tedious story about tracking a tedious bug, but it also shows a typical (yet tedious) testing task.  We have a test notebook that will not sync properly on our sharepoint site.  The problem was pretty easy to narrow to one particular section that has about 80 pages in it.  From there, I had a choice on how I wanted to narrow down the problem.  First, I eliminated the easy to find problems: the section was not bigger than server size limits, my permissions were correct, etc…  After working through that, I was left with the assumption that one of the pages had some data on it that caused the sync to fail.


My first though was to do a "binary sort" through the section.  I would test the first half of the pages, and if the sync failed, test half my data set again, and keep reducing the data set of pages until I had found the problematic page.  Other ideas were sorting by date or classifying all the pages (which had ink, embedded files, etc…) and using that methodology.


The "binary sort" has the advantage of being the easiest to start and is the most efficient method of finding the single offending page.  It's what I started to do when I realized there may be more than one problematic page.  In this case, I could get unlucky and find only one of two or more offending pages.  Say page 1 and page 29 were both "bad".  My first test would be the first 40 pages, which would have produce and error.  My second test would be pages 1 through 20, which would have produced the error.  I would have eventually narrowed down page 1 as the culprit, but missed page 29.  So I was left with the problem of finding potentially multiple bad pages.


My solution was probably not the most elegant, and definitely not the quickest, but was easy. After making each of my two data sets, I tested both.  If both failed, I knew I had multiple problems.  In my particular case, though, I found the single bad page and turned it over to the dev team.


Like I said, tedious.  It's not all automation and powertoys in test!


Questions, comments, concerns and criticisms always welcome,


Comments (6)

  1. Mike Hoffmann says:

    This is somewhat off subject, but since you’re involved with testing the newest version I’m going to ask anyhow.

    I am an extremely loyal and avid fan of OneNote.  I have few complaints, but one area I’m hoping new versions improve on is OneNote Mobile.  I sync between OneNote 2007 and my iPaq Classic so I can keep important notes with me away from my PC, and I can write notes while I’m out and about and sync that with my laptop when I plug back in.  I love it, as it keeps me from ever losing anything.  However, OneNote Mobile doesn’t support multiple notebooks, or even section groups, so I find it somewhat limiting.

    Can you tempt me with a little info about the next version of OneNote?  Can I expect some improvements to OneNote Mobile?


  2. Dave says:

    I think the only thing that was made public is at

  3. Jason says:

    This reminds me of those logic problems that make you weigh counterfiet coins.  I never liked them.

  4. Vishal Doshi says:

    Any chance of updating this code to support Onenote 2010?

  5. Georg says:

    Yapp, I would like to do it as well. This is a big pain and I do not get why this funciton is not included in OneNote.

Skip to main content