Reliability Testing Strategy Reliability in Software Engineering

Reliability Testing Strategy Reliability in Software Engineering

Reliability Testing Strategy Reliability in Software Engineering Kevin Taylor-Sakyi Aston University Engineering & Applied Science Birmingham, UK [email protected] www.kevintaylorsakyi.me Abstract— This paper presents the core principles of reliability alerts a doctor of a patients heart condition is considered in software engineering; outlining why reliability testing is critical to have failed if accurate information is not delivered to and specifying the process of measuring reliability. The paper provides insight for both novice and experts in the software the doctor within a specified time constraint; which in engineering field for assessing failure intensity as well as predicting turn expresses a relatively low reliability of the system. failure of software systems. Measurements are conducted by In 2014, the Heart Rhythm Society mentioned that utilizing information from an operational profile to further approximately 600,000 individuals are implanted with enhance a test plan and test cases – all of which this paper pacemakers each year globally [4]. If the reliability rate demonstrates how to implement. of these systems is deemed to be 45% for 600,000 Keywords—Software Reliability Engineering; Testing Strategy; individuals, the chance of survival is a mere 45%, Measuring Reliability; Test Plan; Test Case contingent upon doctors not notified within a certain timeframe. I. INTRODUCTION Amazon, aerospace, and healthcare systems – what is Reliability testing efforts can be said to predict the underlying factor of these systems? The importance failures that are likely to happen in specified system of their reliability! Prominence of software systems in operations, identifying areas of which faults that need the this Information Age is becoming more vital for most efforts to fix. These are typically categorized into operations within organizations; though these systems measurements, models, and methods of quality demonstrate competitive advantages and the like, every improvements. rose has its thorns. According to [1] it was estimated that B. Why measure reliability? less than 5% of testers were competent in in utilizing models to predict software reliability in the late 1990s; Reliability has always been centered on computer though this measurement is outdated it’s a good hardware, i.e. how durable is a component of a printer, indication that a gray area in dealing with reliability in keyboard, etc. yet, the same cannot be said about testing strategies is still evident. This report delivers software systems. Thus standards of measuring reliability theory in relation to software engineering, how reliability of hardware cannot be utilized as they focus it’s measured & calculated, and how to develop a test on “wearing out processes” [6], unlike software, which plan to assess the reliability of a software system. does not erode or wear out. II. SOFTWARE RELIABILITY Testing of software systems has had its fair share of interest in industry, however there’s a gray area of A. What is it? concern. The complexity of software systems increase so Software reliability is “the probability of failure-free does the acceptable definition of reliability, presently not operation of a computer program for a specific time in a commercially agreed upon with regards to measurement specific environment” [2]. In other words, creating a test techniques. Testing of software, currently practiced in that produces identical reliability measures results many developmental environments merely validates if a repeatedly; failure meaning “the program in its system or product meets business requirements but not functioning has not met user requirements in some way” how reliable the product is. [3]. For example, a pacemaker monitoring software that Software’s that are considered reliable based on the would not be considered an initiator of that variation; software requirements engineering (SRE) process manually searching for inconsistencies within a set-time cannot only save lives, but can also bring profits to frame however makes the doctor an initiator of this organization such as Amazon; or increase the credibility variation). Figure 2 expresses possible initiators within of a critical system such as an aerospace’s traffic this pacemaker system. monitoring system. Proving the necessity of being a b) Creation of operations list: Operations are jobs phase within developmental processes – separate from conducted within the software system – these are derived standard software testing. This supplementary ad-hoc from system requirements (functional & non- process does not replace current processes for testing funcational), diagrams (i.e. activity diagram), and software, but allows precise decisions-making during discussions with the various user types. Involving software development and allows “everyone more expected users occasionally highlights areas neglected concretely aware of SR by focusing attention on it” [3]; during requirements gathering. Refer to Figure 3. promoting means of reducing software developmental and maintenance costs. c) Review operations list: Consists of amending list to ensure high probability, should consider view points C. Engineering Process of experts within initiators. Resulting in merging In ensuring reliability of a system a systematic opeartions to allow a system test or partitioning of approach must be followed to ensure a safe, correct, and operations to permit selective testing resources. functional software that meets the operational aspects of d) Determining occurence rates: “The number of usability and user-friendliness [3]. The engineering operations divided by the time the total set of operations process is impartial to developmental methods (i.e. is running” [3]. Potentially obtained by examining waterfall, agile, etc.) however the process may invoke existing data, business data obtained from marketers, changing designs, frameworks and the like to produce a estimating using the Delphi method with various experts system with greater reliability. The engineering process is involved, and lastly, due to its cost, manually calculating as follows: estimates. Refer to Figure 4. 1) Defining the product: involves depicting actors e) Determining occrence probabilities: Dividing (users, suppliers, customers, etc.) of a system and each operation’s occurrence rate by the sum of the determining the base product and its accompanying operation occurrence rate. Refer to Figure 4. systems and different variations to establish which tests 3) Engineering the reliability: Specifying the just are suitable for each component right goals of meeting the reliability objectives, demands a) Refering to pacemaker system x (‘x’ denoting a defining the folling within specific system [3]: generic pacemaker system that informs doctors of a) Define meaing of failure patients heart rates, etc.) mentioned earlier, the different variations entailing measurements of heart rhythm, b) Indicate common unit for all failure intensities- transfering of measurements, etc. – recognizing these allows variations allow different types of tests to be c) Establish failure intensity objective for each implemented. Promoting test types to be specialized per associated system (operations, variation, etc.) variation. d) Locate failure intensity objective for whole 2) Implementing operational profiles: Identifying system & select strategies (models, etc.) that “optimally major tasks to be accomplished by the system meet the developed software failure intensity objective” (customers, users, etc.) and their rate of occurrence, they 4) Preparing for test: Incorporates test cases and must preserve control until task has been completed [3]. procedures which pilot “feature, load, and regression These profiles facilitate testing to be conducted tests” [3]. Feature consists of independent tests on efficiently, allowing tracability of “the reliability being operations to determine if operations perform accurately. achieved” [5]. Development of an operational profile Load iterates large amounts of tests with confidence to consists of the following: imitate failure which may occur due to interactions a) Identify initiators of operations: Indicating between different operations. Regression test is done different users or user types of the system, typically periodicly [3] and involves repetitive feature test after found through analyzing the pre-described customer each build to determine failure based on amendments on types during the inception phase of the requirements the software system. analysis (For example, in the case of pacemaker system x a doctor viewing a weekly generated report via email 5) Executing test: Identification of failures, when • Mean Time To Repair (MTTR) – measures they occur, and how severe they impact the system is average time taken to repair a failure found in this step [5]. You may use SRE to estimate & Mean Time Between Failure (MTBF) – track failure intensity in this process to help remove • failures. measurement of how reliable a component of a 6) Guiding test: Gathers all data relating to failed system is; MTBF ≈ τ / λ or “the sum of mean time tests occured in testing to assist in the following to failure (MTTF) and mean time to repair decisions: tracing reliabilty growth, preparing (MTTR)” [3] acceptence testing, acceptance/rejection of a “supersystem”, and releasing of a product entialing of all • Converting λ to reliability (R) – R ≈ exp (-λτ) if λτ variations [3]. is less than 0.05 then R ≈ 1 - λτ 7) Post Delivery & Maintenace life-cycle phase:

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us