Search the web
Sign In
New User? Sign Up
AgileEmbedded · Agile Embedded
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Continuous Integration Compiler Choice   Message List  
Reply | Forward Message #409 of 435 |
Re: [AgileEmbedded] Re: Continuous Integration Compiler Choice

Mark,

It is a tough choice to find the right balance of unit, integration, and
system level testing. You really need to have some type of full end-to-end
suite that is fully automated to really "close the loop" for each build. Of
course, there will likely be some tests you can't automate, but you can
likely make some sacrifices and get something of value automated.

Some things to keep in mind:

- Have a unit testing environment that allows single units to be tested by
themselves. Another great feature, is to be able to track dependencies so
that whenever a dependency is touched that only the dependent tests need to
be rerun. Keeping developer testing quick is a key to ensuring that it is
done often. Hopefully with each change to the source.

- Have your CI system run all unit tests on a good simulator or the real
target. Although, in a medium to large project, the latter usually becomes
impractical, unless you schedule it for an overnight build.

- Integration tests using the simulator can be very valuable for proving out
subsystems before dumping them into the target. As James said, tracking down
these issues outside the real target is much more desirable than fumbling
with printfs and debuggers when you are on the target.

- System tests should not try and beat up the real system to the extent that
your unit tests do. It usually ends up being too much work and too much
duplication. System tests should focus on the high-level validation of
customer features, for the most part. Being high-level tests, they provide
an additional nets to catch behavior changes when a significant refactoring
is done.

Enjoy,
Greg

Greg Williams | Software Developer
Atomic Object | http://atomicobject.com
[Ph] +1 616 776 6020 [Fx] +1 616 776 6015


On Mon, Jun 15, 2009 at 8:07 AM, James Grenning <james@...> wrote:

>
>
> Hi Mark
>
> Integration is a pretty broad term, and there are many levels. Some
> amount can be done off target. But the ultimate, and maybe
> unattainable in some situations, is a fully automated end to end test
> suite. Depending on the application, that could result in
> considerable external instrumentation.
>
> I look at it in these 6 stages of incorporating of TDD and CI.
>
> Here is the CI approach I recommend (CI really begins in step 1):
> 0) Do TDD in host for the most rapid feedback and defect prevention.
> 1) Build and run in the host environment on checkin, check results
> 2) Compile unit test build for target or eval board
> 3) Push the UT build to the target and check results
> - in constrained memory situations you might need to chunk the tests
> 4) Run ATs (maybe in host too) in target (Acceptance tests at the sub-
> system and system level like you mentioned)
> 5) Run manual tests
>
> Some of these are going to be quite challenging. But that should not
> discourage getting this started. Software only integration can often
> be done off-target, at least some can be. When a team begins they can
> probably only practically do #0 and #5, or maybe #2 and #5. I know
> companies doing #0 and #5 and very happy with the improvement and the
> track they are on.
>
> The goal of this is to get warning of problems. I'd rather find a
> problem before it becomes a bug/defect. I'd rather track down the
> problems I can outside the target, so that when we get to the target
> the problems we could get ride of are gone from the code.
>
>
> James
>
> ----------------------
> James Grenning
> james@... <james%40grenning.net>
> www.renaissancesoftware.net
> www.renaissancesoftware.net/blog
> www.twitter.com/jwgrenning
>
> On Jun 13, 2009, at 9:12 AM, marktxx wrote:
>
> >
> >
> > --- In AgileEmbedded@yahoogroups.com <AgileEmbedded%40yahoogroups.com>,
> "davekelloggs"
> > <dave.kellogg@...> wrote:
> > >
> > > I'm working toward compiling my embedded code on a continuous
> > integration server. Any suggestions (for or against) using GCC vs
> > Microsoft Visual C as the compiler in that environment?
> > >
> > > The target is a 16-bit Freescale part, using CodeWarrior.
> >
> > As mentioned in other posts as well, IMHO real integration can only
> > be run on the target or with a target simulation. In the embedded
> > world, running the suite of unit tests on the host is not
> > "integration" but is an extremely important step in becoming agile.
> > Therefore for true integration you need to start developing your
> > system or sub-system level tests.
> >
> > Any other opinions?
> >
> >
> >
>
> [Non-text portions of this message have been removed]
>
>
>


[Non-text portions of this message have been removed]




Mon Jun 15, 2009 2:48 pm

willi297
Offline Offline
Send Email Send Email

Forward
Message #409 of 435 |
Expand Messages Author Sort by Date

I'm working toward compiling my embedded code on a continuous integration server. Any suggestions (for or against) using GCC vs Microsoft Visual C as the...
davekelloggs
Offline Send Email
May 29, 2009
5:13 pm

Hi Dave I'd go with gcc. It is more portable. And more script frendly. James Sent via BlackBerry from T-Mobile ... From: "davekelloggs"...
James Grenning (BB)
jwgrenning
Offline Send Email
May 29, 2009
5:16 pm

Dave: Of the two, I agree with James: gcc is probably going to be easier (maybe MinGW instead of Cygwin just to keep it simple?). I believe, however, that ...
Mark Vander Voord
mvandervoord
Offline Send Email
May 29, 2009
5:23 pm

Dave, If you are insistent with going with a non-embedded compiler, I would definitely lean towards GCC over anything else. Especially something from ...
Greg Williams
willi297
Offline Send Email
May 29, 2009
5:26 pm

gcc and g++ work well for embedded applications. I've built applications with gcc and glibc that ran fine on my desktop. The same applications cross compiled...
Rick
rick_clements
Offline Send Email
May 29, 2009
6:25 pm

Dave, We tend to treat our CI servers as "The Golden Build". We even go as far as building the actual FW release candidate and post it as a build artifact and...
Greg Williams
willi297
Offline Send Email
May 29, 2009
5:22 pm

Hi Greg, I'm unclear what you mean with this mail? Could you clarify it a little further? Are you saying to not use any of these compilers? Bas...
Bas Vodde
basvodde
Offline Send Email
May 30, 2009
1:12 am

Bas, No, sorry if it came across that way. I am basically saying that it is better to use the compiler you are using for your embedded target if it has a...
Greg Williams
willi297
Offline Send Email
Jun 1, 2009
7:16 pm

Hi Greg, Hmm... yeah... I understand. Though, I agree with all you are saying, I wouldn't make the same recommendations. Perhaps its just the context here, ...
Bas Vodde
basvodde
Offline Send Email
Jun 4, 2009
10:08 am

Hi I agree with needing the fast turn around build during unit tests, like Bas explains. Why? To get feedback sooner and avoid debugging. The longer the...
James Grenning
jwgrenning
Offline Send Email
Jun 4, 2009
11:43 am

Bas, Yes, we are definitely saying the same thing. My original point was that the last place to scrimp is on your CI server. Yes, please feel free to use GCC ...
Greg Williams
willi297
Offline Send Email
Jun 4, 2009
2:44 pm

... As mentioned in other posts as well, IMHO real integration can only be run on the target or with a target simulation. In the embedded world, running the...
marktxx
Offline Send Email
Jun 13, 2009
2:13 pm

Hi Mark Integration is a pretty broad term, and there are many levels. Some amount can be done off target. But the ultimate, and maybe unattainable in some...
James Grenning
jwgrenning
Offline Send Email
Jun 15, 2009
12:08 pm

Mark, It is a tough choice to find the right balance of unit, integration, and system level testing. You really need to have some type of full end-to-end suite...
Greg Williams
willi297
Offline Send Email
Jun 15, 2009
2:50 pm

... What do you consider a "CI system" is in the embedded world using C and/or C++ (with a little assembly) as the development language?...
marktxx
Offline Send Email
Jun 28, 2009
2:32 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help