Tải bản đầy đủ (.docx) (3 trang)

Introduction to Software

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (125.79 KB, 3 trang )

Requirement Study
Low Level Design
High Level Design
Unit Testing Integration Testing
System Testing
User Acceptance Testing
Production Verification Testing
SDLC - STLC
1 Introduction to Software
1 Evolution of the Software Testing discipline
The effective functioning of modern systems depends on our ability to produce
software in a cost-effective way. The term software engineering was first used at a
1968 NATO workshop in West Germany. It focused on the growing software crisis!
Thus we see that the software crisis on quality, reliability, high costs etc. started way
back when most of today’s software testers were not even born!
The attitude towards Software Testing underwent a major positive change in the recent years. In the
1950’s when Machine languages were used, testing is nothing but debugging. When in the 1960’s,
compilers were developed, testing started to be considered a separate activity from debugging. In the
1970’s when the software engineering concepts were introduced, software testing began to evolve as a
technical discipline. Over the last two decades there has been an increased focus on better, faster and
cost-effective software. Also there has been a growing interest in software safety, protection and
security and hence an increased acceptance of testing as a technical discipline and also a career
choice!.
Now to answer, “What is Testing?” we can go by the famous definition of Myers, which says, “Testing is
the process of executing a program with the intent of finding errors”
2 The Testing process and the Software Testing Life Cycle
Every testing project has to follow the waterfall model of the testing process.
The waterfall model is as given below
1.Test Strategy & Planning
2.Test Design
3.Test Environment setup


4.Test Execution
5.Defect Analysis & Tracking
6.Final Reporting
According to the respective projects, the scope of testing can be tailored, but the process mentioned
above is common to any testing activity.
Software Testing has been accepted as a separate discipline to the extent that there is a separate life
cycle for the testing activity. Involving software testing in all phases of the software development life
cycle has become a necessity as part of the software quality assurance process. Right from the
Requirements study till the implementation, there needs to be testing done on every phase. The V-
Model of the Software Testing Life Cycle along with the Software Development Life cycle given below
indicates the various phases or levels of testing.
3 Broad Categories of Testing
Based on the V-Model mentioned above, we see that there are two categories of
testing activities that can be done on software, namely,
 Static Testing
 Dynamic Testing
The kind of verification we do on the software work products before the process of compilation and
creation of an executable is more of Requirement review, design review, code review, walkthrough and
audits. This type of testing is called Static Testing. When we test the software by executing and
comparing the actual & expected results, it is called Dynamic Testing
4 Widely employed Types of Testing
From the V-model, we see that are various levels or phases of testing, namely, Unit testing, Integration
testing, System testing, User Acceptance testing etc.
Let us see a brief definition on the widely employed types of testing.
Unit Testing: The testing done to a unit or to a smallest piece of software. Done to verify if it satisfies
its functional specification or its intended design structure.
Integration Testing: Testing which takes place as sub elements are combined (i.e., integrated) to form
higher-level elements
Regression Testing: Selective re-testing of a system to verify the modification (bug fixes) have not
caused unintended effects and that system still complies with its specified requirements

System Testing : Testing the software for the required specifications on the intended hardware
Acceptance Testing: Formal testing conducted to determine whether or not a system satisfies its
acceptance criteria, which enables a customer to determine whether to accept the system or not.
Performance Testing: To evaluate the time taken or response time of the system to perform it’s
required functions in comparison
Stress Testing: To evaluate a system beyond the limits of the specified requirements or system
resources (such as disk space, memory, processor utilization) to ensure the system do not break
unexpectedly
Load Testing: Load Testing, a subset of stress testing, verifies that a web site can handle a particular
number of concurrent users while maintaining acceptable response times
Alpha Testing: Testing of a software product or system conducted at the developer’s site by the
customer
Beta Testing: Testing conducted at one or more customer sites by the end user of a delivered software
product system.
5 The Testing Techniques
To perform these types of testing, there are two widely used testing techniques. The above said testing
types are performed based on the following testing techniques.
Black-Box testing technique:
This technique is used for testing based solely on analysis of requirements (specification, user
documentation.). Also known as functional testing.
White-Box testing technique:
This technique us used for testing based on analysis of internal logic (design, code, etc.)(But
expected results still come requirements). Also known as Structural testing.
These topics will be elaborated in the coming chapters
6 Chapter Summary
This chapter covered the Introduction and basics of software testing mentioning about
 Evolution of Software Testing
 The Testing process and lifecycle
 Broad categories of testing
 Widely employed Types of Testing

 The Testing Techniques

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×