Category: Uncategorized
-
The myth of “correctness by design”
Now that you have a clearer picture of what I mean by effective and systematic software testing, let me debunk a myth. There is a perception among software developers that if you design code in a simple way, it will not have bugs, as if the secret of bug-free code is simplicity. Empirical research in…
-
Focusing on development and then on testing
I find it liberating to focus separately on developing and testing. When I am coding a feature, I do not want to be distracted by obscure corner cases. If I think of one, I take notes so I do not forget to test it later. However, I prefer to focus all my energy on the…
-
Effective testing as an iterative process
While the previous description may sound like a sequential/waterfall process, it is more iterative. A developer may be rigorously testing a class and suddenly notice that a coding decision they made a few hours ago was not ideal. They then go back and redesign the code. They may be performing TDD cycles and realize the…
-
Effective testing in the development process
I propose a straightforward flow for developers who apply effective and systematic testing. First, we implement a feature, using tests to facilitate and guide development. Once we are reasonably happy with the feature or small unit we’ve coded, we dive into effective and systematic testing to ensure that it works as expected (that is, we…
-
Effective software testing for developers
I hope the difference is clear between the two developers in the previous section. Eleanor used automated tests and systematically and effectively engineered test cases. She broke down the requirements into small parts and used them to derive test cases, applying a technique called domain testing. When she was done with the specification, she focused on the…
-
Developers who test vs. developers who do not
It is late on Friday afternoon, and John is about to implement the last feature of the sprint. He is developing an agile software management system, and this final feature supports developers during planning poker. Planning poker Planning poker is a popular agile estimation technique. In a planning poker session, developers estimate the effort required to…
-
Introduction
The developer community no longer needs to argue about the importance of software testing. Every software developer understands that software failures may cause severe damage to businesses, people, or even society as a whole. And although software developers once were primarily responsible for building software systems, today they are also responsible for the quality of…
-
Decision tree
Decision tree analysis is a wide-range, analytical modelling tool that has applications in different areas. Decision trees are built via an algorithm approach that identifies to split the dataset based on different conditions. In decision trees splitting of data should be continuous according to certain factors. This algorithm is described by two factors called decision…
-
Project Definition Checklist
A project definition checklist can help you determine whether your project is defined properly and whether you are ready to proceed to the next iteration of detailed planning. If you find that your project is not properly defined, the following options are available: General Scope Stakeholders Project Approach Other Acceptance The Absolute Minimum At this…
-
Project Definition Document
We’ve referred to “gaining consensus” and “getting agreement” as the answers to the important project-defining questions several times. How do you do this? You write them down and get everyone to formally sign off on this document. We will refer to this document as the Project Definition document. This section reviews both the must-have elements…