Computer Science

Testing

Testing in computer science refers to the process of evaluating software or hardware to identify errors, bugs, or other issues. It involves running the program with various inputs to ensure that it behaves as expected and meets the specified requirements. Testing is crucial for ensuring the reliability, functionality, and performance of computer systems and applications.

Written by Perlego with AI-assistance

9 Key excerpts on "Testing"

  • Book cover image for: Software Quality Assurance
    eBook - PDF

    Software Quality Assurance

    Integrating Testing, Security, and Audit

    SECTION II T ESTING This page intentionally left blank This page intentionally left blank 59 3 T ESTING : C ONCEPT AND D EFINITION Introduction This chapter, as the name indicates, introduces the basic relationship between software and Testing and how Testing is an integral part of overall software development. Part 1 discusses how Testing is inte-grated into the whole development process. Part 2 discusses the whole Testing process and its life cycle. Part 3 defines the major types of Testing. Part 1: Testing in the Software Life Cycle What Is Software Testing? Testing is oriented toward “detection” primarily of the defects and anomalies that fall under the general category of a software “bug.” Functionally, Testing involves operation of a system or application under controlled conditions. The controlled conditions should include both positive and nega-tive conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they should not or things do not happen when they should. The IEEE Standard 610, Glossary of Software Engineering Technology, defines Testing as “The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspects of the system or component.” IEEE Standard 829-1983 defines Testing as “The process of ana-lyzing a software item to detect the differences between existing and 60 SOFTWARE QUALITY ASSURANCE required conditions (that is, bugs) and to evaluate the features of the software items.”* Each project in software development should be following a life cycle model. Where is the place for Testing in a software life cycle? The simple answer is “it is part of it.” There can be no software development life cycle (SDLC) without Testing. However, when and how should test-ing be done? The general V-model plays an especially important role to answer this question.
  • Book cover image for: All About Robotics Software & Important Programming tools
    ____________________ WORLD TECHNOLOGIES ____________________ Chapter- 7 Software Testing Software Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. Software Testing can also be stated as the process of validating and verifying that a software program/application/product: 1. meets the business and technical requirements that guided its design and development; 2. works as expected; and 3. can be implemented with the same characteristics. Software Testing, depending on the Testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the software development methodology adopted. Different software development models will focus the test effort at different points in the development process. Newer development models, such as Agile, often employ test driven development and place an increased portion of the Testing in the hands of the developer, before it reaches a formal team of testers. In a more traditional model, most of the test execution occurs after the requirements have been defined and the coding process has been completed. Overview ____________________ WORLD TECHNOLOGIES ____________________ Testing can never completely identify all the defects within software. Instead, it furnishes a criticism or comparison that compares the state and behavior of the product against oracles—principles or mechanisms by which someone might recognize a problem.
  • Book cover image for: Vocations in Computer Science
    ________________________ WORLD TECHNOLOGIES ________________________ Chapter 4 Software Testing Software Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. Software Testing can also be stated as the process of validating and verifying that a software program/application/product: 1. meets the business and technical requirements that guided its design and deve-lopment; 2. works as expected; and 3. can be implemented with the same characteristics. Software Testing, depending on the Testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the software development methodology adopted. Different software development models will focus the test effort at different points in the development process. Newer development models, such as Agile, often employ test driven development and place an increased portion of the Testing in the hands of the developer, before it reaches a formal team of testers. In a more traditional model, most of the test execution occurs after the requirements have been defined and the coding process has been completed. Overview Testing can never completely identify all the defects within software. Instead, it furnishes a criticism or comparison that compares the state and behavior of the product against oracles—principles or mechanisms by which someone might recognize a problem. These
  • Book cover image for: Advanced Software Engineering
    The latest developments allow to generate applications straight from the knowledge systems (ontologies). This approach finds its justification in the use of semantic technologies with substitution of www data with verified production data. One business case for this development method is available at the finance ontology website. Software Testing Software Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. Software Testing can also be stated as the process of validating and verifying that a software program/application/product: ____________________ WORLD TECHNOLOGIES ____________________ 1. meets the business and technical requirements that guided its design and development; 2. works as expected; and 3. can be implemented with the same characteristics. Software Testing, depending on the Testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the software development methodology adopted. Different software development models will focus the test effort at different points in the development process. Newer development models, such as Agile, often employ test driven development and place an increased portion of the Testing in the hands of the developer, before it reaches a formal team of testers. In a more traditional model, most of the test execution occurs after the requirements have been defined and the coding process has been completed.
  • Book cover image for: Software Project Management
    eBook - PDF

    Software Project Management

    A Process-Driven Approach

    The Testing team also plays an important role in support function by running sanity tests daily on all production instances of the application. If any problems are encountered, they are reported to the support team and they fix it immediately. 13.12 Chapter Summary Software Testing is one of the most important activities carried out in software projects. It is here that the software product developed is verified and validated. If the product contains a large number of defects that could not be fixed before the release due date, then the product cannot be shipped by the shipping date. A software product containing too many defects is extremely costly in terms of providing support. It is most important to detect and remove most critical defects before shipping the product. Software Testing helps in achieving these goals. To make sure that the software product being made is of good quality, the work products from a very early stage (project initiation) should be tested. In fact, there should be a comprehensive quality assurance plan so that each and every work product is tested for defects that should be removed at the point of origin itself. For this, a verification and validation approach should be employed. Review Questions 13.1 What is independent verification and validation? 13.2 Why is software Testing necessary? 13.3 What are Testing types? 13.4 What activities are done in a software Testing phase/project? 13.5 What are the benefits of test automation? 13.6 Describe the defect life cycle. Software Testing ◾ 199 Recommended Readings 1. K. M. Gardner, A. R. Rush (1998) Cognitive Patterns: Problem-Solving Frameworks for Object Technology , Cambridge University Press, New York. 2. E. Dustin, J. Rashka, J. Paul (1999) Automated Software Testing: Introduction, Management, and Performance , Addison-Wesley, Boston, MA. 3. S. De Cesare, M. Lycett, R. Macredie (2005) Development of Component-Based Information Systems , M. E.
  • Book cover image for: Essentials of Software Testing
    In the longer term, Testing reduces the future costs, and builds customer confidence. Software Testing is integrated into many of the software development processes in use today. Approaches such as test driven development (TDD) use Testing to drive the 1.1 The Software Industry 3 code development. In this approach, the tests are developed (often with the assistance of the end-user or customer) before the code is written. 1.1.1 Software Testing and Quality Proper software Testing procedures reduce the risks associated with software devel- opment. Modern programs are often very complex, having millions of lines of code and multiple interactions with other software systems. And they often implement a solution that has been defined in very abstract terms, described as a vague set of requirements lacking in exactness and detail. Quality problems are further com- pounded by external pressures on developers from business owners, imposing strict deadlines and budgets to reduce both the time to market and associated production costs. These pressures can result in inadequate software Testing, leading to reduced quality. Poor quality leads to increased software failures, increased development costs, and increased delays in releasing software. More severe outcomes for a business can be a loss of reputation, leading to reduced market share, or even to legal claims. The international standard ISO/IEC 25010 4 defines a product quality model with eight quality characteristics (Table 1.1). Table 1.1 Software quality attributes in ISO/IEC 25010.
  • Book cover image for: Software Testing as a Service
    This does not mean that the programmers should not check that their code works before releasing it (which of course applies to any stage of Testing). System Testing ◾ —Black box–type Testing that is based on overall requirements specifications; it covers all combined parts of a system. In the hierarchy of Testing types, system Testing comes below user acceptance Testing. It does not cover integration Testing, which is done to ensure that the software product works well with other software products with which it has to be integrated. End-to-end Testing ◾ —Similar to system Testing, end-to-end Testing represents the “macro” end of the test scale; it involves Testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate. Sanity Testing or smoke Testing ◾ —Typically an initial Testing effort to deter-mine if a new software version is performing well enough to accept it for a major Testing effort. For example, if the new software is crashing systems every 5 minutes, bogging down systems to a crawl, or corrupting databases, the software may not be in a “sane” enough condition to warrant further test-ing in its current state. Regression Testing ◾ —ReTesting after fixes or modifications of the software or its environment. It can be difficult to determine how much reTesting is Kinds of Software Testing Projects ◾ 21 needed, especially near the end of the development cycle. Automated Testing tools can be especially useful for this type of Testing. Acceptance Testing ◾ —Final Testing based on specifications of the end user or cus-tomer or based on use by end users/customers over some limited period of time. Load Testing ◾ —Testing an application under heavy loads, such as Testing of a Web site under a range of loads to determine at what point the system’s response time degrades or fails.
  • Book cover image for: Introduction to Scientific and Technical Computing
    • Frank T. Willmore, Eric Jankowski, Coray Colina, Frank T. Willmore, Eric Jankowski, Coray Colina(Authors)
    • 2016(Publication Date)
    • CRC Press
      (Publisher)
    A student might look back fondly on a project because it received a high grade, even if a month later they might not be able to decipher the line-by-line details of their own code. On actual projects, when the humble program grows and becomes living software, this nonchalance is dangerous as mistakes don’t sim-ply disappear. This also manifests in research as a sort of “publishing mentality”: a perception that suc-cess in publishing a paper justifies any sloppy practices in the code it relies on. Within long-lived research projects, when code completed in a rush is left messy or buggy it also does not go away after the deadline. In fact, the researcher’s next project often needs to interact with said messy code. For individuals or teams working on projects built by these successive layers of deadline-driven development, eventually, more time is spent deciphering or fixing the mess than adding to new research. The single greatest tool to avoid this needless burden is the creation and upkeep of auto-mated tests. Here, we present the best practices and standards related to Testing code, developed over the last several decades of software engineering, and which are gaining similar impor-tance in scientific projects as their dependence on programmatic tools grows. 17.2 Why Test? It seems obvious that tests, first and foremost, contribute to a sense of correctness, that a program functions as it is intended to. Manual use of the program by a human can verify correctness after it has run, and while this is technically a form of feedback that could be considered a test of the program, the use of the term Testing in a programming context almost universally assumes automated tests. In cases where Testing is run entirely by a person, it is explicitly called out as manual Testing . For some, the promise of spending more time on active research and less time mired in a headache of indecipherable code written by a teammate or by one’s past self is motivation enough.
  • Book cover image for: Fundamentals of Software Testing
    • Bernard Homès(Author)
    • 2024(Publication Date)
    • Wiley-ISTE
      (Publisher)
    Testing Throughout the Software Life Cycle 69 Sample exit criteria for system tests: 1) no changes – design, code or characteristics – except to fix defects identified by system tests; 2) no unexpected stops, failures or termination of process have occurred on any server software or hardware during the last 3 weeks; 3) no client system became inoperative due to a failing update during system tests; 4) the test team successfully executed all planned tests on the software version that is candidate for release; 5) the development team corrected all the defects categorized as “must fix” by the sales, marketing and customer support teams; 6) test team checked that all items identified in the defect tracking management system have either been closed or postponed to a future version, and, where appropriate, have been verified by regression tests and confirmation tests; 7) test metrics indicate product stability and reliability, completion of all planned test and adequate coverage of all “critical” risks; 8) the project management team accepts that the product, as defined during the last round of system-level tests, will satisfy the reasonable expectations of a client; 9) the project management team implements an end-of-system test phase meeting, and accepts that the systems test be terminated. Tests at system-level focus on how the overall system works. It will thus process end-to-end transactions, from installation to operation of the system, user management and interactions with other systems or software. The system test will focus on functional and nonfunctional aspects of the software. It will also ensure that the software operates in an environment similar to the expected (production) environment, so that user acceptance is facilitated. Usually, the types of tests executed at system test level are based on specifications (black-box tests).
Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.