Basic introduction of software testing

tags: software test  demand  defect  bug

1. What is software testing?

Software testing is to verify whether the software functionality to meet the needs of users.

It has two meanings: First, identify existing software bug Second, the process does not prove that software errors exist that verify that the software is correct.

With the definition of software testing and development continues to expand, but it is undeniable that the most basic activities of software testing is to find bug. The different definitions only indicates whether the purpose of testing and how to measure the test was successful.

2. The development process of software testing

Software debugging:

Software testing is accompanied by the generation of the software produced. Early software development process software are small, low complexity, chaotic software development process, rather arbitrary, meaning the test is relatively narrow, developers will test equivalent to "debug", aimed at correcting software already know the fault is often done by the developer's own work in this section. Rarely put to the test, the test intervene too late, often until the formation of the code, to test if the product has been basically completed.

Independent software testing (1950 ~):

1950s, is seen as a test of software defects discovered activities, began to open and debugging difference, always test after development, the lack of effective testing methods

Software testing is defined (1970):

1970s, software engineering idea is catching on, in 1972, Bill Hetzel organized the first software testing conference, in 1973, Bill Hetzel gives the first definition of software testing: "Testing is about building confidence that the program can be envisaged as expected run".

Glenford J.Myers proposed test is found that as many software errors, software testing is defined Myers: testing is to find errors and execution process of a program or system.

Myers of three important points:

1. The test is to prove that the procedure is wrong, not the certification procedures without error

2. A good test case is that it has found no errors found

3. A successful test is found wrong so far found no test

Software testing has become specialized discipline (1980 ~):

Early 1980s, software and IT industry has entered a great development,Software tends to large-scale, high complexity, software quality increasingly important. This time, some of the software testing basic theory and practical techniques began to form, and people began to design a variety of software development processes and management methods,Software development way gradually transition from chaotic development process to a structured development process, Structured analysis and design, structural evaluation, structured programming and testing of structural features.Test basic theory and practical techniques began to form, software testing as a software quality assurance is an important means. It will be the concept of "quality" into which the software test definition has changed, the test is not simply a wrong process of discovery, and will test as a software quality assurance (SQA) the main functions including content quality evaluation software, Bill Hetzel in "the complete Guide to software testing" (complete Guide of software testing) in his book: ".. in any kind of activity test evaluation of a program or system properties targeted test is a measure of software quality." this definition is still It is referenced. Software developers and testers began to sit together to explore software engineering and testing issues.

Software testing has been the industry standard (IEEE / ANSI),1983 IEEE Software Engineering terminology proposed definition of software under testThey are: "to run using manual or automatic means or measuring a system's software process, its purpose was to examine whether it meets specified requirements or clarify the difference between the expected results and the actual results." This definition clearly states: The purpose of software testing is to test the software system meets the requirements. It is no longer a one-time, and only later development activities, but the integration of the entire development process into one. Software testing has become a professional, you need to use special methods and tools, the need for specialized talent and expertise to bear.

Further development of software testing (1990 ~):

Further improve the testing theory and technology, the rapid development of test tools, greatly improve the automation of testingLet testers from the tedious and repetitive testing activities out of focus in a meaningful test design and other activities. Selection and promotion test tool more and more attention. In the software testing tools platform,Commercial software testing toolsHas many, such as capture / playback tools, Web testing tool, performance testing tools, test management tools, code testing tools, etc., which have strict copyright restrictions and the price is more expensive, but because of copyright restrictions and the price can not be free to use, some of the software testing tools for developers to test some tools provide a Beta test version for a limited number of users to use. Fortunately, inopenputsourceCode community there have been manySoftware Test Tools, It has been widely used and quite mature and improve.

Integration of development and testing (2000 ~):

3. The purpose of software testing

OBJECTIVE: To verify whether the software in question

Principles: user-centric, follow the norms of software testing, processes, standards and requirements

Meaning: Software testing is an important means of software quality assurance, software testing each stage of the software development process in depth, with limited development conditions, the maximum degree of final software products meet user needs.

4. The difference between testing and debugging

Different purposes:Test task is to find bugs in the program, debug task is to locate and solve the problem in the program.

Participate in different roles:Test is performed by testers and developers, black-box testing is mainly done by the testers, unit test is performed by the developer; testing completed by the developer.

Different stages of implementation:Testing throughout the software development life cycle, usually in the debugging stage of development.

5. What is the demand?

Demand: power users expect to meet the conditions and regulations or official documents, divided into user needs and software requirements.

IEEE requirements defined as:

(1) the user to solve a problem or achieve the desired target condition or authority (Capability).

(2) systems or system components to meet the contract, standards, specifications or other conditions or capabilities required for documents having a predetermined formal.

(3) a reflection of the above (1) or (2) documentation of the conditions or capabilities. It includes functional requirements and non-functional requirements, non-functional requirements for the design and implementation of proposed restrictions, such as performance requirements, quality standards, or design constraints.

User needs: can understand the need for the Party to put forward, or end-user products is necessary to complete the task. The demand is generally more simple.

Software requirements: call or functional requirements, the demand for software development must implement detailed description.

Software requirements are the fundamental basis for testing the testers.

6. What is the flaw?

Defect (bug):When the requirements specification and the presence and correct a mismatch between program and only when the requirements specification. If there are no requirements specification, places customer expectations prevail.

Defective elements:Version, the environment, the steps, expected results, actual results ......

It is generally understood, can be understood as a defect bug, but there are some differences between them, which we need the language skills.

Error (error), bug, defect (defect), failure (fault), abnormal (exception) the difference between:

An insect crawled into host this event caused a short circuit, the more we are called Bug, this term has been in use from computer hardware failure to a computer software failure. In general, the software will be error occurs is called the bug (bugs).

A bug caused a short circuit host the event, but the real defect is that the computer's design: the cooling vents where the host can install a layer of more dense metal mesh, that does not affect the heat, but also can prevent insects climb mainframe.

Thus, a form of defect bug only, and a plurality of defect is caused by a bug.

Note: approximate range of: (error || fault || exception)\subseteq bug \subseteq defect

Error, Fault Exception and the difference between:These three general represent some degree of error occurs in the software. Is generally believed, Error is the general level of error that after more stringent amendments will soon be resolved. The Fault is considered to be a fatal mistake, it is much serious than Error, and in a short time, it is not easy to solve. Exception is generally considered to be some anomalies branch program can have, but these exceptions have not been intercepted for processing.

Failure (failure): If you encounter a bug in the implementation process, is likely to lead to failure of the system.

Accident (incident): a bug caused serious consequences, is an accident.

Summary: In general, for everyone to be understood as a defect bug. Define different ways just to determine the extent of the problem.

7.bug level

The level is divided into general bug: Crash, serious, generally, minor. The definition of each company are not the same bug, before defining the level required to view the company's specifications.

Blocker (crash):
problems hinder the development or testing work; cause system crashes, freezes, infinite loop, resulting in data loss database, the database connection error, major loss of function, lack of basic modules and other issues. Such as: Code error, infinite loop, a database deadlock, important level menu functions can not be used, etc. (This problem occurs in fewer tests, the event should immediately abort the current version of the test).
Critical (serious):
partial loss of main functions, database stores call error, loss of user data, a menu can not be used but does not affect other functions of the test. Functional design and demand serious discrepancies, the module can not start or call a program restart, automatic withdrawal, call the conflict between the associated procedures, security, stability and so on. Such as: display data stored in the database software errors, loss of function required by the user, the program interface error, numerical statistical errors (the level of problem without affecting other functional tests can continue the test version).
Major (general):
function is not fully realized, but does not affect the use of a flaw but does not affect the stability of the system menu. Such as: operating for a long time, a long time queries, format error, boundary condition error, remove no confirmation box (there is a maximum of the actual test questions) database table fields, and so too
Minor (Secondary):
interface, performance deficiencies, recommending kind of problem does not affect the function of performing the operation, performance can be optimized programs. Such as: typos, non-standard interface format, the page displays overlap, should not be displayed to hide, description is not clear, prompt loss, irregular arrangement of text, the cursor position is incorrect, the user experience of feeling bad, you can optimize the performance of programs (more testing such problems in the early stages, a low priority; appear in less post-test, should be in time)
 

8.bug life cycle

Testers should track the entire life cycle of a bug, all the state from new to closed.

Description:

New: bug newfound ACCREDITED decide whether to make changes to the assigned developers.

Open: confirmed that bug, and that need to be modified, assigned to the respective developers.

Fixed: the developers to modify identified as modification status, pending verification testers regression testing.

Rejected: If you think that is not a bug, it refused to amend.

Delay: If you think no need to modify or not modify the time being, was postponed to modify.

Closed: regression testing to verify bug has been tested by state personnel changes, then close the bug.

Reopen: If validated bug persists, you need to re-open the bug, developers re-edit.

Invalid bug is: open - closed, open - rejected - closed

FIG installed for bug state:

9. software testers should have the quality

Mindset: to have positive thinking, reverse thinking, divergent thinking (developed to build a house, Chai Fangzi test), to explore a number of answers

Interests: Passion for testing, large interest, like study

Character: treat unknown curious, love to explore, things have a sense of accomplishment, the test has a certain sensitivity, not impetuous, patience, good suspect, with critical thinking (clear - to prepare, to the point - a deep, have meaning, logically - a just, comprehensive)

Capacity: fast learning ability, communication skills, writing ability, ability to develop

Sense of responsibility and pressure: testing is often the last person test product, test effectiveness is difficult to measure, test case execution, how many bug can not say whether the number of products can give users. Therefore, the responsibility is one of the most important tests essential qualities.

Pressures from developers, users, superiors, their pressure. Pressure testers larger than expected.

Intelligent Recommendation

Introduction to Software Testing XML

1. What is XML? : XML stands for Extensible Markup Language XML is a markup statement, very similar to HTML XML tags are not predefined, you need to define tags yourself 2. The difference between XML ...

Introduction to Software Testing II

Testing starts from known conditions, uses a predefined process, and has predictable results; debugging starts from unknown conditions, and the ending process may not be predictable Tests can be plann...

Introduction to software testing 3

1. Software life cycle model 1. Waterfall model Waterfall model: the earliest proposed process model of software development. . Existing problems:. ① Emphasize the strict implementation of chronologic...

Basic theory of software testing

software test table of Contents Skills that testers should have Basic knowledge 1.1 Software 1.2 What is software testing? 1.3 Purpose of software testing 1.4 Definition of software testing 1.5 Princi...

Basic concepts of software testing

  References "Software Testing Technology" Second Edition Table 1 Five test types   unit test Integration Testing Confirmation test System test Acceptance Test Remarks time 1 2 3 4...

More Recommendation

Software Testing - Basic Concepts

1. What is software testing? software testA process used to facilitate the identification of the correctness, completeness, safety, and quality of software. In general, it is the discovery of software...

Software testing basic knowledge

1, software testing purposes: Software features and requirements whether the complete implementation as much as possible and early discovery of software bug, the software to properly assess, prevent t...

Software testing basic value

According to "enhance the value of software testing road," a book compiled software testing basic part of the value, mainly in the form of pictures provided. Related testers can help clear t...

Software testing basic summary

1. What is software testing? Use manual or automatic means toRun or measurementProcess software system totestOriginal system meetsRequirements ofAnd to identify andexpected resultsdifference between. ...

Basic model of software testing

Waterfall model 1. It is a kind of linear model, which is the basis of other models, very important 2. Execute once in each stage, and develop software in linear order 1. The entry point of the test: ...

Copyright  DMCA © 2018-2026 - All Rights Reserved - www.programmersought.com  User Notice

Top