Test-driven developmentTest-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later. Software engineer Kent Beck, who is credited with having developed or "rediscovered" the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.
Regression testingRegression testing (rarely, non-regression testing) is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a regression. Changes that may require regression testing include bug fixes, software enhancements, changes, and even substitution of electronic components (hardware). As regression test suites tend to grow with each found defect, test automation is frequently involved.
Unit testingIn computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile. Before unit testing, capture and replay testing tools were the norm. In 1997, Kent Beck and Erich Gamma developed and released JUnit, a unit test framework that became popular with Java developers.
Software testingSoftware testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to: analyzing the product requirements for completeness and correctness in various contexts like industry perspective, business perspective, feasibility and viability of implementation, usability, performance, security, infrastructure considerations, etc.
White-box testingWhite-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing). In white-box testing, an internal perspective of the system is used to design test cases. The tester chooses inputs to exercise paths through the code and determine the expected outputs. This is analogous to testing nodes in a circuit, e.g.
Test caseIn software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise a particular program path or to verify compliance with a specific requirement. Test cases underlie testing that is methodical rather than haphazard. A battery of test cases can be built to produce the desired coverage of the software being tested.
Machine toolA machine tool is a machine for handling or machining metal or other rigid materials, usually by cutting, boring, grinding, shearing, or other forms of deformations. Machine tools employ some sort of tool that does the cutting or shaping. All machine tools have some means of constraining the workpiece and provide a guided movement of the parts of the machine. Thus, the relative movement between the workpiece and the cutting tool (which is called the toolpath) is controlled or constrained by the machine to at least some extent, rather than being entirely "offhand" or "freehand".
ToolA tool is an object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many animals use simple tools, only human beings, whose use of stone tools dates back hundreds of millennia, have been observed using tools to make other tools. Early human tools, made of such materials as stone, bone, and wood, were used for the preparation of food, hunting, the manufacture of weapons, and the working of materials to produce clothing and useful artifacts and crafts such as pottery, along with the construction of housing, businesses, infrastructure, and transportation.
Hand toolA hand tool is any tool that is powered by hand rather than a motor. Categories of hand tools include wrenches, pliers, cutters, , striking tools, struck or hammered tools, screwdrivers, vises, clamps, snips, hacksaws, drills, and knives. Outdoor tools such as garden forks, pruning shears, and rakes are additional forms of hand tools. Portable power tools are not hand tools. Hand tools have been used by humans since the Stone Age when stone tools were used for hammering and cutting.
Water turbineA water turbine is a rotary machine that converts kinetic energy and potential energy of water into mechanical work. Water turbines were developed in the 19th century and were widely used for industrial power prior to electrical grids. Now, they are mostly used for electric power generation. Water turbines are mostly found in dams to generate electric power from water potential energy. Water wheels have been used for hundreds of years for industrial power. Their main shortcoming is size, which limits the flow rate and head that can be harnessed.
Stone toolA stone tool is, in the most general sense, any tool made either partially or entirely out of stone. Although stone tool-dependent societies and cultures still exist today, most stone tools are associated with prehistoric (particularly Stone Age) cultures that have become extinct. Archaeologists often study such prehistoric societies, and refer to the study of stone tools as lithic analysis. Ethnoarchaeology has been a valuable research field in order to further the understanding and cultural implications of stone tool use and manufacture.
Soil moistureSoil moisture is the water content of the soil. It can be expressed in terms of volume or weight. Soil moisture measurement can be based on in situ probes (e.g., capacitance probes, neutron probes) or remote sensing methods. Water that enters a field is removed from a field by runoff, drainage, evaporation or transpiration.
Micro hydroMicro hydro is a type of hydroelectric power that typically produces from 5 kW to 100 kW of electricity using the natural flow of water. Installations below 5 kW are called pico hydro. These installations can provide power to an isolated home or small community, or are sometimes connected to electric power networks, particularly where net metering is offered. There are many of these installations around the world, particularly in developing nations as they can provide an economical source of energy without the purchase of fuel.
DroughtA drought is a period of drier-than-normal conditions. A drought can last for days, months or years. Drought often has large impacts on the ecosystems and agriculture of affected regions, and causes harm to the local economy. Annual dry seasons in the tropics significantly increase the chances of a drought developing and subsequent wildfires. Periods of heat can significantly worsen drought conditions by hastening evaporation of water vapour.