Software Testing Basics knowledge

Software Testing Basics knowledge

First, the industry outlook

  • Foreword

Spread between programmers with this sentence: Some people like to create the world, they do development engineers, some people like to test it, so they did a test engineer.

  • What is software testing

Software testing is the use of manual tools or test the product functionality and performance testing according to the test program and process, simply means that the software do "quality control."

  • The importance of software testing

bug economic losses:

Software bug caused devastating damage on our lives, the work will be. It is reported that annual software bug makes the market economy has brought loss of nearly $ 60 billion!

  • The reason the establishment of software testing division
    • Software testing can find software defects exist in advance
    • Social division of labor is getting smaller - and more sophisticated software testing requirements
    • The person responsible, responsibility

Second, the test basis

2.1 What is software testing

Operating program (App, .exe installation files, web pages, etc.) under the conditions specified, to discover an error, a process of software quality assessment.

2.2 The purpose of software testing

I want with minimal manpower, material resources and time to find out all kinds of potential software errors and defects and improve software quality by correcting various errors and defects, to avoid risks after the software release due to potential software defects and error caused by and with to business risks. (Note that the answer to the question, is often confused with the definition of software testing)

2.3 definitions, software testing

The use of manual and automatic means to run or test a system, its purpose was to examine whether it meets specified requirements or clarify the difference between the expected results and the actual results.

2.4, principles of software testing

  1. All tests should be traced back to user needs (video site, maximize click)
  2. It should be "as soon as possible and continue to test" as a motto
  3. Testing should be done by an independent professional software testing organizations
  4. Pareto principle, the test found errors in 80% probably originated in 20% of the module
  5. When designing test cases (test what? How measured?), You should consider a variety of situations
  6. The results of the test error must have a confirmation of a process (described defect reports)
  7. Develop rigorous testing program
  8. It is impossible to fully test, the test needs to be terminated
  9. Note the relevance of regression testing
  10. Proper preservation of all test documentation

2.5, regression testing

After modification refers to the old code, re-test to confirm the modification does not introduce new bugs or cause other code to generate an error.

Third, software engineering and testing model

3.1, the software development process model

In a few decades the practice of software development, people have come up a lot of software development models used to describe and represent a complex development process, such as: waterfall model, rapid prototyping model, spiral model.

Software testing and software development models are closely linked, as a tester, you should fully understand the software development model in order to pinpoint their position in which, in order to play to their value.

3.1.1, the waterfall model

  • The waterfall model is a linear model, plays an important role in all models, is a basis for all other models

  • Each implementation phase once, linear order for software development

  • Test entry point:

    After the testing phase in a software implementation, must remain in code completion after sufficient time for testing activities. Otherwise, the test is not sufficient, a lot of problems to be exposed until late in the project.

  • Advantages and disadvantages of the waterfall model

    • advantage:
      • Various stages of development clearer
      • Emphasis on early planning and needs assessment
      • Stable demand for product development
    • Disadvantages:
      • It depends on the needs of the early investigation, not suited to the needs of change
      • Single process irreversible
      • Risks are often only revealed until late, lose the opportunity to correct as soon as possible
      • Problems later in the project began to be exposed
      • In front of undiscovered errors will be passed and spread to the back of the stage, it could lead to project failure
    • Improvement
      • Follow the waterfall model of linear thinking, refine various stages between the stage some of the important concerns of incorporation thinking iteration

3.1.2 Software Testing & Software Engineering

  • Closely related to software testing and software engineering, software engineering, software testing is an integral part of the composition.
  • In software engineering, project management, quality management has been standardized business applications, software testing will be carried out more smoothly, play software testing value will be greater.
  • To focus on the relationship between software engineering, quality management, and configuration management and software testing; in different development model, how to conduct software testing.

3.2, the test model

  • With the management and development of the testing process, testers through a lot of practice, which summed up a lot of test models, such as the common model V, W model, H model. These models are closely integrated with the development, testing activities on the abstract, it has become an important reference for the testing process management.

3.2.1, V model

  • V model is a test model of the most significant representatives, first in the late 1980s, proposed by Paul Rook, published by the British National Computer Center in the literature, aimed at improving the efficiency and effectiveness of software development.
  • Prior to the introduction of V model, people usually put in the testing process as needs analysis, after a phase of outline design, detailed design, coding completed, even though there have been testing the project cycle will take half the time, but most people think just finishing a test, V model launched at this time, is to change the widely recognized industry before.
  • V model itself is the waterfall model of software development variant, it reflects the relationship test analysis and design activities.
  • V model tests indicate different stages of the present process itself, from left to right, describes the development stage between the process and the testing process correspondence.

  • Detailed description of the model V
    • demand analysis
      • User needs, business needs, requirements specification
    • Outline design
      • System Architecture (BS CS), module division (home page, list page, details page, etc.), the interface between the module and the module (click the Home button to open the list page, click on the List button to open the details page)
    • detailed design
      • Logic and methods of internal module implemented (eg: QQ - click the friends head - chat page - typing - send - can view content sent)
    • coding
      • To achieve the above design
    • unit test
      • Detecting whether the code symbol development detailed design requirements (for software design is the smallest unit - test program module)
    • Integration Testing
      • Detecting whether previously tested the various components can be well bonded together (that is, the test unit tests are assembled together)
    • System test
      • Detecting whether the product has been integrated symbology specification requirements (overall flow of the software test)
    • Acceptance Test
      • Detecting whether the product symbol needs of end users
  • V model's strengths and weaknesses
    • advantage
      • That includes the development of V model underlying test also contains a high-level test:
        • The underlying test: test the quality of the test source code, such as: unit testing
        • Require inspection of the entire system, such as:: top Test System Test
      • V model clearly identifies the software development stage.
      • V model with top-down stepwise refinement manner throughout the development process is divided into different stages, each stage of the work are very clear, thus facilitating control of the development process. When all phases are completed, the software development process ends there.
    • Shortcoming
      • V model is a major drawback is its own sequential caused. To the testing phase, the program has been completed, an error has generated a lot of early mistakes discovered until the testing phase, can not even find, are often unable to modify.
      • While the actual development process, requirements phase is difficult to completely clear the needs of users down, therefore, when demand changes will lead to the stage repeatedly, and must be repeated requirements, design, coding, testing and other processes, very large amount of rework The model flexibility is relatively low.
    • Improvement
      • Carry out minor iterative, agile development

3.2.2, W model (model V-bis)

  • IEEE std1012-1998 principle "software verification and validation (V & V)" of the proposed activities should have tested the software requirements and design phases, and put forward the corresponding principle
  • W model proposed by Evolutif company: the development of a V, a test V, W model portfolio
  • Along with testing the entire software development cycle, and the test object is not just procedures, requirements and design also have to test.

  • The advantages and disadvantages W model
    • advantage
      • With the emphasis on the development of testing throughout the software development cycle, and the test object is not just procedures, requirements, and outline design is also to be tested
      • Earlier access test, the defect can be found early development, it can repair the defect with much lower costs
      • The same is phased work, easy to control during the project
    • Shortcoming
      • It relies on a linear relationship between the tandem of software development and software testing remains, still can not support the iterative, spontaneity and change adjustment demand
      • For many current projects, there is no document in the process of implementation, the basic model can not be applied W
      • To use high technical complexity, design and testing requirements for demanding, in practice it is difficult

Fourth, the classification of software testing

  • Black box testing (black-box testing)

    • Also known as data-driven testing, without considering the internal structure and internal characteristics of the program, focusing on the functional requirements of software testing, concerned only with input and output data software.

    • Black box testing can be found in the following categories error

      • Not function or functions missing
      • Interface error
      • Database access or processing errors
      • Performance issues
    • The advantages of black box testing

      • Testers not need to know the implementation details, including specific programming language (no programming experience can design test cases)
      • Testers and programmers are independent of each other (black box test case design and how to program implementation independent)
      • From a user perspective tested, accepted and easily understood
      • Help to expose any inconsistencies or divergent and specifications
    • Black box shortcomings

      • Internal specific parts of the program can not be tested
      • If the code is not executed program can not be found
      • You can not do exhaustive testing
    • Classification of black box

      • Functional testing (function testing) - is a black box on the one hand, it checks the actual function of the software meets the needs of users

        • Test logic function (function testing)
        • Test interface (UI testing)
        • Usability testing (usability testing)
        • Installation and testing (installation testing)
        • Compatibility Test (compatibility testing)
      • Performance testing (performance testing) - is a high-end software testing, performance testing engineers and white-box testing engineer comparable treatment, usually what we call senior software test engineer generally refers to the performance test engineers or white box

        • Time Performance (transaction response time, etc.)

        • Performance space (system resource consumption)

        • General Performance Test

        • Stability Test

        • Load testing: to determine under various workloads, changes in the performance indicators of the system through load testing

        • Stress Test: a system by identifying bottlenecks or just unacceptable performance points, to get the maximum level of service provided by the system

  • White box (white-box testing)

    • Refers opened the box, and to study the source code of the program inside the structure.

    • In software companies, often by way of a combination of black-box testing white box &

      • Overall functionality and performance of the software black box testing

      • Software source code using white box

  • Gray box testing

    • A test is between between the white box and black box testing (see both function and look at the code), to ensure focus black box can in turn control the internal structure of the white box, but do not go for the internal program functions and detailed understanding of the operation, gray box testing combines elements of white box and black box testing.
  • Static testing (static testing)
    • It means not actually run the software under test, but only static inspection program code, error process interface or documentation that may exist.
  • Dynamic testing (dynamic testing)
    • Refers to the actual operation of the program under test, the appropriate test data input, the process checks the actual output and the expected results of compatibility.
  • Smoke test
    • Equivalent to the measured overall project process and the process as long as no problem, smoke testing is equivalent to the adoption of

  • Random test (exploratory testing)

    • Random testing mainly on some of the important functions of the software under test retest, including those currently testing test cases not covered by the section. In addition, software updates and new features to increase the focus on testing. Focusing on some special cases, special use of the environment, concurrency checks, especially for major bug found in previous testing, re-testing, regression testing can be combined (Regressive testing) carried out together.

  • Acceptance Test

    • α test
      • Alpha is a beta version, which is now called CB, this version indicates that the software is only a preliminary finished product, usually only exchange in-house software developers, have released a fraction to a professional testers. In general, bug of the version of the software is more, the average user is best not to install.
    • β test
      • Beta is a beta version, it is open to all users of the beta version. The version with respect to the α version has been greatly improved, eliminating a serious mistake, but still there were some shortcomings, we need to go through a large-scale release tests to further eliminate. This version is usually released by the Free Software, users can download from the relevant site. By some professional enthusiasts test, the results back to the developers, developers have again targeted modification. This version is not suitable for general users to install
    • γ test
      • gamma version, refers to the software version of the official release candidate version. This version is already quite mature, with the official version of the upcoming release of almost the same, a candidate version of the official release.
    • Several versions of the software before the launch of the official version, need someone to test it, see if it is a problem. In-house development of the software company by the company's internal testing staff called: Alpha test. Alpha testing to see if there is no major loss of function or system error, after Alpha testing is generally not a big problem, and then showed the software user test called: Beta testing, mainly to see the appearance of the user of the software, easy to use Reaction. When so much of the final test version of the product on the one hand to meet the needs of the user as much as possible, it also minimizes the software bug, then did some modifications, became the official release candidate version, called Gamma (now called RC -Release Candidate).
    • In simple terms, Alpha test is a test to test in the development environment, Beta testing is testing in a real environment, or internal staff testing in a simulated real environment.

Guess you like

Origin www.cnblogs.com/duncan1863/p/11409903.html