"Software Test"Ron Patton .
This book is a comprehensive introduction to the fundamentals of software testing, that is to read the book on software testing has a certain understanding, help me find a software testing work. In this process there are also some questions, here is mainly for self-study software testing since the understanding of the software to understand a little summary, and I do not understand the place to comb again.
What exactly does a software test engineer want to do?
The book gives a relatively complete answer: the goal of the software tester is to identify software defects as early as possible and to ensure that they are repaired.
During the interview, the interviewer told me that it was not to find bugs, but to help developers improve their products. Make sense, and then more agree with a forget where to see the saying: Software testing has the following two content. (probably means the following)
1) Verify that the required functionality of the requirements analysis document is complete.
2) Verify that the product is in line with the end user experience.
Second, the software development life cycle model
4 most common patterns
1. Big Bang Mode
Simple. There are few plans, schedules, and formal development processes, all of which are spent on developing software and writing code. Try to avoid testing in this mode.
2, side write edge change mode
Due to the lack of planning and documentation of the opening opportunity, the project team was able to produce urea. As a result, the edge-write side-change mode is ideal for small items that are intended to be made quickly and run out, such as prototype prototypes and demo programs.
3. Waterfall mode
Emphasize three points:
1, waterfall mode very emphasis on product definition
2, Waterfall mode each step is discrete, no cross.
3, Waterfall mode can not backtrack, once entered a step, it is necessary to complete the task of the step, to continue downward.
4, Spiral mode (a bit contains the above three modes)
The general idea of Spiral mode is that you don't have to define all the details at first. From a small start, define important features, try to implement these functions, receive customer feedback, and then move on to the next phase. Repeat the process until you get the final product.
Spiral mode each cycle consists of 6 steps:1) identify objectives, options and constraints;2) identify and mitigate risks;3 ) to assess the options; 4 ) Current phase development and testing; 5 ) plan the next phase; 6 ) Determine the approach to the next stage.
5, some companies adopt the model: Agile Software Development, rapid prototyping, extreme programming, evolutionary development and so on.
Third, the way of testing
1. Black box test (functional test)
2. White box test (access code, able to view and review)
can also be divided into:
1. Static Test--------------Test and audit
2. Dynamic testing--testing in the usual sense, i.e. using and running the software
In combination, the following test methods appear:
1. Static black box test--Test the product manual and find out the problem before the software is written (find out the fundamental problem)
2. Dynamic black box test--the method of testing the software without delving into the code details.
The method of dynamic black box test test case
1) equivalence class partitioning
2) Boundary value Analysis
3) data test
4) Status test
Failed status test
(1) competitive conditions testing and timing disorders
(2) Repeat test-whether there is a memory leak
Stress testing--limiting the software as much as necessary
Load test – Try to provide the conditions for it to play
5) passing tests and failure tests
Failure testing--a test case designed and executed purely to destroy software
Others: Do things like clumsy users, look for bugs where they've been found, think like hackers, experience, intuition, and hunches.
3. Static White-box test-check the details of the code through formal review and inspection
The process of identifying software defects, sometimes referred to as structured analysis, by carefully reviewing software design, architecture, and code in a structured manner without executing software
1) Formal review-the process of static white-box testing.
4 Basic elements for identifying issues, complying with rules, preparing and preparing reports .
(1) Peer review-the simplest, lowest-demanding
(2) walk-through-a more formalized next step than a colleague's review
(3) Inspection-the most formal type of review. The speaker is not the original programmer.
2) General Code Review Checklist
(1) Data reference error
(2) Data declaration error
(3) Calculation error
(4) Comparison error
(5) Control process error
(6) Sub-program parameter error
(7) Input / output error
(8) Other checks
4. Dynamic White-Box testing-use the information that is available to see what the code does and how it is implemented (how to do it) to determine what needs to be tested, what does not, and how to conduct the test. (also called structural Test Structural Testing)
Test Case methods:
1) sub-test
(1) Unit Test (module test)
(2) Integration testing
(3) System test
The above three incremental tests have two paths: bottom-up (bottom-up) and top-down (top-down)
The bottom-up test is to write a test-driven module that invokes the module being tested.
Top-up testing is a bit like a small-scale big bang test. (Write a small piece of code called stub to act as an interface module.) )
2) Data coverage
Data flow, sub-boundaries, equations and formulas, error enforcement
3) Code Overlay
Program statements and line of code overrides
Branch Overrides
Conditional override
It is often referred to as dynamic when there is no specified dynamic static.
Iv. Other Testing techniques
Configuration test
Compatibility test
Foreign Language Testing
Ease of Use testing
Document testing
Software security Testing
Website testing
V. Supplement to the Test
Automated testing, bug bombing,Beta Testing (common process for others to verify and confirm software)
Performance testing, special testing
Vi. Test Documentation
Test plan == "Testdesign Note = =" Test Case description = ="Test procedure Description
Some typical questions:
1.Q: What are the main stages of software testing?
For:
and the development process, the test process will go through unit testing, integration testing, system testing, acceptance testing four major stages.
Unit Testing: Unit testing is a test of correctness for software-designed units – program modules and even code snippets, usually done by developers.
Integration testing: Integration testing is the assembly of modules in accordance with the design requirements for testing, the main purpose is to identify interface-related issues. Because the product development team has to perform joint debugging before the product is submitted to the testing department, integration testing is done by the developer in most enterprises.
System test: The system test is carried out after the integration test, the purpose is to fully run the system, verify that each subsystem can work properly and complete the design requirements. It is mainly carried out by the testing department and is the largest and most important test of the testing department, which has a significant impact on the quality of the product.
Acceptance Test: Acceptance testing in the requirements phase of the "Requirements Specification" as the acceptance criteria, testing requirements to simulate the actual user's operating environment. For the actual project can be carried out together with the customer, for the product is the last system test. Test content is a comprehensive test of the functional modules, especially for documentation testing.
2. The professional quality that the Software Test engineer should have
In addition to "professional skills, industry knowledge", excellent test engineers must have the corresponding communication skills, organizational skills, practical skills and positive attitude. In addition, there should be some basic personal qualities: Focus, carefulness, patience, responsibility and self-confidence "five hearts"
3, software testing career development direction
The summary of software testing