Tag Info

New answers tagged

3

Hardware-dependend test can be hard to unit-test, indeed, until you have a reliable simulator available. OS / kernel dependent code can be unit tested by providing an abstract interface to the OS or kernel functions which allows to mock these functions out Of course, when your OS functions do not behave the way you expect them to behave, you might provide ...


4

I think you are going about this the wrong way. Don't get into an argument over the definitions of words, that's not useful. Trying to argue for changes in development methodology by arguing over the definition of an integration tests, is like try to square a circle by changing the definition of a square. Instead, argue for what you actually want to change. ...


0

I am guessing that there will be plenty of other factors that are coming into play that you might not have considered. They are probably not technical. Eg, time, effort, understandability, simplicity, upcoming future work, previous decisions already made, etc. There is obviously a lot of conflict around the database. You need to take a step back here, he's ...


1

Challenging someone who thinks they know best is always a problem. You have run into someone who believes "everything is a unit test," and that kind of miscategorization is hard to address. Provide him with a scale of interactions, that has some hierarchy to it. Ask him to draw lines where he wants to define things. For instance. Single method/procedure, ...


4

I think that when you are dealing with people who think they know best, or you are just in a position where they don't think they should be listening to you, the best way is question their ways. He is probably the type that believes that he should be the one making the decisions (independently of whether or not he is the most qualified). And just telling ...


3

No, it's not "necessary" The principles of Agile say nothing directly about testing. But It's Highly Advisable Given Agile's commitment to a sustainable process, continuous/incremental delivery, and software quality, automated testing is the best solution currently available for most projects Exceptions (as noted by Jörg W Mittag) include ...


4

Both Agile and XP try to avoid Big Design Up Front. In BDUF, requirements are gathered, a formal specification is created, then coding is done, then testing is done. This makes sense for well-defined, mission- and life-critical systems like medical equipment, space probes, etc. Agile avoids this flow because it doesn't work well for problems which aren't ...


8

You are probably talking about automated testing, unit tests, integration tests etc. These are more important to agile than manual testing (with testers and such) because they are too slow, thus its not possible to test every small change that you make. Since agile is about fast small iterations, having tests that verify correctness in seconds or minutes, ...


8

If you do not have tests, how do you know your code works? Edit: the assertion that tests cannot prove that the code works fails to define one crucial term, namely works. What does it mean for a program to work? If you keep this term vague, then there is no way at all to prove or be sure that any program works. Ever. On the other hand, you can define works ...


29

Testing is absolutely essential to agile, primarily because agile is based around incremental improvements: the difficulty is that it can sometimes be hard to see how the current changes will effect your old code. The best way to be confident that you haven't broken something is to test it, and to know HOW to test it. That way you find the bug immediately, ...


3

There are services out there for this sort of thing. This article mentions some. Searching for something like "android device testing" should also lead you to some. Obviously you would need to evaluate which service gives you the functionality you need.


0

I write the code and they write the tests... Sure this happens at some of the top tech companies like google and facebook where they have full time, highly qualified quality engineers that have a programming backgfround such as you describe. Now to the other 99% of the ('real') programming world: Most testers are doing most of their testing by running ...


0

I think the problem here is that you are confusing a particular sub-set of testing "unit test" with the much larger set of tests generally accepted as "testing". Unit testing is generally done by the programming team themselves. It could be manual but most often using an automated testing framework such as Junit. Generally speaking the testing team does ...


3

I really don't see any use of this. I wish I could just tell them what I coded and they would just write the tests. Well, that's not the world you live in. Besides, not everything can be done in automated tests. Additionally, "manual testers" are often people who have a lot better domain knowledge than the developers. Listen to them and you may learn a ...


5

The term 'tester' gets applied to a whole range of professions that all do slightly different work. What testers have in common is that they try to break that beautiful piece of code you have just written look for edge cases and unexpected interactions between requirements provide their own, independent and uninfluenced, interpretation of the requirements ...


3

First you need to start with the terms "in-house" and "outsourced" with respect to development. In-house means software development performed by employees of the company that is paying for development. Outsourced means software development performed by employees of a different company that is paying for development. Outsourced development frequently ...


0

If this is something you're really worried about, then it's clearly a cross-cutting concern, so it's one you could tackle with an Aspect-Oriented Programming approach. For example, you could use Castle's DynamicProxy, and write an interceptor that keeps track of the entry variable and throws an exception if the same method is entered a second time. If you ...


0

In general you do something sane, and then at some point incorrect use of your library becomes the programmer's problem. For example for logging you can look at http://logging.apache.org/log4net/index.html. The writer there is customizable by what level the log is writing at. And then you simply don't have your debug output using a writer that is itself ...


0

And it seems that every external call (a call not to it's own components) must be wrapped with such flags. That looks crazy! Is it how good code written? Or is it normal to beleive that your system has no circular > calls? Am I missing something important? Please, advise. Levelization. Levelization will be a key concept for a long time to come. The ...


3

If you use design by contract then you could specify that implementations of ITextWriter should not call Logger.Debug. Only if it's obvious that some implementation would have a reason to call Logger.Debug would you bother defending against such a case. A more interesting question would be a multi-threaded situation. Does the responsibility of handling ...


14

In the enterprise world, an algorithm always functions the same way. I'll write a unit test for an algorithm, I'll expect the value 42 and it'll error if I don't get that value. This is not very different in games. The presence of two modes and multiple flags in the game you're working on doesn't change anything: if you take a specific mode with a ...


3

There are simple rules of thumb. Try what the manual says. Install and run on a clean target, user license, the works. Does it work? Did you have to add anything not covered in the manual? Are all the default control values usable? Or is there something that's wrong, or blank, by default and always has to be changed? Set every value in the user ...


0

In my opinion solution depends how complex your testing environment is. Solution no1 looks simpler and you are able to use import static to simplify it even more this way you follow kiss principle Also solution no1 performs better as you do not need to create another stack call on thread that takes place in solution no 2. However solution no2 seems to ...


2

There are two arguments for using accessor methods instead of public variables: Access Control: A method allows us to publish only a getter method, or to add value-based (in contrast to type-based) constraints on a setter. With public final identifiers, this point is irrelevant, as that value can't be changed, and invariants therefore can't be broken by ...



Top 50 recent answers are included