SimpleTest is a framework for automated testing of code, and an important component to the quality assurance process. However, many Drupal developers are still unfamiliar with SimpleTest, and don't know much about it, nor its benefits.

For this task, we ask you to learn about SimpleTest yourself and then create a presentation that could be given at a conference to explain to developers how SimpleTest works, how to use it in Drupal, and why it's important.

Create a presentation that contains at least the following information:
* What is unit testing?
* What are the benefits to unit testing?
* What is SimpleTest?
* How can SimpleTest be used with Drupal?
* Code examples to show how to write tests
* References

Deliverables:
* A short presentation that talks about the benefits of SimpleTest, why it's useful, and how it works.
* Your presentation should be in a standards compliant and easily accessible format, such as a .pdf file.
* You should upload your presentation file as an attachment to this issue. The task will be considered complete when it is marked as RTBC by a reviewer.

Resources:
* SimpleTest documentation (http://simpletest.org/en/overview.html)
* Drupal SimpleTest documentation (http://drupal.org/simpletest)
* Lullabot SimpleTest articles (http://www.lullabot.com/articles/introduction-unit-testing and http://www.lullabot.com/articles/drupal-module-developer-guide-simpletest)

Comments

webchick’s picture

Title: Create presentation about SimpleTest » GHOP #149: Create a presentation about SimpleTest
Project: Google Highly Open Participation Contest (GHOP) » SimpleTest
Version: » 6.x-1.x-dev
Component: Task idea » Code

aclight had a look-over, so moving to proper queue to "officialize" it.

boombatower’s picture

Status: Active » Needs review
StatusFileSize
new122.24 KB

I have created a presentation that I believe meets the stated requirements. I am not sure as to what exact level of detail you are looking for so take a look at this at let me know what you think.

boombatower’s picture

StatusFileSize
new128.84 KB

I received the following comments in IRC:

  • Don't automatically load full screen.
  • Expand: "Benefits of unit testing" and "Drupal SimpleTesting".
  • Add slide about limitations.
  • Include slide with diagram of typical work flow.

The above are not quotes, but summarizations.

This version has been modified to meet the above requests and a few changes of my own.

If there are any further requests, modifications, or suggestions let me know.

aclight’s picture

Status: Needs review » Needs work

Could you please add a slide (or use your last slide for this if you'd like) that specifically states the license used for this presentation.

I think the safest bet is to go with what the d.o handbook pages use. The footer there is:
"Each handbook is © copyright 2000-2007 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0."

Hopefully randy...@yahoo.com will copy his comments from http://code.google.com/p/google-highly-open-participation-drupal/issues/... here as well, since I do think those are good comments.

I'd like to see a new version that incorporates some of his suggestions. I'll try to review any further work quickly in case you're trying to get in another task before the last day to claim.

Great work so far!

randyjg’s picture

Category: feature » task
Priority: Normal » Minor
Status: Needs work » Needs review

I remember my first encounter with a serious editor. Somewhere after he spent an hour
tearing apart three paragraphs of a paper on computer security I had written, I was
ready to kill him with my bare hands.

It took me a while to realize that he was absolutely correct.

Anyhow, please don't take my comments below personally, or at least try to remember
that I am the sole caregiver for my 86 year old mother. If you kill me, you will
probably be damned to writing in assembler for the rest of eternity.

Page 1-3

Think about your audience. If you want to pay attention to what you are going to tell
them, you need to explain to them WHY they should do so. Think about what they care
about. On the first page, you need to get them hooked, or they will tune out before
they get to the second. On the second and third pages, you need to explain why unit
testing is one more thing they should care about.

Page 4

Now you are telling your audience why they should care, assuming they haven't tuned
out before they get here.

Page 5
You explain the framework provides certain capabilities, but you don't explain why
anyone would care that it provides those capabilities.

Page 5
What is the concept you are trying to get across with this page? Is there a more
graphic way to express it?

Page 6

What do you want the audience thinking about at this point? Remember that your
audience is likely to be problem solvers. If you tell them limitations this early,
that is all they are going to be thinking about is how to solve these limitations.

Page 7

Not bad. What do you mean by "fits into"?

Whats so interesting about a specialized internal browser? How is it specialized?

Page 8

Generally speaking, most readers are linear, and digest one paragraph before going on
to the next. Does the first paragraph set a context explaining what you audience
should learn from this page?

page 9

Streamlined assumes the user is familiar with a less streamlined version. What
exactly is the level of knowledge of your audience
There is a line, “Test are categorized” What exactly does that mean and why is it
important?

Page 10
You have the word interface up at top. What the audience is looking for is something
to give them a context for understanding the rest of the page. Can you think of a
word that better describes what this page is about?

Page 11-12

Well, your audience has to guess what branches of the conditional diamond do on page
11, but that is minor. However, you might want to consider if the flowchart correctly
represents the process. Do you think that automation belongs in a page entitled
"Create a simple test?"

The whole point of flowcharts os to give a feel for what steps need to be taken in
order to achieve a goal. Do you think that these two pages give the audience a that
warm and fuzzy feeling?

Page 13-14

No bad, but there is an awful lot of unexplained information being presented to your
audience. What points are you trying to get across with this page? What are they
supposed to think when they look at this, “uhuh it's code”? You might consider
moving one or two callouts from page 14 to page 13 to draw attention to whatever
points you are trying to make with this page.

Human beings tend to shut down if they try and absorb too much information at one
time, If the code is too dense, you might consider splitting it up among several pages.

Page 15

Think of your audience. If you have interested them, they want someplace to go for
more information. Do you think that this screen gives them enough information on
where to go?

Page 16

This is where you define some personal benefit from this presentation. You want to
enhance your reputation, possibly convince someone in the audience to give you a job
as head of a quality assurance department with an ungodly salary and lots of
employees, or at least develop your network of contacts.
Do you think this screen effectively helps you achieve those goals?

boombatower’s picture

StatusFileSize
new743.25 KB

randyjg: Thanks soo much for taking the time to review my presentation as in-depth as you did. I found your comments to be very helpful and I think will be useful when I create presentation in the future. The things you pointed out are common to many presentations and documents. I think I will refer to your comments the next time I am working on something similar.

Summary of Changes:

  • Moved the benefit pages to the front of the presentation.
  • Explain why the features of SimpleTest are useful and attempted to do it in more graphical way.
  • Moved limitations to end of presentation.
  • Re-worded phrase about SimpleTest module. Expanded "Specialized internal browser".
  • Re-organized Automation slide.
  • Re-worded first interface slide.
  • Re-titled second interface slide.
  • "Creating a SimpleTest" flow chart: the automation will create a basic SimpleTest for the user so I think it belongs on that slide. Added "Yes" and "No" to indicate decision.
  • Completely redid code example. Painstaking removed white from image to allow nicer look.
  • Changed "References" slide to provide information relevant to taking the next step.
  • Made the author page a more thorough.
  • Add license information.

I think this version is much more thorough and should provide a much better presentation for presenting.

aclight’s picture

Status: Needs review » Needs work

I've already made some comments in IRC, but to make them less confusing I'll make the rest of them here:

A.) Slide 7: "SimpleTest Automator [module] provide a quick.....". You might also put in a footnote here with link to the project page for module.

B.) Slide 9: Maybe one of these should fail, so we can see what a failed test looks like.

C.) Slide 10: I think you can remove the periods because I think they are distracting.

D.) Slide 21: Why are there no URLs for the two modules?

E.) For the license, I think I would replace "Each handbook" with "This presentation" and change the date to just 2008. Sorry if I wasn't clear about that before.

Otherwise, I really think you've improved this a lot from the last submission, and I can definitely see this being used as an actual presentation perhaps with minor modifications to target it to the specific audience. Nice work!

keith.smith’s picture

Just a few notes from a quick read:

On page three: "The time it takes debug can be shortened along with the quality to which it can be done" is worded strangely. It's missing a "to", but beyond that, do you mean to say that the "quality" can also be shortened? Surely not.

On page five, I had to read the bullet points several times before I realized that "Features" were related to "Benefits" by their position in the list.

On page six, "– Easy to setup SimpleTest module" -- "setup" probably should be "set up". Or "configure". Same thing on page seven: "Setup user and permissions". Same thing on page fifteen: "This ensures that the testing environment is setup for the test to be performed".

On page six, I don't really know what "The code can then be cleaned up and with a few additions can be completed" means.

On page thirteen, "All SimpleTests should implemented get_info()" should be "... implement ...". Also, on "This provides information about the test to the administration interface to help developers understand what a test will do", is it 'a' test or 'the' test?

On page seventeen, you have "Post data". Is this POST data, or data in a post (which is to say a node)?

Sorry to be pedantic, but words matter. This is, overall, a pretty informative presentation, though, and will be very useful.

boombatower’s picture

Status: Needs work » Needs review
StatusFileSize
new740.27 KB

I believe I have made all the requested changes. Once again thanks for the feedback. This has turned out much better than I could have done on my own.

Once you have approved it would you like the original so you can easily make the modifications that you said you would like to make to use it as a presentation?

aclight’s picture

1.) I think the zebra striping on slide 5 is still difficult to distinguish. If you were to give this presentation or real, this would be a bigger problem, as in my experience, most projectors at conferences, etc. tend to have relatively poor contrast ratios compared to quality LCD computer monitors. It might also help if you centered the table headers on that slide.

2.) Again, for a real presentation, the light blue color in your code syntax highlighting will be difficult to read. In fact, the code in general will be tricky to read. I think that ideally you would not insert the code as an image but instead as a text object directly on the slide. I realize this will take a fair amount of time, but that should make it more readable since it will scale better in size.

Neither of these things is terribly relevant at the moment, since you're not giving a presentation with this (as far as I know). But since we had discussed the possibility of you trying to give a talk about this at Drupalcon, I wanted to point these things out now.

You've done a great job with this, and I'm marking this as RTBC. I think you should do something with this presentation to make it easier to find. Maybe there's a Simpletest handbook page where you could add this? I'd hate for this just to get lost in a sea of other things.

I'll give you credit for this on the google tracker. Great job!

boombatower’s picture

Thanks.

If you decide to use it for a presentation or some other use that requires the changes you mentioned I would be happy to make them.

Rok Žlender’s picture

Status: Needs review » Reviewed & tested by the community

According to aclight this one is done. Now the question is where do we put this. There is a handbook about simpletest http://drupal.org/simpletest maybe this would be the place. Or if drupal has a central presentation cvs directory that would work too. Any ideas?

aclight’s picture

@Rok: I have given the student credit for this task, but if you feel that there are any inaccuracies in the presentation or have any suggestions, I'm sure boombatower would be willing to make some corrections.

He has added a comment to the main simpletest handbook page at http://drupal.org/simpletest#comment-697811 with a link here to his presentation.

There is a presentations page in the handbooks at http://drupal.org/node/13188, but I'm not sure that this is the best place to put the presentation. Perhaps putting it in the simpletest area (but in a more prominent position than just a comment) and then adding a link on the presentations page to wherever we put it would be the best thing to do.

If you tell me where you think it's best to put it, I'll put it there.

Rok Žlender’s picture

Status: Reviewed & tested by the community » Fixed

You did a great job with reviewing this presentation I have nothing to add. Closing this issue.

scor’s picture

Great work boombatower! I have a tiny comment though, why do you use a serif font in the Feature/benefit block on the slide 5, and a sans-serif font everywhere else (which I think is better). The whole presentation should use the same type of font.

boombatower’s picture

@scor: That table is linked from OpenOffice Writter into OpenOffice Impress. They default to different fonts and I didn't notice that the font was different.

@all: If anyone has any other comments, or my presentation may be used at conference let me know and I can clean it up a bit, especial change the code examples from images to rendered text.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.

boombatower’s picture

StatusFileSize
new664.06 KB

I made a few changes to my presentation in preparation for presenting it at Drupalcon Boston 2008:

  • Code examples: Images were replaced with embedded colored text that will be rendered to the appropriate size.
  • Slide 5
    • Features table font changed to Sans-serif font.
    • Features table row highlighting made more prominent.
    • Features table column headings centered and boxed in.
  • Made small grammatical/wording changes.
  • Added cause and effect slides in code examples.