←Older revision |
Revision as of 07:43, 18 April 2010 |
Line 15: |
Line 15: |
| The above attitude can probably only be applied to [[API]]s (although [http://testobsessed.com/2009/03/13/handling-bugs-in-an-agile-context/ similar attempts may be observed] in Agile movement too). We can expect those reporting nontrivial issues against [[API]] to have some level of engagement (e.g. be able to write a code and/or test). However if you provide end user functionality you may need to treat your users differently. | | The above attitude can probably only be applied to [[API]]s (although [http://testobsessed.com/2009/03/13/handling-bugs-in-an-agile-context/ similar attempts may be observed] in Agile movement too). We can expect those reporting nontrivial issues against [[API]] to have some level of engagement (e.g. be able to write a code and/or test). However if you provide end user functionality you may need to treat your users differently. |
| | | |
- | In an [[API]] (where [[BackwardCompatibility]] is the primary concern), there either trivial bugs (exceptions at unexpected places) or there are ''features''. After a release (due to the [[BackwardCompatibility]] implications) every bug turns into a feature. | + | In an [[API]] (where [[BackwardCompatibility]] is the primary concern), there either trivial bugs (exceptions at unexpected places) or there are ''features''. After a release (due to the [[BackwardCompatibility]] implications) every bug (usually a report that something is not nice, beautiful or [[rationalistic]] enough) turns into a feature. |
| | | |
- | As such reproducing and fixing a bug in an [[API]] requires different attitudes. Encouraging community to seek for bugs in an [[API]] and provide patches to its behavior is a best way to make the [[API]] really usable. On the other hand, the maintainer needs to be careful to not accept bad patches. The [[Teamwork|chapter 16]] describes strategies to evaluate quality of submitted patches and separate the perils from dust. But the rules are simple an [[API]] bug report has to be [[good]]: | + | As such reproducing and fixing a bug in an [[API]] requires different attitude. Encouraging community to seek for bugs in an [[API]] by providing patches to tests demonstrating wrong behavior is a best way to make the [[API]] really usable. On the other hand, the maintainer needs to be careful to not accept bad patches. The [[Teamwork|chapter 16]] describes strategies to evaluate quality of submitted patches and separate the perils from dust. But the rules are simple. An [[API]] bug report has to be [[good]]: |
| * it has to be easy to verify the problem is there - the best way to do it is to have an automated test that can just be executed and the misbehavior reveals itself automatically | | * it has to be easy to verify the problem is there - the best way to do it is to have an automated test that can just be executed and the misbehavior reveals itself automatically |
| * when the fix is applied (and subsequent changes are made in future) one can easily verify that the original intentions are still valid - again automatic test is your best friend | | * when the fix is applied (and subsequent changes are made in future) one can easily verify that the original intentions are still valid - again automatic test is your best friend |