Least amount of HTML and CSS to create a bottom border for every section?
Something did feel wrong about your code

IDs are unique

A bit of redundancy is this: div#testimonials

IDs are unique in the page and should only be one element. You can just to #testimonials and still get that div.

Span? Which one?

Another is the span's usage. Suppose you wanted to style a phrase in the testimonial, you'd use span to style it. But your author style definition calls for all spans: #testimonials span. This would affect all spans, not just the author's.

I suggest you do place a class, like "author", to indicate that which span you are trying to style as the author:

#testimonials span.author { 
  font-weight: bold;
  color: red;  
}


Set the font in the parent

It would be better if you set the default font size on the parent, rather than on each element, unless that element should differ from the others. Also, as far as I know, the browser's default font size is around 16px. You could omit the size declaration.

Aesthetics: Removing the last border

This is just for aesthetics, but I suggest you remove the last entry's border. But since only IE9 supports :last-child, we change the approach. Instead, add a top border and let :first-child, supported in IE7+, remove the very first child's border.

#testimonials &gt; div {
  border-top: solid 1px #666;
}

#testimonials &gt; div:first-child {
  border-top: none;
}


Semantics: It's a list!

If you take a look at your content, it's a list. And if semantics is to be followed, you should use a list.

Worried about size?

You shouldn't. Though semantics might need you to use more code, it's not deployed in this state. Use an automation system like Grunt and minify everything. And make sure to gzip your transfers from the server.

Now this makes more sense.. at least for me:

HTML

&lt;ul id=testimonials&gt;
    &lt;li&gt;
        &lt;p&gt;Frankfurter meatloaf quis chuck, sunt jerky voluptate veniam ex aute commodo duis laboris labore. Sint dolor enim boudin pancetta culpa ham hock, laboris brisket veniam doner short loin velit qui duis.&lt;/p&gt;
        &lt;span class="author"&gt;Piggy McPiggy&lt;/span&gt;
    &lt;/li&gt;

    &lt;li&gt;
        &lt;p&gt;Frankfurter meatloaf quis chuck, sunt jerky voluptate veniam ex aute commodo duis laboris labore. Sint dolor enim boudin pancetta culpa ham hock, laboris brisket veniam doner short loin velit qui duis.&lt;/p&gt;
        &lt;span class="author"&gt;Oinky Sausagebreath&lt;/span&gt;
    &lt;/li&gt;

    &lt;li&gt;
        &lt;p&gt;Frankfurter meatloaf quis chuck, sunt jerky voluptate veniam ex aute commodo duis laboris labore. Sint dolor enim boudin pancetta culpa ham hock, laboris brisket veniam doner short loin velit qui duis.&lt;/p&gt;
        &lt;span class="author"&gt;Pigster Pickled&lt;/span&gt;
    &lt;/li&gt;
&lt;/ul&gt;


CSS

/* removing the default styles of the list */
#testimonials{
    list-style:none;
    margin: 0;
    padding: 0;
}

/*unless your testimonials contain lists, this should be fine */
#testimonials li {
    border-top: solid 1px #666;
}

#testimonials li:first-child {
    border-top: none;
}

#testimonials span.author { 
    font-weight: bold;
    color: red;  
}