Testing implementation

From Computer Science Wiki
Revision as of 14:08, 8 July 2016 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:

  • 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.[2]

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 to better understand basic principals of software testing.



SL version[edit]

Testing seeks to answer the simple question: does this unit of code work the way it is supposed to work?. In order to answer this question, you need to exactly understand:

  1. what unit of code you are testing
  2. how is it supposed to work (which normally is derived from a design document or blueprint)


Testing has different layers of scope. You can test a single function or larger groups of functions. There are many different types of testing.


HL version[edit]

Real-world practical advice[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. Inadequate testing can reduce employee productivity and lead to end-user dissatisfaction.

Do you understand this material?[edit]

Do you have an advanced understanding of this material?[edit]

Standards[edit]

  • Suggest various types of testing. Level 3

References[edit]