Monday, August 25, 2008

Strange Name But Good Information (StickyMinds)

A good online resource that I have used many times that has good information on software testing and software engineering other topics is StickyMinds.com.  There are many good articles and papers that are free and the site can be browsed or searched.  Some of the information does require a paid subscription, but for the student budget the free content is very useful.  It is an active site so you should check back often.  Rather than a scholarly source, it is geared toward the professional and so topic or technique discussions are very practical in terms of applicability to real world needs.

I have used the site many times during course preparation and I revisit it when I am going to teach an applicable course again.

Tuesday, August 19, 2008

Unit Testing for Various Languages

Chances are if you are or have used the Eclipse IDE, you have used JUnit.  If you haven't JUnit is an Eclipse plug-in, a testing framework, that provides you a means of creating unit test suites that while supporting Test-Driven Development is also useful for unit testing in the more traditional sense.  It doesn't support GUI testing, though there are other plug-ins that do.  For example, SWTBot may be useful for you though it is not alone.

JUnit has been around for years and has an active community.  It has a new version, JUnit 4.5  JUnit comes with the Eclipse download so there isn't any complex installation needed.  There are some nice examples online showing it in use if you are starting out.

Another unit testing framework, called testNG, is another option worth looking at once you get the hang of how testing frameworks work. It also has an active community and it can be used with Eclipse.  It can be helpful with larger projects where you may want to distribute your testing efforts and have more reporting.  It has other features worth checking out.  If you are making a jump from JUnit to testNG, the site has some help as to how to migrate JUnit tests.

If you have unit testing needs in other languages, you may find the following useful as well:
So don't think such testing frameworks are only for Java or only for Eclipse, as even JUnit and testNG are not Eclipse-specific.

Coverage testing is another area, but I'll leave that for another post. :-)

Thursday, August 14, 2008

And Now For Something Completely Different Part 1

I want this to be a useful blog, but work is not one's whole existence.  So there will be periodic diversions.  As you could tell form my tag, I like to play video games - especially (though not exclusively) older games.

I also like to be artistic every now and then and while I don't always have time, I can definitely appreciate it other who are and who do have the time.  So if you like or ever liked video games and can appreciate how others take that interest and use it artistically, check out spritestich.  I have particularly enjoyed the Space Invader cupcakes and the Mario cross-stich.  Today they had a picture of a Guitar Hero cake, for those who are only into the more contemporary titles.

For Those Who Don't Like to Read...

In general I haven't been really happy with software engineering and computer science videos on sites like YouTube from an instructional point of view.  Don't get me wrong - I enjoy humor and product demos as much as the next person, but in terms of tutorials I have yet to find a lot of great stuff.  If I do I will pass them along.

Two things I have found worth sharing are the following:
  • Software Engineering Radio - You wouldn't think these 3 words would go together but they do.  If you want to listen to an interview on the go in order to learn about Aspect Oriented Programming or Security and dozens of other topics, this is a resource for you.  The nice thing about this site is that it is maintained, timely and you will or should recognize several of the people on the 'shows'.
  • TechTutor.tv - While it won't teach you about programming, it may be useful for learning how to do tasks in Photoshop, Access, and other programs.  I have encountered many computing students and professionals who are very adept at programming but not so much at using application software.  So some of the tutorial videos may be helpful in a project that you are working on.
So whether you don't like to read or need an alternate way of learning, you should find value from one of these resources.  Due to my own interests, I found the security interview interesting and got a better understanding of how to use Photoshop that years of tinkering couldn't provide.

Wednesday, August 13, 2008

You Have a Project..Now What?

I talked about using tools to help you manage our project, such as Project Dune or ZOHO Project.  If you are not able to go that route or otherwise want documentation to help you kick-start and manage your project, you can always use some templates.  They offer a starting point and can provide consistency and credibility to your management approach.

There are a lot out there, but I want to call your attention to some available from ProjectInitiation.com.  The site, which houses the templates, supports a recent book on project initiation by Karl Wiegers.  He has also written some very good books on requirements.  All of the books are from Microsoft Press.  Now don't write this stuff off because of the book publisher, the books are very practical and useful.  His requirements templates are great too, as I use them in my requirements course.  The requirements templates can be found at processimpact.com.  The templates are not for commercial use, and the project management ones ask that a modest donation be made to help a sick engineer - the donation is a nice gesture if you intend to use them.  

Even if you are going to try the web route, you can use some that would complement what the online tools do not offer.

Like anything, use what you need and what you find value from.  Otherwise you won't maintain them or find value and that would be a waste.


Tuesday, August 12, 2008

Project Management for Student or Other Projects

Getting a handle on managing your software projects is not trivial, but it doesn't have to be cumbersome.  Some people equate software engineering with paperwork and that is unfortunate as that sells it short.  Some ORGANIZATIONS may stress it and some process MODELS may have more documentation than others, but in my opinion a lot of these same people think there code is self-documenting and either dump their problems into the lap of the next person or they dwell too much on some small technical problem and not the project as a whole.

At any rate, there are a lot of great tools out there and many of them are either free or very low cost.  You need to find the right tool for what you want to do.  Microsoft Project works well for some people but it is not free and many people either do not use it well or try to shoe horn it into their organization since it makes pretty charts.

There are 2 tools that are examples of what you may want to take a look at for your student or other project.  One is Project Dune, which is open source and requires you to configure it to run on your own server.  It has a lot of great general features, as well as those pertinent to Scrum.  Some schools provide the facility for students to run a project on a virtual server and so if enabling the department to host it permanently is not feasible, hosting it on your team's virtual server may be an option.

If maintaining a server is not an option or of interest to you, then ZOHO Project may be.  You don't host it, they do.  And you can access from home or your lab or wherever you work - you just need a browser.  They will host a project for free, which should work for a class.  But if you like it enough, which you may then you can shell out $5-8 per month and be able to host more projects, get more space, etc.  You can share files there, have a forum for your project, maintain a schedule, delegate tasks, etc.  The nice thing about it is that you can work with it the way you want to in that it will email you when something is assigned to you and you can even set up a RSS feed for changes/updates to the project.  These features and the lack of needing to deal with configuring and maintaining a server make it appealing.  

Project Dune may be a long-term solution if you want fine-grained control.  I will be using ZOHO Projects this fall with several projects so I will fill you in.  So far I have been setting up the project shell to demo it for the teams and it is going well - the terminology is general SE so no process-specific jargon.  More to come.

Monday, July 14, 2008

Welcome to the blog

Technology is always changing, and as such students pursuing Computer Science or Software Engineering degrees can feel overwhelmed or don't know where to start in a new technology.  Hence the notion of keeping up with technology - The Moving Target.

The intent for this blog is to share resources and tools that would be of interest to Computer Science and Software Engineering students.  Sometimes the tools may be interesting plug-ins or open source tools.  At other times I may have tutorials to share.  On occasion I will share my experience in terms of teamwork, project management and other areas.  Any people, companies or projects will be anonymized.

I am a technology professional who has a vested interest in sharing such information with current and prospective students to keep them interested in technology and being informed as they progress in their degrees.

Feel free to share interesting resources, tools, and info that you feel would be worth sharing.