欢迎来到留学生英语论文网

当前位置:首页 > 论文范文 > Computing

Methods of Software Testing

发布时间:2017-02-18
该论文是我们的学员投稿,并非我们专家级的写作水平!如果你有论文作业写作指导需求请联系我们的客服人员

Testing is an important phase in the development life cycle of the product; this is the phase where the error remaining from all the phases will be detected. Hence testing performs a vertical role for quality assurance and ensuring the reliability of the software. During the testing, the program to be tested will be executed with the set of test cases and the output for the test cases will be evaluated to determine whether the program is performing as expected. Errors will be found and corrected in the record for the future reference. Thus the series of testing will be performed on the system before it was ready for implementation. System testing is an integral part of the software development life cycle (SDLC). Effectively and efficiently testing a piece of code is equally important.

Testing Methodology

System Testing Methods There is different types of testing methods or techniques as part of the software testing process. I have enlisted a few of them below.

  • White box testing
  • Black box testing
  • Usability testing
  • Software stress testing

White Box testing

White box testing strategy deals with the internal logic and structure of the code. White box testing is also called as glass, structural, open box or clears box testing. The tests written based on the white box testing strategy incorporate coverage of the code written, branches, paths, statements and internal logic of the code etc. In order to implement white box testing, the tester has to deal with the code and hence is needed to possess knowledge of coding and logic i.e. internal working of the code. White box test also needs the tester to look into the code and find out which unit/statement/chunk of the code is malfunctioning.

Black Box Testing

Black Box Testing is not a type of testing; it instead is a testing strategy, which does not need any knowledge of internal design or code etc. As the name "black box" suggests, no knowledge of internal logic or code structure is required. The types of testing under this strategy are totally based/focused on the testing for requirements and functionality of the work product/software application. Black box testing is sometimes also called as "Opaque Testing", "Functional/Behavioral Testing" and "Closed Box Testing".

In order to implement Black Box Testing Strategy, the tester is needed to be thorough with the requirement specifications of the system and as a user, should know, how the system should behave in response to the particular action. Various testing types that fall under the Black Box Testing strategy are: functional testing, stress testing, recovery testing, volume testing, User Acceptance Testing (also known as UAT), system testing, Sanity or Smoke testing, load testing, Usability testing, Exploratory testing, ad-hoc testing, alpha testing, beta testing etc.

Usability testing

Usability testing is carried out in order to find out if there is any change needs to be carried out in the developed system (may it be design or any specific procedural or programmatic change) in order to make it more and more user friendly so that the intended/end user who is ultimately going to buy and use it receives the system which he can understand and use it with utmost ease. Any changes suggested by the tester at the time of usability testing, are the most crucial points that can change the stand of the system in intended/end user’s view

Usability testing measures various aspects such as: How much time the tester/user and system took to complete basic flow? How much time people take to understand the system (per object) and how many mistakes they make while performing any process/flow of operation? How fast the user becomes familiar with the system and how fast he/she can recall the system’s functions? And the most important: how people feel when they are using the system? Over the time period, many people have formulated various measures and models for performing usability testing. Any of the models can be used to perform the test.

Software Stress Testing

Stress testing has different meaning for different industries where it is used. For a financial industry/sector, stress testing means a process of testing financial instruments to find out their robustness and level of accuracy they can maintain under extreme conditions such as sudden or continuous market crash at a certain level, sudden or extreme change in various parameters, for example interest rates, repo and reverse repo used in the financial sector, sudden rise or decline in the price of materials that can affect financial projections etc.

8.1 Testing Objectives

• To ensure to the developer and customer that the solution meets the business requirements

• To discover faults or defects in the software where the behavior of the software is incorrect, undesirable or does not confirm to its specification. Defect testing is concerned with rooting out all kinds of undesirable system behavior such as system crashes, incorrect computations and data corruption.

• To determining user acceptability

• To ensuring that a system is ready for use; to gaining confidence that it works

• Evaluating the capabilities of a system to show that a system performs as intended; and verifying documentation.

8.2 Unit Testing

Unit testing involves individually testing unit of code separately to make sure that it works on its own, independent of the other units. Unit testing is essentially a set of path, test performed to examine the several different paths through the modules. Unit testing is usually an automated process and performed within the programmers IDE. Unit testing is an action used to validate that separate units of source code remains working properly. Smart Control for IoT using NFC Based Applications Example: - A function, method, Loop or statement in program is working fine. It is executed by the Developer.

8.3 Integration Testing

The testing of combined parts of an application to determine if they function correctly together is Integration testing. Integration tests are designed to test integrated software components to determine if they actually run as one program. The objective is to take unit-tested module and build a program structure. All the modules are combined and tested as a whole. There are two methods of doing Integration.

• Top down Integration: This method is an incremental approach to the construction of program structure. Modules are integrated by moving downward, beginning with the main program module. It is nothing but, checking the communication between main module to the sub module. For example if A, B and C are 3 modules. Assume A is the main module, B and C are the sub modules. Checking the communication from main module A to sub modules B and C is Top Down Approach. Lower level modules are normally simulated by stubs which mimic functionality of lower level modules. As lower level code is added, stubs are replaced with actual components.

• Bottom up Integration: This is an approach to integrated testing where the lowest level components are tested first, then used to facilitate the testing of higher level components. It is checking the communication between sub module to the main module. Bottom up integration also uses test drivers to drive and pass appropriate data to the lower level modules. As and when code for higher module gets ready, these drivers are replaced with the actual module. In this approach, lower level modules are tested extensively thus make sure that highest used module is tested properly. The process is repeated until the component at the top of the hierarchy is tested. This approach is helpful only when all or most of the modules of the same development level are ready. This method also helps to determine the levels of software developed and makes it easier to report testing progress in the form of a percentage.

The following integration testing table shows the functions that were combined into different classes and the class as a whole tested for its functionality. This is important to check for error-free interaction between various classes, and maintenance of data integrity.

上一篇:返回列表 下一篇:Introduction to Web Services