Vista Rant #3 - And yet another boundary issue in Explorer's listview?

This morning I installed Vista SP1 onto my laptop. I was pretty excited about this release of Vista SP1 because it includes some pretty significant performance enhancements. But, as I was preparing to teach an internal course I came across a new boundary issue. I thought, how fitting this comes as I prepare to teach another class on systematic testing techniques (including boundary value analysis) that I find yet another classic boundary issue in Explorer's list view (albeit the boundary condition is not readily apparent) . Interestingly enough, the previous boundary issue I found appears to be fixed with Vista's SP1; however, I previously did not run across this issue which is also connected with how listview repaints itself after an event.

To reproduce this issue, open a folder with several dozen files in Explorer and select Views -> List and resize the Explorer window so there are several columns of files.

Select a file in the list and press the up or down arrow key so a dotted line appears around the file name

Resize the Explorer window so that the highlighted area is about 1 pixel away from the right most edge of the Explorer window as in the example below

LV1

Press the down (or up depending on which file you have selected) arrow key, and notice how the file highlight jumps to the next file in the list as expected.

Next, resize the the Explorer window so the dotted line touches the inner boundary of the window as in the example below

image

Now, press the down (or up depending on which file you have selected) and...

 image

Notice, in the image above that just to the left of the frogger.def file the right most edge of the file highlight is visible, and also notice the file image has changed, and the scroll bar has jumped over to the next column.

Press the down (or up) arrow key again, and....

image

Seeing this behavior the first time made me think I was losing my mind! (OK...I probably am, but that is a completely different topic). And yes, reducing the size of the window beyond where the maximum boundary of the highlight window will also cause the same behavior, but the issue occurs when the width of the file highlight window >= the maximum x boundary size of the Explorer listview window.

The listview in Windows Vista has some very cool features, and overall I like Vista. What I dislike are some of the simple anomolies that could be easily exposed via more detailed, systematic testing approaches and analysis of the system under test rather than simply assuming more bodies banging on keyboards for some arbitrary period of time equates to better testing.

So, some things to consider when boundary testing...

  • Not all boundary conditions are easily identified from the GUI by numbers, but all boundaries conditions have linear physical values that can be measured at some level
  • Boundaries can change, similar to way the boundaries changed around Kosovo. Somebody moved the lines. The same thing is true in software, a boundary condition may change with human interaction, but a boundary condition is a linear physical range between a minimum and a maximum value (in this case the x coordinates of the Explorer changed with human interaction, but once focus moved away from the Explorer window the size of x established a fixed boundary (at least until a user again resized the window or the window is closed).
  • Boundary conditions for one parameter are usually independent. For example, resizing the y-axis in the above scenario has no impact on this defect (unless of course the y-axis is large enough to accommodate all files in the listview without having to scroll horizontally). Boundary testing is based on the single fault assumption theory which states that a boundary issue is most likely to occur with independent parameters where the boundary variables for one parameter are analyzed while holding other parameters to nominal values. (Note: if we suspect that parameters are dependent or semi-coupled, then we should also perform combinatorial analysis testing.)
  • There is a difference between boundary conditions (at least momentarily fixed, linear, measures) and threshold values. Threshold values can be altered by various influences. For example, in performance testing the point of degradation in performance can often be changed by several external influences such as increasing physical memory, cleaning and defragmenting the hard disk, modifying the software, etc.
  • A detailed analysis of the system under test will reveal issues that other approaches to testing do not expose...that's the pesticide paradox!

Comments

  • Anonymous
    February 27, 2008
    PingBack from http://www.meratechexplorer.com/microsoft/news/archives/8

  • Anonymous
    February 27, 2008
    My biggest rant on the Explorer listbox is this: In XP, you can right-click anywhere on the row to select the row.  E.g. try right-click, delete.  Yes, it deletes the file you thought it would. In Vista, when detail view is shown, you can only right-click on text.  E.g. right-click, delete in space on a row.  You've probably just lost a folder or something. Nice, eh? I'd hoped that this would have been fixed in SP1 as it is a dangerous UI change.

  • Anonymous
    February 28, 2008
    I see here two transitions between one equivalence class and another:  

  1. a difference between the highlight on /a folder, with a folder visible/ and the highlight on a /file with no folder visible/ (the transition between the second screenshot and the third); and
  2. a difference between a file highlighted /when a folder is visible/ and a file highlighted /when a folder is not visible/ (the difference between the third screenshot and the fourth). There appears to be different behaviour based on these distinctions.  I could describe it in a number of ways, but a boundary-based explanation would be come retrospectively to me.  That is, I would conceive of a boundary only after I had seen the behaviour.  But I'm also not sure how helpful it is to describe it as a boundary anyway.  I think I'd prefer to think in terms of welcoming multiple models,  rather than trying to retrofit an explanation onto my favourite one.  (Except that having lots of models IS, arguably, a favourite model.) I was more curious as to why there's a "date modified" column header visible, but no dates visible.  (I'm travelling, and have no access to my kids' machine, which is the only Vista machine I'll let in the house.)  So I tried to reproduce this under XP.  It took me a while to recognize what was going on.  I realized that your problem above depends on multiple columns.  Then I realized that multiple columns are available only under List mode.  Under XP's Classic View, when you ask for List Mode, there are no details and no column headers.  In Vista, there are column headers in list view, but (apparently) no details under those column headers.  So, to me, I could report the bug, but really I want to report an issue:  what's with the column headers?
  • Anonymous
    February 28, 2008
    Oh, and another thing... look at how the file description is truncated in the third image above, where it's okay in the other three.  That's a visible boundary thing, I guess, if you want to shoehorn it into a boundary model--but no matter what the model, it's an annoyance. This is an example of why I think we should pay careful attention to emotions like annoyance, or surprise, or confusion.  These are contributions that humans can make that machines can't detect.  By all means, leverage machines for what they're good at, but they're just tools.  They shouldn't be mistaken for the consciousness that wields them.  Now that you've been surprised and annoyed by the Vista bug, you can probably code a test for it, but until the point that you recognize that kind of a problem, automated tests will be blind to it. An engaged human tester is an excellent defense against the pesticide paradox.

  • Anonymous
    February 28, 2008
    The comment has been removed

  • Anonymous
    March 02, 2008
    Two followup questions: Would you agree that showing fragments of useful information where it's possible to show more useful information could be viewed as a bug? Would you agree that surprise or confusion are emotional reactions to a situation? ---Michael B.

  • Anonymous
    March 02, 2008
    The comment has been removed

  • Anonymous
    March 03, 2008
    The comment has been removed

  • Anonymous
    March 03, 2008
    The comment has been removed

  • Anonymous
    March 03, 2008
    >my emotional state had no bearing on the discovery of this particular anomoly. Research into cognition suggests very strongly that it did, in fact.  Look up the work of Antonio Damasio, for example; read Karl Weick on the process of sensemaking.  I'm finding it difficult to reconcile your earlier language and your earlier escription of your reactions with your denials here.  It makes it hard for me to trust what you're saying from moment to moment.  But maybe there's a pattern. >I do not agree with the statement "it is fervent passion for the discipline that I admire most in testers." http://blogs.msdn.com/imtesty/archive/2006/09/08/746954.aspx ---Michael B.

  • Anonymous
    March 04, 2008
    Yes Michael, there are several theories that try to explain the relationships between emotional states and mental processes and human behaviors. Personally, I enjoyed reading Minsky's "The Emotion Machine: Commonsense Thinking, Artificial Intelligence, and the Future of the Human Mind." I would recommend it if you are not opposed to commonsense. As I said, I admire passion, I no longer admire that as the single most important characteristic because since I made that statement in September 2006 I have learned more and expanded my knowledge and personal viewpoints. I try to use new knowledge and new experiences to constantly re-evaluate my position and views as compared to other people who notoriously ignore or misrepresent facts to support antiquated untenable positions or constatnly reshash biased rhetoric without empricial evidence to substantiate claims. Your absolutely correct about a pattern. You have a pattern of talking about psychological theories and speculating about emotional states rather than staying within the context of software testing and computer science. I am not an expert in philosophy (which is good because Microsoft didn't hire me to philosophize; they hired me to test software and they now rely on me to teach software testing to new testers and developers in the company), but I suspect you might be a good philosopher. However, based on your endless curiosity regarding someone's emotional state at particular times, and the lack of technical accuracy in some of your previous comments it makes it hard for me to trust what you are saying within certain contexts.