Professional Documents
Culture Documents
Technology
Chapter 1 Introduction
李鹏飞( Pengfei
Li )
pengfei.li@hbut.edu.cn
Chapter 1 Introduction
Why do we need
software testing
1.1 Necessity
https://www.bilibili.com/video/BV1YK4y1A7Jc?
from=search&seid=16393811987439043206&spm_id_from=333.337.0.0
More tragedies
http://news.163.com/07/1217/01/3VSLHQ4E0
0011229.html
08 Olympic Games ticketing
discipline
1.3.2 Arguments
1.3.3 Definitions
• Check ?
• Detect error ?
• Verification ?
• Validation ?
• Correction proof ?
• Quality evaluation ?
• Quality Assurance ?
Formation of the discipline
Forward -
Verify that the software works normal
Backward -
Assume the software is defected
Application of technical
methods
Implementation of a formal
technical review
Software test
Standard implementation
Modified Control
Measurement
Record
SQA vs testing
Test vs. SQA
SQA is a management
Testing is a technique.
1.6 Test Driven Development
classifications
phases
Acceptance Test
System test
Integration test
Unit test
methods
functional test
Robustness Test White- Black-
performance test box test box test
Accessibility testing
Security test
reliability test
objectives
History
Debugging-oriented era
1950’s
Demonstration-oriented era
1957-1978
Destruction-oriented era
1979-1982
Evaluation-oriented era
1983-1987
Prevention-oriented era
1988-2000
History
In 1946, when Hopper was released from active duty, she joined the Harvard Faculty at
the Computation Laboratory where she continued her work on the Mark II and Mark III.
Operators traced an error in the Mark II to a moth trapped in a relay, coining the term
bug. This bug was carefully removed and taped to the log book. Stemming from the first
bug, today we call errors or glitches in a program a bug
History
The early 2000s saw the rise of new concepts of testing like test-
driven development (TDD) and behavioural-driven development
(BDD). We’ll be highlighting these in upcoming articles.
History
The year 2004 saw a major revolution in testing, with the advent of
automation testing tools like Selenium. Likewise, API testing using
tools like SOAP UI marked another turning point in the history of
testing. These will be examined in detail in upcoming blogs.
History
The role of a software test engineer is to coordinate the process for analyzing
software programs. This process will involve creating and implementing testing
methods, recording the test results, and providing recommendations to improve
software programs based on the results. As a software test engineer, you can work
for a variety of companies. If you work for a government agency or contractor, you
may need to obtain a security clearance level.
Your job duties as a software test engineer may include collaborating with
organizational management to streamline operations, utilizing programming
languages to create testing scripts, and documenting software testing procedures.
You could be tasked with evaluating your organization's technical infrastructure for
security issues. You could also be tasked with working with team members to
develop software programs that meet business needs. As a software test engineer,
you may also be responsible for interfacing with end users to ascertain areas of
improvement, such as cost reduction solutions and automation solutions.
Microsoft Software Test Engineer
Responsibilities
Design/leverage existing automation harness to automate
performance/large-scale test scenarios which involves integrating different
tools.
Develop tools/scripts to facilitate test execution, data collection and
processing from our 4G/5G cores as well as tools.
Process data and generate automated reports and develop alert system.
Run/automate Performance/system test scenarios using different tools to
test the performance/reliability of our 4G/5G wireless cores.
Microsoft Software Test Engineer
Qualifications
Ten or more years of experience in Software development & Test or Test tool
development with proven track record of validating high quality products.
Excellent experience developing software testing harness/tools for Linux
environments.
Development experience in Python as well as any other scripting language
(iTCL, R, Expect)
Strong knowledge with testing embedded systems with focus on wireless cores
4G/5G is preferred (SGW, PGW, SMF, UPF, NRF)
Experience building dashboard visualizations, automated reporting and alerting.
Hands-on experience with cloud native architecture, Kubernetes, Docker,
Grafana, Prometheus is highly preferred.
Experience in using public cloud such as AZURE or AWS is preferred.
Experience in mining data from different sources.
Passion for problem solving and data exploration.
Strong interpersonal and communication skills.
Bachelor’s degree in electrical engineering / computer science or equivalent.
Career
System test
Function test
Software Test
Automated test
Engineer
Test development
Test platform
Career
System test
Function test
Automated test
Test development
Test platform
Reference
TextBook:
朱少民 . 软件测试方法和技术(第三版) . 北京:清华大学出版社 , 2014.
Reference:
Bill Hetzel.The Complete Guide to Software Testing,1993.
Ron Patton.TheSoftware Testing (2nd Edition). SAMS Publishing, 2006.
James A Whittaker, Jason Arbon, Jeff Carollo. How Google Tests Software.
2012
Rex Black. Managing the Testing Process (2nd Edition). Jihn Wiley & Sons.
Inc., 2002
Q&A
Thank you