Functional testing. Load Software Testing

Functional testing

Functional testing - It is testing software in order to verify the realizability of functional requirements, that is, the ability of software under certain conditions to solve the tasks you need. Functional requirements determine what exactly does software, what tasks it decides.

Functional requirements include:

  • Functional suitability (eng. suitability).
  • Accuracy (eng. accuracy.).
  • The ability to interact (eng. interoperability.).
  • Compliance with standards and rules (eng. compliance.).
  • Protection (eng. security).

Literature

  • Lisa Crispin, Janet Gregory Flexible Testing: Practical guide for testers and flexible commands \u003d Agile Testing: A Practical Guide for Testers and Agile Teams. - m .: "Williams", 2010. - 464 p. - (Addison-Wesley Signature Series). - 1000 copies. - ISBN 978-5-8459-1625-9,

Wikimedia Foundation. 2010.

Watch what is "Function Testing" in other dictionaries:

    functional testing - - [L.G.Sumenko. English Russian dictionary on information technology. M.: GP Tsniis, 2003.] Themes Information Technologies In general En Functional Testing ...

    testing - Test events and functional testing (the latter is not related to sports competitions) are key components to ensure the readiness of the games and the only real opportunity to check the developed Oko ... ... ... Technical translator directory

    Software is software testing (software) performed on the full, integrated system, in order to verify the system compliance with the source requirements. System testing refers to the methods of testing black ... ... Wikipedia

    Analyst - (Analyst) specialist, employee of the company, bank information about the activities of analysts, financial and business analyst, analytics of the currency and stock market Contents \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e Analyst This, Oredeliya History Analytics appeared when ... ... Encyclopedia Investor

    This article lacks references to sources of information. Information must be checked, otherwise it may be questioned and deleted. You can edit this article ... Wikipedia

    Founding of 1941 Founders Martin and Oume Hilti Key figures Baskera Pius (PIUS Baschera) (Chairman of the Board of Directors), Bo Risberg (Chairman of the Executive Board) ... Wikipedia

    Software Development Processing Process Process Analysis Designing Programming Document ... Wikipedia

    - (English Performance Engineering) Part of system equipment, which includes a set of roles, knowledge, practices, tools and results and used at each stage of the software development cycle in order to make sure that the created, ... ... Wikipedia

    This article must be fully rewritten. The discussion page may be explanations. This term has other meanings, see program ... Wikipedia

Books

  • Basics of testing and verification of software, Starolets Sergey Mikhailovich. This allowance is intended for future programmers who need to know the basics of testing software products, the principles of work in a team with testers, the need and ...
  • Function programming on JavaScript. How to improve JavaScript program code, Atencio Louis. In complex web applications, low-level JavaScript code details may make it difficult to analyze the program and affect the performance of the system as a whole. Functional programming (FP) as ...

Everything types of software testingDepending on the goals pursued, it is possible to conditionally divide into the following groups: 1) functional; 2) non-functional; 3) associated with changes.

Functional tests are based on functions and features, as well as interaction with other systems, and can be represented at all levels of testing: component or modular (component / unit testing), Integration Testing, system (System Testing) and Acceptance testing ). Functional types of testing are considering the external behavior of the system. The most common types of functional tests are followed:

- Functional testing Functional Testing)

- Security testing SECURITY AND ACCESS CONTROL TESTING)

- Testing interaction INTERPERABILITY TESTING)

Functional testing.This type of testing checks the compliance of the functions implemented by the requirements, technical assignment, specifications, various other project documents and simply user expectations. It is checked each of the functions of the application and all of them in the complex. All use scenarios are investigated. The adequacy of stored and output data, methods of processing, processing entered data, data storage methods, data import and data export methods, etc. Depending on the specifics of the application.

Functional tests Based on the functions performed by the system, and can be carried out at all levels of testing (component, integration, systemic, acceptable). As a rule, these functions are described in the requirements, functional specifications, or as cases of use of the system (Use Cases).

Testing of functionality can be carried out in two aspects: " requirements»; « business processes».

Testing in perspective " requirements"Uses the specification of functional requirements for the system as a basis for test case design (Test Cases). In this case, you need to make a list of what will be tested, and what is not, prioritize the requirements based on risks (if this is not done in the document with the requirements), and on the basis of this, prioritize test scenarios (Test Cases). This will focus and do not miss when testing the most important feature.

Testing in perspective " business processes"Uses the knowledge of these most business processes that describe the daily use scenarios. In this perspective, test scripts (Test Scripts) are usually based on the use of the system (USE Cases).

Benefits Functional testing: imitates the actual use of the system. disadvantages Functional testing: the ability to ignore logical errors in software; The probability of excess testing.


Fairly common is automation of functional testing.

Security testing. Testing strategy used to check the security system, as well as for analyzing risks associated with ensuring a holistic approach to the protection of the application, attacks of hackers, viruses, unauthorized access to confidential data. Security testing can be performed both automated and manually, including checking both positive and negative test cases. Based on three main principles - this is privacy, integrity and accessibility (Confidentiality, Integrity, Availability)

Confidentiality - This is concealing certain resources or information. Under privacy, you can understand the restriction of access to the resource of some category of users, or in other words, under what conditions the user is authorized to access this resource.

There are two main criteria in determining the concept integrity:

1. Trust. The resource is expected to be changed only by the corresponding way to a specific group of users.

2. Damage and recovery. In the case when the data is damaged or incorrectly vary by an authorized or not authorized user, it is necessary to determine how important the data recovery procedure is.

Availability It is the requirements that resources must be available to an authorized user, an internal object or device. As a rule, the more critical the resource is, the higher the availability level should be.

Testing interaction. With the development of network technologies and the Internet, the interaction of different systems, services and applications with each other has gained significant relevance, since any problems associated with this can lead to a fall of the company's authority that as a result will entail financial losses. Therefore, the testing of interaction should be approached with all seriousness.

Testing interaction this functional testing that checks the ability of the application to interact with one or more components or systems and includes compatibility testing (Compatibility Testing) and Integration Testing.

Software with good interaction characteristics can be easily integrated with other systems, without requiring any serious modifications. In this case, the number of changes and the time required for their execution can be used to measure the possibility of interaction.

Functional testing is one of the key types of testing, the task of which is to establish the compliance of the developed software (software) source functional requirements of the customer. That is, the functional testing allows you to verify the ability of the information system under certain conditions to solve the tasks you need.


Depending on the degree of access to the system code, two types of functional tests can be distinguished:
  • black Box Testing (Black Box) - Conduct functional testing without access to the system code,
  • wHITE BOX Testing (White Box) - Functional Testing with Access System Code.

Black Box testing is carried out without the knowledge of the internal mechanisms of the system and relies on the external manifestations of its work. At the same time, testing is checked by behavior of various input data and internal state of systems. In case of testing the White Box, test cases are created, based mainly on the CO code. There is also an extended Type of Black-Box Testing, which includes learning code, is the so-called Grey Box (gray box).

Key advantages

  1. Functional testing software fully imitates the actual use of the system.
  2. Allows you to identify system errors in a timely manner and, thus, avoid multiple problems when working with it in the future.
  3. Savings by correcting errors at an earlier stage of the software life cycle.

The main steps of functional testing

Preparation

Holding

Preparation

An analysis of the initial document documents is carried out: functional and business requirements, technical specifications, project passport. The development and coordination of the testing plan, test cases, the coordination of the design time, the number of iterations, the assessment of possible risks is also occurring. Tasks for this stage are performed jointly with representatives of the customer.

Holding

Functional testing is carried out manually at prepared pre-test scenarios with the enhancing errors found in the bagtracking system. In the absence of such a system from the customer, we can: provide a testing system for testing on its platform; put a license to customer; use the existing funds from the customer; cost only an office package; Put the testing process from the customer based on free tools.

Development and coordination of reports on testing conducted with a list of detected deviations and recommendations for improving the system. If necessary, users are trained.

Instruments

Test management is conducted in specialized systems.

Information Security 11.07.2018 8693

Functional testing is one of the key types of testing, the task of which is to establish the compliance of the developed software (software) of the initial functional requirements of the client. That is, the functional testing allows you to verify the ability of the information system under certain conditions to solve the tasks you need.

Depending on the degree of access to the system code, two types of functional tests can be distinguished:

⦁ Testing Black Box (Black box) - Conduct functional testing without access to the code code,
⦁ WHITE BOX Testing (White Box) - Functional Testing with System Access Code.
Black Box testing is carried out without the knowledge of the internal mechanisms of the system and relies on the external manifestations of its work. At the same time, testing is checked by behavior of various input data and internal state of systems. In case of testing the White Box, test cases are created, based mainly on the CO code. There is also an extended Type of Black-Box Testing, which includes learning code, is the so-called Grey Box (gray box).

Key advantages

⦁ Functional testing software fully imitates the actual use of the system.
⦁ Allows you to identify system errors in a timely manner and, thus, avoid multiple problems when working with it in the future.
⦁ Savings by correcting errors at an earlier stage of the software life cycle.

The main steps of functional testing

Preparation - An analysis of the source documents on the system is carried out: functional and business requirements, technical specifications, project passport. The development and coordination of the testing plan, test cases, the coordination of the design time, the number of iterations, the assessment of possible risks is also occurring. Tasks for this stage are performed jointly with representatives of the customer.

Holding - Functional testing is carried out manually at prepared pre-test scenarios with the enhancing all the errors found in the bagtracking system. In the absence of such a system of the client, the company Moderator Crowtesting may: provide a testing system for testing on its site; put the company to the license client; use the customer's funds from the company; cost only an office package; Put the testing process at the client's company based on free funds.

Report - Development and coordination of reports on testing with a list of detected deviations and recommendations for improving the system. If necessary, users are trained.

Directions of functional testing

Regression testing - Testing the functionality of the product after correcting errors or the implementation of new functionality

Security testing - Assessment of vulnerability to various attacks and attempts to unauthorized access to data.

System Testing - verification of compliance according to the requirements declared in the specification

Testing mobile applications - identification of defects in the paper interface

Testing Installation - Testing the installation process / uninstalling software

- Verification of work on various software and hardware environments.

Integration Testing - Testing interactions between system components and between multiple systems.

Smoke testing - A short test cycle to detect the proper operation of the main functions of the application.

Testing documentation - verification of documents for compliance with adopted standards, as well as compliance with certain characteristics

Providing test coverage - Evaluation of the density of the coating system tests

Testing usability - Determining the degree of ease of use, clearer and attractiveness of the product being developed

Regression testing


Every time you make changes to the system, or additions it to new functionality, exists

the likelihood that these changes will affect the performance of a previously developed functional or system as a whole. Regression testing allows you to verify the correctness of additions and make sure that the program after the change continues to meet the established requirements and successfully interacts with other systems.

This type of testing is recommended every time after adjusting the program, which may include a defect correction, code fusion, migration to another OS or database, adding new functionality, and other changes. If during operation, the number of users of the system increased significantly compared to pilot operation, it is recommended to carry out regression load testing.

During the project, the testers primarily check that part of the functional, where the probability of the appearance of an error after the changes made is the most high. To save time, experts can develop automated regression tests, which will reduce testing time without loss as work.

Key advantages

⦁ With regular regression testing - a significant reduction in the number of defects in the system by the time of release.
⦁ Exception of system quality degradation with growth of functionality.
⦁ Reducing the likelihood of critical errors in pilot industrial operation.

Main steps

⦁ Verification tests: include tests for checking errors and tests to verify the safety of basic functionality in each new version of software;
⦁ Regression tests: Checking the new version of the program with a set of tests that were used when testing the previous version and did not reveal errors;
⦁ Regress in fixed bugs: Checking previously identified and fixed errors, it is necessary to avoid the appearance of such errors after modifying the code.

Integration Testing


Many modern IT systems interact with other systems and modules, so extremely

it is important to have an idea of \u200b\u200btheir relationship and check their performance. Integration testing allows you to detect defects that occur in the interaction of systems. To do this, be used both manual and automated tests.

Integration testing is recommended to be carried out before starting system testing. This type of testing should be carried out as early as possible, since integration defects are usually an architectural nature, their correction in the later stages of development is risky and can do it much more expensive. To speed up the start of the test process, it is recommended to use the development of emulators of external systems.

As part of integration testing, regression testing may also be carried out in order to verify the changes made in annex or the environmental environment of inherited functionality.

Key advantages

Integration testing allows you to imitate user actions and quickly receive confirmation that the software product successfully interacts with other systems. This approach guarantees several advantages at once:

⦁ Prevent the appearance of critical errors in pilot-industrial operation;
⦁ reducing the influence of the human factor;
⦁ Saving costs for fixing defects.

Main goals

The main task of integration testing is to search for errors associated with the interaction of system modules or multiple systems. As a result, all adjacent systems and one system modules must work consistently.

Methods for conducting integration testing are selected depending on the integration solutions.

Stages

⦁ Development of a test plan - guidelines for testing for testers;
⦁ the formation of test data and the creation of test cases;
⦁ Implementing scripts to launch test cases;
⦁ Perform test cases and error correction;
⦁ Repeating test cycle to successful integration.

Security testing


Security testing is carried out in order to assess the stability of the system to the unlawful

action: Hacker attacks, penetration of viruses, attempts to access corporate information. Safety testing is particularly relevant for Web applications, applications with important commercial or personal information, payment systems, applications that require integrity of information, social applications, applications with a commercial license. Often to check security

such systems of functional testing is not enough.

Key advantages

⦁ Security testing reduces the likelihood of unauthorized access to the system, theft of information and data loss;
⦁ Clients receive an objective assessment of the level of security of systems.

Main goals

⦁ Analysis of architecture and building a model of threats and risks
⦁ Definition of Protection Criteria
⦁ Search for vulnerabilities in the source code
⦁ FUZZ Testing
⦁ Penetration Testing
⦁ risk-based testing
⦁ Conducting load testing

Stages

⦁ Preparation: Collection of information, refinement of parts;
⦁ Planning: analysis of system vulnerabilities and possible threats, drawing up the risk matrix;
⦁ Design: Determination of system security settings, code analysis, elementary tests;
⦁ Development: Entering unexpected, incorrect, nonypical data (FUZZ testing), assessment of non-functional components of software, risk testing model;
⦁ Implementation: ⦁ Load testing, penetration tests.

Smoke testing

A frequent assembly of software does not always take place with due qualities, as a result of which the software product may contain errors in the work of the functional business. That is why checking the key functional system should be carried out immediately after the assembly and before transferring software to testing.

Smoke testing (chimney testing) puts the task to identify defects immediately after assembling the software. It includes a small number of test scenarios and is intended to identify explicit functionality errors. Usually, smoke tests are carried out after updating the software, but this method can be used for testing software products created from scratch. Smoke testing can be carried out as acceptance tests before functional testing. Since Smoke testing is carried out with rather high periodicity and the essential resources of testers are spent on it, it is recommended to automate this direction.

Key advantages

⦁ Detection of critical errors in the first few hours (minutes) after installation
⦁ reducing the risks of the withdrawal of poor quality product;
⦁ Minimizing risks when integrating systems;
⦁ Reducing the cost of correction of defects;
⦁ Acceleration check by automation.

Main goals

⦁ Selecting test scenarios, so as to provide a test coverage of the most priority functions of the system.
⦁ Determining the number of SMOKE tests and the time of their execution. Usually, no more than 10 scenarios are selected for Smoke tests with the time of their execution in several hours.
⦁ Writing test scripts, description of playback steps and expected results of their execution. At the request of the client, the scripts can be automated.
⦁ SMOKE test execution.

System Testing


System Testing Designed for Testing

ready in that condition in which it will be introduced into experimental operation.

System testing allows you to detect such defects as identifying the missing functional in the system, incorrect operation of the system functions, the occurrence of errors when using specific test data or their combinations, interaction errors with other systems.

Key advantages

⦁ Reducing the number of defects in pilot industrial operation;
⦁ Ability to use test scenarios as training materials for future users of the system;
⦁ Detection of the stand setup errors, which facilitates the operation of the AC administrators when installing the system in experimental operation.

Main goals

⦁ Determination of the approach to the preparation of test scenarios
⦁ Creating a Plan and Test Methods
⦁ Preparation of test data
⦁ Testing
⦁ Detection of incorrect resources use

Stages

⦁ Test Plan
⦁ Development of tests
⦁ Preparation of test data
⦁ Test runs - automated and ordinary
⦁ Drawing up a report
⦁ Regression testing after error correction

Testing documentation

Testing the documentation allows you to estimate the various characteristics of documents and requirements: completeness and redundancy, unambiguity and consistency, rankbores and traceability, realizability and verifiability.

The testing of documentation is recommended when creating a new software or when it is changed due to business development. Testing the documentation is better to start at the system of creating system requirements, this will eliminate some of the defects before they are implemented in the code.

Key advantages

⦁ Detection of errors of requirements in the early stages reduces the cost of their correction.
⦁ Quality documentation reduces the complexity and duration of the project as a whole.
⦁ Unambiguous and full business requirements allow developers to better assess the scope of work and work out a technical task.
⦁ An understandable documentation reduces the number of questions about the operation of the system from users and testers, which facilitates the work of the administrator and analytics.

Documentation Testing includes testing several documentation levels:

⦁ Business Requirements
⦁ Functional requirements
⦁ Taxation
⦁ User manuals

Testing mobile applications


Testing - The most important stage of developing mobile applications. This type of testing allows you to check the performance of the application on various devices and operating systems in accordance with the specified requirements.

Key advantages

⦁ Checking the performance and compatibility of the application on various devices and platforms.
⦁ Reducing reputational risks, as the release of poor-quality applications on any mobile platform is associated with negative comments and low user ratings.
⦁ Ability to automate the testing of mobile applications, which reduces the timing of each iteration.

To test the testing, the company Moderator crowdtsting relies on a variety of mobile devices, including all modern models of tablets and smartphones, which are owned by testers from all countries of the world.

Providing test coverage

The test coating represents the magnitude expressing the percentage of the functionality tested by the tests to the full functionality of the system. The assessment of the test cover is recommended to be carried out when preparing a plan and test methodology so that testing is able to provide the required level of test coverage. This type of testing can be carried out both manually and with automated testing.

Key advantages

⦁ The testing assessment clearly shows the percentage of functionality of tests and is the criterion of their completeness: the higher the percentage of the test coating, the higher the fullness.
⦁ Ensuring the most complete test coating reduces the number of defects and improves the quality of the final product.

Main goals

When preparing the plan and test methods for manual and automated testing, depending on the purpose of testing, the required test level is determined. When testing, it is recommended to use the maximum achievable level of test coverage, however, to reduce the time for the preparation and testing of tests, the use of incomplete test coverage is allowed.

Testing Installation

Installation Testing (Installation Testing) Allows you to make sure that it is correctly installed and configured, the new versions occurs without errors, and it is possible to uninstall and delete this software. Testing the installation must be carried out when creating software, after the new version appears, as well as when changing the stand configuration.
Installation testing is recommended to be carried out on different platforms, manual method or by automation. The following factors affect this type of testing:
⦁ What platforms and operating systems are supported?
How will the software be distributed?
⦁ Who will install software?

Key advantages

Testing the installation avoids such problems when installing software in an industrial environment, as:
⦁ the inability to establish
⦁ Data loss after installing the new version
⦁ Inability to roll back to the previous version

As a result, saving money and time, a significant relief of the work of administrators.
Main goals

Installation testing is carried out according to the software installation plan. Checking the installation, configuration, update, rollback version and deleting software on all stated platforms.

Testing usability

Testing usability is carried out when creating a new software and its refinement. The main goal of such testing is to search for solutions of the most friendly program interface to reduce time to solve user tasks.

The result of testing ease of use is a number of wishes for improving the test object, for example, changing the location of the buttons or add new to the quick execution of any command, filling the default values, add hot keys, etc.
Key advantages

Results of testing usability will provide positive feedback from the system users in the future. If the system is intended for regular use, for example, employees of a call-center, operationalists in a bank or sales assistants in the store, the ergonomic system will reduce their labor costs to perform everyday operations. If the system is intended for customer service, for example, an online store or Internet bank, convenience and simplicity of the system will leave positive memories of working with it, which will save customers and attract new ones.

Main goals

The task of testing ease of use is to define the level of convenience and simplicity of solving tasks by the user, to execute which the product was created.

As part of this task, it is estimated:

⦁ How many steps need to do to fulfill the task?
⦁ How long does it take to fulfill the task?
⦁ How many errors make a newbie when performing a task?
⦁ What is the impression of the user from working with the program?
⦁ Emotions of the user during the task.

Configuration testing

Configuration testing - This is validated software on various software and hardware environments. This type of testing is used if it is known that the information product will be used, for example, on different platforms, in various browsers, will support different versions of the drivers.

Key advantages

⦁ Configuration testing completely simulates the actual use of the system.
⦁ Allows you to identify system errors in operation under different configurations, and thus prevent problems when working with it.

The main steps of configuration testing

Preparation - A list of system configurations is compiled, under which testing will occur. In practice, it is often impossible to describe the entire set of configurations in which the system will be used. Therefore, their prioritization is carried out, and only the most important configurations fall into the end list.
Holding - The system is tested on selected configurations.
Report - Companies Customer provides a detailed report with a list of defects and deviations found in the system operation with each configuration version.

Suppose that there is a GET-DATA functionwhich returns the information card of the user ID, which passed. Now this feature uses 3 SOURCE-A functions, Source-B and Source-C to get three different types of cards. Now we combine all these cards in one card and return from Get-Data.

When I test Get-Data, Should I check the presence of key data? Does it make sense so that this function refuses single tests if one of Source-A, Source-B and Source-C failed? If the task of the TOSS function is to combine data, and this is done, this should be enough, right?

1

2 Answers

Suppose that there is a GET-DATA function that returns a map of the user ID transmitted to.

Excellent. Then you must check it out. For this identifier, do you return the correct data?

now this feature uses 3 SOURCE-A, SOURCE-B and SOURCE-C functions to obtain three different types of cards.

What detail of the implementation you must ignore in the test. All you test is that your unit of work (this method) does what it should (take the identifier and return the XYZ data for this identifier). how This method does not matter - in the end, the key advantage of this modular test is that you can reorganize the implementation of the method, and the test will check what you did it right.

Nevertheless, you will probably have to mock the data sources, so at some point the test will probably have to know how this code works. You need to balance the three competing goals here: to make a test isolated (by bullying data), making a test focused on demands and pragmatism.

In the end, this is an important code. There are tests to support the actual code, spending a large number of time and problems associated with polishing checks are not as useful as tests. making. .

In modular testing, you must check only the functionality of the same class if your Source-A methods, Source-B and Source-C call other classes, you must mock them (they must be checked on the module in their classes).

In testing integration, you check the behavior of several classes interacting between them, this means that your GET-DATA function should check the correctness of the data that is retrieved (source-a, Source-B and Source-C are correct, and the data is connected properly) .

Modular tests are easier and purposefully, and they should be created by developers. Integration tests are usually comparable relatively (if any internal component has been changed), so they are harder to perform. Must be created by the QA profile.