<< Chapter < Page
  Software engineering     Page 5 / 15
Chapter >> Page >

Software reliability refers to the probability of failure-free operation of a system. It is related to many aspects of software, including the testing process. Directly estimating software reliability by quantifying its related factors can be difficult. Testing is an effective sampling method to measure software reliability. Guided by the operational profile, software testing (usually black-box testing) can be used to obtain failure data, and an estimation model can be further used to analyze the data to estimate the present reliability and predict future reliability. Therefore, based on the estimation, the developers can decide whether to release the software, and the users can decide whether to adopt and use the software. Risk of using software can also be assessed based on reliability information. The primary goal of testing should be to measure the dependability of tested software.

There is agreement on the intuitive meaning of dependable software: it does not fail in unexpected or catastrophic ways. Robustness testing and stress testing are variances of reliability testing based on this simple criterion.

The robustness of a software component is the degree to which it can function correctly in the presence of exceptional inputs or stressful environmental conditions. Robustness testing differs with correctness testing in the sense that the functional correctness of the software is not of concern. It only watches for robustness problems such as machine crashes, process hangs or abnormal termination. The oracle is relatively simple, therefore robustness testing can be made more portable and scalable than correctness testing. This research has drawn more and more interests recently, most of which uses commercial operating systems as their target.

Stress testing, or load testing, is often used to test the whole system rather than the software alone. In such tests the software or system are exercised with or beyond the specified limits. Typical stress includes resource exhaustion, bursts of activities, and sustained high loads.

Regression testing

According to (IEEE610.12-90), regression testing is the “selective retesting of a system or component to verify that modifications have not caused unintended effects...” In practice, the idea is to show that software which previously passed the tests still does. Beizer defines it as any repetition of tests intended to show that the software’s behavior is unchanged, except insofar as required. Obviously a trade-off must be made between the assurance given by regression testing every time a change is made and the resources required to do that.

Regression testing can be conducted at each of the test levels. The target of the test and may apply to functional and nonfunctional testing.

Correctness testing

Correctness is the minimum requirement of software, the essential purpose of testing. Correctness testing will need some type of oracle, to tell the right behavior from the wrong one. The tester may or may not know the inside details of the software module under test, e.g. control flow, data flow, etc. Therefore, either a white-box point of view or black-box point of view can be taken in testing software. We must note that the black-box and white-box ideas are not limited in correctness testing only.

Questions & Answers

The following text is encoded in base 64. Ik5ldmVyIHRydXN0IGEgY29tcHV0ZXIgeW91IGNhbid0IHRocm93IG91dCBhIHdpbmRvdyIgLSBTdGV2ZSBXb3puaWFr Decode it, and paste the decoded text here
Julian Reply
what to do you mean
Vincent
What is the command to list the contents of a directory in Unix and Unix-like operating systems
George Reply
how can i make my own software free of cost
Faizan Reply
The name of the author of our software engineering book is Ian Sommerville.
Doha Reply
what is software
Sampson Reply
the set of intruction given to the computer to perform a task
Noor
I want to know about prototype model in software engineering
Malli Reply
Prototype Model is a replica model. In this we plan and build a rough application. Further we launch it for users and if they give their feedback or need any enhancement then we add-on requested features as per the system/user requirements.
KUMAR
between JavaScript and html,which is the best to master first?
Njuguna Reply
You have to master HTML first before you do javascript. Actually Html is not a programming language it is used to make a skeleton of a webpage
Alfayo
yaah it so good to start with HTML first
Abel
what is a software
Carren Reply
I am not proficient in any programming language though I am learning python currently, is it necessary to be proficient in programming language before one can undergo this course
Israel Reply
what is software
Arwaz Reply
The reason it all exists
Ruth Reply
Hi
Md
hlo
Ajay
Hii
Biddika
hu
Ajay
what is programming
Nonny Reply
software project scheduling
DEVENDRA Reply
kis chij ka bro
shiv
Green chili
Arwaz
wellcome my friend
my
what is soft ware
my
the soft ware of education
my
hello
Hilal
I'm new here
Hilal
how to communicate with clients
adejoh Reply
hey hi good afternoon sir my name is Mohamed Kamara, I want to understand how to do it sir.
Muhammadosman
ok
Ronald
how are u sir, I want u to teach me please I want to know about softwares.
Muhammadosman
me too I need this knowledge
anthony
me too
Noor
what's up y'all..who is good at java? need help
Adrian
Is it like a unit in software engineering or what?
Njuguna
Which SDLC Model will you select to develop the system as a software engineer and why?
Subrato Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask