Testing implementation

From Computer Science Wiki
Revision as of 11:22, 11 March 2021 by Mr. MacKenty (talk | contribs)
System Fundamentals[1]


Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. 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 the process of executing a program or application with the intent of finding software bugs (errors or other defects).

Software testing involves the execution of a software component or system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the component or system under test[2]:

  • meets the requirements that guided its design and development,
  • responds correctly to all kinds of inputs,
  • performs its functions within an acceptable time,
  • is sufficiently usable,
  • can be installed and run in its intended environments, and
  • achieves the general result its stakeholders desire.



What the IB wants you to know about testing[edit]

The crucial importance of testing at all stages of implementation should be emphasized, with the stages clearly defined.
Types of testing can include: user acceptance testing, debugging, beta testing.
Students should be aware that there are programs that can test other programs, thereby automating parts of the testing process and reducing costs.

Debugging[edit]

Please click here for Debugging article.

Types of Testing[edit]

It will be helpful to understand these distinctions:

Software Testing

Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a verification and validation process.

Verification

Verification is the process to make sure the product satisfies the conditions imposed at the start of the development phase. In other words, to make sure the product behaves the way we want it to.

Validation

Validation is the process to make sure the product satisfies the specified requirements at the end of the development phase. In other words, to make sure the product is built as per customer requirements.[3]

Please watch this video for a nice example:


There are different types of testing. You should be able to recognize different types of testing, describe the purpose of each type of testing, and given a scenario, suggest appropriate testing approaches.

Types of testing[edit]

Acceptance testing[edit]

Acceptance testing performed by the customer, often in their lab environment on their own hardware, is known as user acceptance testing (UAT). Acceptance testing may be performed as part of the hand-off process between any two phases of development.


Beta testing[edit]

Beta testing comes after alpha testing and can be considered a form of external user acceptance testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team known as beta testers. The software is released to groups of people so that further testing can ensure the product has few faults or bugs. Beta versions can be made available to the open public to increase the feedback field to a maximal number of future users and to deliver value earlier, for an extended or even indefinite period of time (perpetual beta).


Standards[edit]

  • Suggest various types of testing.

References[edit]