Software testing is a process and activity to verify whether the real results match the expected results and to certify that the software system is defect free. It involves execution of a system component or software component to evaluate one or more properties of significance. There are various types of software testing. Each and every used as per need and requirement. Software testing tools are used to find error and fix bug as soon possible to ensure software quality.
Software testing is an examination conducted to give stakeholders with information about the quality of the software product or examination under test. Software testing also offers an objective, independent view of the software to permit the business to understand and recognize the risks of software development and implementation. Test techniques consist of the process of executing a software program or application by the aim of finding software errors, bugs, and other defects, and verifying that the software product fulfil the software requirement and fit for use. Software testing involves the execution of a software component or system component to assess one or more properties of software requirement. In general, these properties specify the degree to which the component or system under test, such as:
-
* Meets the software requirements that guided its design and development,
-
* Responds accurately to all kinds of inputs,
-
* Performs its functions within a satisfactory time,
-
* Is suitably usable,
-
* Can be installed and run in its planned environments, and
-
* Achieves the universal result its stakeholder’s need.
As the number of probable tests for even effortless software components is practically infinite, all software testing uses various strategies to pick tests that are feasible for the offered cost, time, and resources. As an outcome, software testing typically (but not absolutely) attempts to implement a program or application with the target of finding software bugs, errors, or other defects. The work of testing is an iterative process as when one bug is fixed, it can clarify other, deeper bugs, or can still develop new ones. Software testing can give objective, independent information about the quality of software products and risk of its failure to users or sponsors. Software testing can be conducted as soon as executable software (even if partly complete) exists. The overall approach to software development regularly determines when and how software testing is conducted. For example: in a phased process, most software testing occurs once system or software requirements have been defined and then implemented in testable programs or software. In compare, under an agile approach, software requirements, coding (programming), and testing are often done simultaneously.
Software testing also helps to recognize errors, gaps or missing requirements in different to the actual software requirements. It can be whichever done manually or using automated tools. Some favour saying software testing as a white box and black box testing. Testing is imperative because software bugs could be costly or even dangerous. Software bugs can potentially cause economic and human loss, history is full of such examples, such as:
-
* In 1985, Canada’s Therac-25 radiation therapy machine malfunctioned due to software bug and delivered lethal radiation doses to patients in which 3 people dead and 3 critically injuring.
-
* China Airlines Airbus A300 crashed due to software bug on April 26, 1994, killing 264 live.
-
* In May of 1996, a software bug caused the bank accounts of 823 customers of a major US bank to be credited with 920 million US dollars.
-
* In April of 1999, a software bug caused the crash of a $1.2 billion military satellite launch, the costliest disaster in history.
* Starbucks was forced to shut about 60 percent of stores in the US and Canada due to software failure in its POS system. At one point store served coffee for free as they not capable to process the transaction.
* Some of the Amazon’s third party retailers saw their product price is decreased to 1p due to a software malfunction. They were left with serious losses.
* Nissan cars have to recollect over 1 million cars from the market due to software failure in the airbag sensory detectors. There have been reported two accidents due to this software failure.
* Vulnerability in Window 10. This bug enables users to escape from security sandboxes throughout a flaw in the win32k system.
* In April 2015, Bloomberg terminal in London stopped due to software glitch affected more than 300,000 traders on financial markets. It forced the government to delay a 3bn pound debt sale.
* In 2015 fighter plane F-35 fell sufferer to a software bug, making it incapable to detect targets perfectly.
-
-
Software can also be unsuccessful by not fulfilling environmental constraints that fall outside the software specification. For example: if the software code takes too much memory, executes too slowly, or if the software product works on one operating system but not a different, so all these are considered failures. Software testing is classified according to the method in which testers execute the first two phases of the software testing process. The objective of the first phase, modelling the software’s environment, determines whether the tester is doing unit, integration, and system testing. Unit testing tests individual software components or a collection of software components. Software testers define the input domain for the units in question and ignore the rest of the software system. Unit testing occasionally requires the development of throwaway driver code and stubs and is frequently performed in a debugger. Integration testing, tests several components that have every received prior and separate unit testing. In general, the focus is on the subset of the domain that represents communication between the software components. System testing, tests a collection of components that constitutes a deliverable product. Usually, the whole domain must be measured to satisfy the criteria for a system test.
The second phase of software testing is test selection which determines what type of testing is being done. There are two major types: functional testing requires the selection of test scenarios lacking regard to source code structure. Thus, test selection methods and test data competence criteria must be based on software attributes of the software specification or operational environment and not on attributes of the software code or data structures. Functional testing also called specification based testing, behavioral testing, and black-box testing. Structural testing requires that inputs be based exclusively on the structure of the source code or its data structures. Software testing is the practice of evaluating a system or its component(s) through the aim to locate whether it satisfies the specified software requirements or not. In other words, testing is executing a system in order to recognize any gaps, errors, or missing software requirements in contrary to the actual requirements. It depends on the process and the associated stakeholders of the project(s). In the Information Technology (IT) industry, large companies have a software team with responsibilities to assess the developed software in context of the specified requirements. Furthermore, software developers also perform testing which is called unit testing.
An early commence to software testing reduces the cost and time to modify and develop error free software product that is delivered to the customer. However in software development life cycle (SDLC), software testing can be underway from the requirements gathering and specification phase and sustained till the deployment of the software product. It also depends on the software development model that is being used. For example: in the waterfall model, formal testing is conducted in the software testing phase but in the incremental model, testing is performed at the finish of every iteration or increment and the entire application is tested at the finish.
Software testing is done in diverse forms at every phase of SDLC:
-
* During the requirement gathering and specification phase, the analysis and verification of requirements are also considered as testing.
-
* Reviewing the design in the design phase with the purpose to advance the design is also considered as testing.
-
* Testing performed by a developer on achievement of the software code is also considered as testing.
0 comments:
Post a Comment