Petroleum reservoirA petroleum reservoir or oil and gas reservoir is a subsurface accumulation of hydrocarbons contained in porous or fractured rock formations. Such reservoirs form when kerogen (ancient plant matter) is created in surrounding rock by the presence of high heat and pressure in the Earth's crust. Petroleum reservoirs are broadly classified as conventional and unconventional reservoirs.
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.
Pelagic sedimentPelagic sediment or pelagite is a fine-grained sediment that accumulates as the result of the settling of particles to the floor of the open ocean, far from land. These particles consist primarily of either the microscopic, calcareous or siliceous shells of phytoplankton or zooplankton; clay-size siliciclastic sediment; or some mixture of these. Trace amounts of meteoric dust and variable amounts of volcanic ash also occur within pelagic sediments.
Reservoir modelingIn the oil and gas industry, reservoir modeling involves the construction of a computer model of a petroleum reservoir, for the purposes of improving estimation of reserves and making decisions regarding the development of the field, predicting future production, placing additional wells and evaluating alternative reservoir management scenarios. A reservoir model represents the physical space of the reservoir by an array of discrete cells, delineated by a grid which may be regular or irregular.
Bed (geology)In geology, a bed is a layer of sediment, sedimentary rock, or volcanic rock "bounded above and below by more or less well-defined bedding surfaces". Specifically in sedimentology, a bed can be defined in one of two major ways. First, Campbell and Reineck and Singh use the term bed to refer to a thickness-independent layer comprising a coherent layer of sedimentary rock, sediment, or pyroclastic material bounded above and below by surfaces known as bedding planes.
Test automationIn software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.
Graded beddingIn geology, a graded bed is one characterized by a systematic change in grain or clast size from one side of the bed to the other. Most commonly this takes the form of normal grading, with coarser sediments at the base, which grade upward into progressively finer ones. Such a bed is also described as fining upward. Normally graded beds generally represent depositional environments which decrease in transport energy (rate of flow) as time passes, but these beds can also form during rapid depositional events.
NP-completenessIn computational complexity theory, a problem is NP-complete when: It is a decision problem, meaning that for any input to the problem, the output is either "yes" or "no". When the answer is "yes", this can be demonstrated through the existence of a short (polynomial length) solution. The correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by trying all possible solutions.
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.
Integration testingIntegration testing (sometimes called integration and testing, abbreviated I&T) is the phase in software testing in which the whole software module is tested or if it consists of multiple software modules they are combined and then tested as a group. Integration testing is conducted to evaluate the compliance of a system or component with specified functional requirements. It occurs after unit testing and before system testing.