Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guru99: Software Testing Tutorials for Beginners 笔记 #24

Open
nonocast opened this issue Mar 14, 2020 · 0 comments
Open

Guru99: Software Testing Tutorials for Beginners 笔记 #24

nonocast opened this issue Mar 14, 2020 · 0 comments

Comments

@nonocast
Copy link
Owner

@nonocast nonocast commented Mar 14, 2020

source: Software Testing Tutorials for Beginners

What is software testing?

Software testing is a process used to identify the correctness, completeness and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users.

软件测试是一个识别软件正确性、完整性和质量的过程,在发布出去之前,提前发现软件错误并修复的一系列活动。

In simple words, software testing is an activity to check that the software system is defect free.

defect free就是没有缺陷的意思。

Why software testing is important?

没好好测试搞不好会死人的。飞机失事,医疗设备放射,火箭发射等等。

7 testing principles

  • P1: Testing shows presence of defects
  • P2: Exhaustive testing is impossible
  • P3: Early Testing
  • P4: Defect Clustering
  • P5: Pesticide Paradox
  • P6: Testing is context dependent
  • P7: Absence of errors - fallacy

Software Development Life Cycle (SDLC)

Waterfall Method

  • Requirements: Gather as much information as possible about the details & specifications of the desired software from the client
  • Design: Plan the programing languages like java, php, .net; database like oracle, mysql etc which wold be suited for the project
  • Build: Actually code the software
  • Test: Test the software to verify that it is built as per the specifications given by the client
  • Maintenance

每个阶段称之为Stage, 瀑布肯定是不灵的,所以形成两种拆解,1是水平拆分: V模型,2是垂直拆分: 按迭代拆分形成小单元的Waterfall

V-Model of Testing

  • Requirement Analysis - User Acceptance testing
  • Functional Specifications - System Testing
  • High level Designs - Integration Testing
  • Detailed Designs / program specification - Unit Test
  • Code

测试模型需要匹配产品开发模型

  • Unit Test: 针对独立功能的黑盒测试,这里有别于代码的unit test
  • Integration Testing: 通过Stub来隔离测试
  • Acceptance Testing (验收测试)
    • 在客户实际环境中
    • Alpha Testing: A small set of employees of the client
    • Beta Testing: A small set of customers
  • Smoke / Sanity Testing: Quick and non-exhaustive. 强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。抓住主要矛盾,在有限的时间内先解决重要问题。Smoke的目的是确保系统可用(health),而不是为了defect free. 冒烟不通过就不用网下面测了,直接打回去。
  • Regression Testing: 确保系统某个部分的变化不会引起系统中其他地方的现有功能。就是差异比对,确保修改的内容只会改变当前问题域。
  • Non-Functional Testing: performance, usability , load, scalabilityetc.

Testing Types

  • Functional
    • Unit Testing
    • Integration Testing
    • Smoke / Sanity
    • User Acceptance
    • Localization
    • Globalization
    • Interoperability
  • Non-Functional
    • Performance
    • Endurance
    • Load
    • Volume
    • Scalability
  • Maintenance
    • Regression
    • Maintenance

Test Scenarios

  • Check Login
  • Check New Order
  • Check Open Order
  • Check Fax Order
  • Check Help
  • Check About

Test Case

一个Scenario包含一组具体的Test Cases

举例来说,

  • Test Scenario: "Check the Login Functionality" 对应的一组Test Case如下:
  1. Check system behavior when valid email id and password is entered.
  2. Check system behavior when invalid email id and valid password is entered.
  3. Check system behavior when valid email id and invalid password is entered.
  4. Check system behavior when invalid email id and invalid password is entered.
  5. Check system behavior when email id and password are left blank and Sign in entered.
  6. Check Forgot your password is working as expected
  7. Check system behavior when valid/invalid phone number and password is entered.
  8. Check system behavior when "Keep me signed" is checked

所以一个完整的Expected Result如下:

Test Scenario Test Case Pre Conditions Test Steps Test Data Expected Result Actual Result Pass/Fail
Check Login Functionality Check response on Entering valid Agent Name & Password Agent Name: guru99 Password: MERCURY Login must be successful Login Successful Pass

Traceability

  • Business Requirement: B-26
  • Functional Design: F-48
  • High Level Design: H-99
  • Detail Design: D-102
  • Test Cases: T-185, T-200

Defect Report (Bug Report)

  • Defect_ID
  • Defect Description
  • Version
  • Steps
  • Date Raised
  • Reference
  • Detected By
  • Status
  • Fixed by
  • Date closed
  • Severity (严重程度): describes the impact of the defect on the application
  • Priority: is related to defect fixing urgency.

比如公司名字错了,那么这个Severity是LOW, 但是Priority则是HIGH

Software Testing Life Cycle (STLC)

  • Requirement Analysis (Deliverables: Requirements Traceability Matrix (RTM) )
  • Test Planning (Deliverables: Test plan document)
  • Test Case Development (Deliverables: Test cases/scripts and Test data)
  • Test Environment Setup (Deliverables: Environment ready with test data set up.)
  • Test Execution (Deliverables: RTM with execution status, Test cases updated with results, Defect reports)
  • Test Cycle Closure: (Deliverables: Test Closure report, Test metrics)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.