Software testing is the process of detecting errors in a software product. I bring to your attention a simple program for compiling tests

Testing  - the process of analyzing a program or controlled execution of a program on a finite set of input data in order to detect errors

Static  - analysis of the text of the program

Dynamic  - analysis of controlled execution

Test methods  - a set of rules governing the sequence of steps for testing

Test criteria  - estimates to judge the adequacy of the testing

A test is considered effective, which leads to the detection of an error. Testing is a destructive process.

Test  - a set of input data, a set of expected results, a set of conditions designed to verify a specific program execution path.

Features

1) Frequent absence of a fully defined standard to which the results should correspond

2) The high complexity of the programs eliminates exhaustive testing (checking all possible execution routes)

3) Low formalization of criteria for completion of testing

Key Testing Principles

1) Testing cannot be planned under the assumption that there are no errors

2) Avoid testing the program by its author.

3) A description of the intended values \u200b\u200bof the results should be an integral part of the test.

4) Tests for incorrect input should be developed as carefully as for correct

5) It should be understood that the probability of the presence of undetected errors is proportional to the number of already detected

6) Do not throw away tests, even if the program is no longer in use

Test Objects. Test Categories

1) Specifications of software modules, groups of programs and software systems

Completeness and consistency of functions of software components

Consistency of interfaces of software components (for groups of programs and complexes)

2) Software modules

Structure

Module data conversion

Completeness of functions performed by the module

3) Groups of programs combined to solve a complete functional task

Same as for modules

Interface between programs

4) The software package used to solve several functional problems

Completeness of the solution of functional tasks

Operation of programs in critical situations

Resource Consumption Testing

Assessment of the reliability of the complex

Effectiveness of protection against distortion of the general data

5) Software put into trial operation

Same as for 4)

Convenience of installing a working version of the program

Verification of work when changing the configuration of equipment

Checking the availability and correctness of the documentation

Compliance Test

6) Maintenance tool

Convenience of modification, such as enhanced functionality and increased efficiency

1 - Specifications

2 - Modules

3 - Program Groups

4 - Software systems at the debugging stage

5 - Software packages as products

Types and methods of testing

Features of downstream testing:

Advantages:

From the very beginning, a check of the main functions is performed - a conceptual check

Disadvantages:

The need to develop stubs, often smart enough

The parallel development of modules of various levels does not always provide the possibility of the desired sequence of testing modules of different levels

Upstream Test Features

Advantages:

For testing, ready-made modules of the lower levels are used.

Disadvantages:

The need to develop test drivers to control the work of the lower levels from the upper

Deferred verification of the basic concept of the functioning of the complex

1) Unit testing. Includes verification:

Module structure correctness

The correctness of the main structural components

The completeness and quality of the implementation of data processing functions

Structural correctness is checked by structural methods according to the principle of "white box"

2) Integration testing. Verification:

The correctness of combining modules into a group or complex of programs

It is carried out on the basis of 2 approaches:

Monolithic testing, in which the modules are immediately combined into a single complex and then tested together

Incremental (step-by-step), the modules are connected to each other in series (from bottom to top or top to bottom)

It uses a structural check of plug-ins and a functional check of the completeness and quality of the implementation of functions. Functional checks are carried out according to the principle of "black box"

3) System testing. Provides verification of compliance of software with specified requirements in a given environment and operating modes. Provides the following types of testing:

Functionality Testing

Stress testing (testing at increased loads on used resources)

Security testing (protection against unauthorized access)

Crash Recovery Testing

Recently, alpha and beta testing have become widely used - these are types of testing performed with the participation of the customer. Alpha testing is performed on the territory of the developer in a limited time (no more than a week). Beta testing is carried out after the program is put into trial operation on the customer’s premises, and it takes quite a long time (1 year norm).

Error statistics in software products by type.

Test methods

All methods are divided into two unequal groups:

Static (Manual)

Dynamic (machine)

The main methods of manual:

Code inspection

End-to-end viewing

Dynamic Methods:

Structural

Functional

Static Testing Methods

A common feature is that they use visual control of the program according to its text by a group of 3-4 people, one of which is the author of the program. The purpose of the check is to detect errors, but not to eliminate them. The basic concept - the presence of errors is not the fault of the author of the program, but the imperfection of the development tools of the program and the complexity of the program as a system. Under normal conditions, static testing methods can detect 30-70% of the initial errors in the program. They, unlike machine ones, allow detecting typical groups of author errors.

Code inspection. The group includes 4 people: the head of the inspection, the author of the program, the designer and the tester. A week before the inspection, the head distributes to all participants a listing of the programs that will be inspected.

2) the program is analyzed according to a typical list of common errors:

Errors in accessing data (uninitialization of data, exit of indices beyond the boundaries of arrays, references to empty memory)

Data description errors, matching of given types and values

Calculation errors

Control transfer errors (looping, program completion correct)

Interface errors (errors related to the interaction of parts with each other)

Input / output errors

Code Inspection Result:

End-to-end viewing. It starts the same way as code inspections, but during the group meeting, familiarization with the program is carried out by a small number of sessions of manual testing of the program on simple data.

Dynamic testing

Structural testing of software modules

Structural testing checks

Passing tests on the logic of the program, the elements of which are the vertices, arcs, routes, conditions and combinations of conditions of the control graph of the program

Recently, the flow of data has been checked through the program information graph, which reveals anomalies in data processing

Control Flow Based Testing

The criteria for selecting elements for testing are introduced:

1) covering operators (covering vertices of UGP, covering lines of code). It is necessary to check the execution of each statement at least once. It is necessary to implement the path a-c-e (for example, with the test set a \u003d 2, b \u003d 0, x \u003d 3, the result x \u003d 2.5). The path a-b-d is not checked. Individual conditions are not checked, for example, OR instead of &. It is the weakest criterion and is used only during the initial verification.

2) Coverage of branches (solutions). It is necessary to check each arc of the program execution. This criterion includes the previous one.

1) Coat the arcs a-c-e, a-b-d

2) Coat the arcs a-c-d, a-b-e. A \u003d 3, B \u003d 0, X \u003d 3, and A \u003d 2, B \u003d 1, X \u003d 1

Does not detect all errors, for example, if instead of x\u003e 1 there will be x<1. Критерий не является исчерпывающим

3) Criteria for covering conditions. Each condition used in the program must be fulfilled at least once. The following conditions are used: A\u003e 1, B \u003d 0, A \u003d 2, x\u003e 1. It is necessary to implement checks: A\u003e 1, A<=1, B=0, B!=0, A=2, A!=2, x>1, x<=1. Для проверки этого достаточно следующей пары тестов: (A=1, B=0, X=3) идет по пути a-b-e и (A=2, B=1, x=1) идет по пути a-b-e. Оба теста проверяют один и тот же путь.

4) A combined criterion of “conditions / decisions”, which should check all the conditions in the program and pass at least once along each arc.

The following test suites: (A \u003d 2, B \u003d 0, x \u003d 4) a-c-e, (A \u003d 1, B \u003d 1, x \u003d 1) a-b-d.

5) Combinatorial coverage of conditions. The following combination of conditions should be covered:

(2) A\u003e 1, B! \u003d 0

(3) A<=1, B=0

(4) A<=1, B!=0

(6) A \u003d 2, x<=1

(7) A! \u003d 2, x\u003e 1

(8) A! \u003d 2, x<=1

Test kits:

(A \u003d 2, B \u003d 0, x \u003d 4) (1,5)

(A \u003d 2, B \u003d 1, x \u003d 1) (2, 6)

(A \u003d 1, B \u003d 0, x \u003d 2) (3, 7)

(A \u003d 1, B \u003d 1, x \u003d 1) (4, 8)

6) Call coverage criteria. Provides verification of the correctness of the call of each procedure or function in the program.

7) Criteria for covering paths. It is used in a limited version, when using cycles, only individual options for checking the cycle are considered: the body of the cycle is not executed once, the body of the cycle is executed once, the body of the cycle is executed k times (k<=n – максимально возможное число повторений), тело цикла выполняется n раз, тело цикла выполняется n+1 раз. Является очень сложным и громоздким, применяется только при очень тщательном тестировании.

Data Flow Structural Testing

The work of any program is represented as processing a stream of data transmitted from its input to output. If there is a control graph of a program of the form

The program information graph is represented by dashed lines.

For each vertex i of the CID, we can define a set of def (i) - data defined at this vertex and a set of use (i) - data used at this vertex.

For testing, it is necessary to select DU chains that have the following form DU \u003d (Data, i, j), Data - given, i - the vertex in which the data is created, j - the vertex in which the given is used.

For our example, many DU chains:

DU \u003d ((a, 1, 4), (b, 1, 3), (b, 1, 6), (c, 4, 6)).

After the formation of a set of DU chains, the DU chains are mapped into fragments of UGP corresponding to the ways of determining and using this chain.

For chain (a, 1, 4), the path is 1-2-3-4. According to the information graph of the program, a path is generated in the control graph of the program that is being tested. This method is called the “required pair strategy”

Disadvantage: the difficulty of choosing the minimum number of tests that ensure effective verification of all DU chains.

Functional Testing (FT)

Structural testing does not allow checking all the functions assigned to the program, because some functions may simply be absent in the proposed implementation.

Functional testing is the testing necessary to verify that a software product meets the functional requirements specified in the specification. When performing FT, the logic of the program is ignored and all attention is focused on the output values \u200b\u200bobtained as a result of processing the given input sets. Typically, FT detects the following types of errors:

1) incorrect or missing functions

2) interface errors

3) errors in resource consumption (excess of occupied memory or runtime)

4) program initialization or termination errors

To carry out FT it is necessary to have: sets of input data leading to anomalies in the execution of the program, sets of output data to detect defects in the program.

FT methods should provide:

1) reduction in the required number of test cases (checks are performed dynamically)

2) identify error classes, not individual errors

FT methods are usually applied at later stages of testing than structural ones.

Method of partition into equivalence classes.

The input data area is divided into equivalence classes (CLE), which are a set of data with common properties, the processing of which by the program is absolutely identical. During processing, the same operators and the same relationships are used. CLE are divided into correct (permissible) and incorrect. CLE are defined according to the specification for the program, for example as follows: 20,000<=x<=80000, правильный КлЭ - 20000<=x<=80000, 2 неправильных КлЭ – x<20000, x>80000. The development of tests consists of 2 stages:

1) CLE decomposition

2) building tests

Isolation of CLE by specification - heuristic process

1) if the checked input is presented as a range of values, then one correct class is built (inside the range) and two incorrect

2) if a specific value, then one correct and two incorrect CLE are built

3) if the input condition describes the set of values \u200b\u200bm \u003d (a, b, c), then one correct class is constructed for each of the values \u200b\u200band one incorrect class for values \u200b\u200bnot belonging to the set (m! \u003d A) & (m! \u003d B ) & (m! \u003d c)

Build tests.

1) Each Cle is assigned a unique number

2) Tests are built for the correct CLE, so that each test covers as many of these classes as possible

3) Tests are built for the wrong classes, which must be individual, since checks with erroneous inputs can hide each other.

Analysis of boundary conditions.

The method is a development of the previous one in the sense that boundary conditions are understood as situations that arise at the boundaries of the input and output CLE.

Differs from previous

1) when choosing CLE elements, values \u200b\u200bare used on and near the boundaries of classes -1.0<=x<=1.0 x={-1.0, 1.0, -1.01, 1.01}

2) the method should consider not only input, but CLE for output values.

General rule for using the method:

1) build tests for values \u200b\u200blying on the boundary of the region, and tests with incorrect data that go slightly beyond the boundaries

2) if a certain number of files is processed in a given range, then build tests for the file boundary values, 1 more and less than the upper and lower boundaries, respectively

3) apply approaches 1, 2 for each of the output values

4) if an ordered set of values \u200b\u200bis checked, then it is necessary to check the first and last elements.

The disadvantages of the methods considered are that they do not allow checking combinations of conditions.

Functional diagrams method (DPS causality diagram method)

The method allows you to formally generate effective tests that allow you to detect the ambiguity of specification requirements when combining input conditions

A functional diagram is a formal graph-analytic language that allows you to describe specifications written in a natural language.

Functional diagram construction technique

1) the specification is divided into “work areas”, i.e. areas for which the chart is not too bulky

2) the specifications highlight the causes and effects. The reason is a separate input condition or CLE of the input conditions, the consequence is the output condition, the result of the program. Each cause and effect is assigned a unique number.

3) the semantics of the information specified in the specification is analyzed, and a Boolean graph is constructed that connects causes and effects, which is a functional diagram. Each node of the graph can take 2 values: 1 - present (executed)

The following basic symbols are used to represent diagrams:

Specification given. The file is updated if the character read in position 1 is a or B, and the character in position 2 is a digit. If the first character is erroneous, then message X1, if the second is not a digit, then message X2.

1) the symbol in position 1 is equal to A

2) the symbol in position 1 is equal to B

3) character in position 2 digit

The consequences

1) the file is updated

2) message X1 is issued

3) message X2 is issued

There is a problem in the above diagram: the application of reasons 1 and 2 is not limited.

To account for impossible combinations of causes or effects, additional basic elements are provided.

E - cannot be at the same time

I - cannot be simultaneously 0

R - requires (a \u003d 1, then b \u003d 1)

M - prohibits (a \u003d 1, then b \u003d 0)

With this in mind:

Decision Table Generation

Using decision table columns as tests

Decision table generation:

1) The lines corresponding to the causes and consequences are formed

2) Some corollary is selected that has a value of 1

3) Combinations of causes are found which provide such a meaning to the effect.

The blank elements of reason lines can take any value

The tests used will be as follows

Assumption-Based Method (Negative Testing Method)

The essence is based on the experience of the tester and the idea is to list some set of possible errors for which tests are written. The method determines how to make the program make a mistake or stop execution. Designers identify requirements for the successful implementation of the program and then develop tests, each of which violates one of the requirements. Checks the program's resistance to exceptional situations.

1) launch on another platform

2) permutation of values \u200b\u200bin a file

3) lack of data in the database

4) invalid or missing configuration parameter values

General test development strategy

1) check the logic of the program using structural testing methods according to the criteria for covering operators, covering branches (conditions), covering solutions to conditions, combinatorial covering conditions

2) checking the functionality of the program using FT methods. If there are combinations of input conditions, then we must start with the method of functional diagrams, then partition into CLE, analysis of the boundary conditions, and the method of negative testing.

Test completion criteria

Usually 3 groups apply

1) criteria based on a specific testing methodology that determines the percentage of tests covering the logic and functionality of the program.

2) criteria based on expert assessments of the possible number of errors available in the program of this class and purpose.

3) a criterion based on a test timing chart for each phase of program development

Free program. With her you can organize a test, questionnaire, survey, test and control of knowledge. You can use pictures and text formatting in the content of questions (color of letters and background, font, use of formulas and tables). Answer options in   can be with single and multiple choices, yes / no (false or true), entering a number or a word, order, correspondence, choice of a response area in an image, rearrangement of letters. The program implements training (error messages), penalty (points are taken, missed tasks), free (any sequence of questions) and exclusive (the program window occupies the entire screen and does not minimize it) training modes. The program has a pleasant design and easy control of all the necessary functions and settings for the test.

Testing, editor and testing log

MyTestX utility includes three modules - testing, editor and testing log. The testing module conducts a test from a saved file containing questions, answers and test settings, counts and verifies the correct and incorrect answers. Using the test editing module, even a novice user will easily create a new test or survey. The test log stores the results of tests performed in the form of a detailed report.

Network testing

In a computer class using a local network, the teacher can check the knowledge of all students at the same time and carry out online monitoring of testing, having previously distributed tests and assignments over the network. Test and knowledge testing program supports work in a local network, you can easily centrally organize the collection and processing of test results and view a detailed report using the test log.

Protecting Tests and Their Results

The MyTestX program has high reliability of protection against editing and viewing test results and test tasks. Having set a password for the test, changing or spoiling it for third parties becomes impossible. All settings, parameters, questions and keys with answers to the tasks of a separate test are stored in one encrypted and compressed file.

In the MyTestX archive:
  • myTestX 10.2 program;
  • testing module for terminal classes;
  • module for creating stand-alone tests;
  • a program for importing tests from text files into the format of the MyTestX 10.2 program;
  • programs for converting tests for MyTestX from one legacy format to another.

Official site:  http://mytest.klyaksa.net
Operating Systems: Windows all
Supported languages:  Multilingual platform including Russian
Version: 10.2.0.3
License:freeware (is free)

File size 16.9 MB
Password for loadboard archive

the computer as a testing tool has its advantages and disadvantages. However, it is difficult to refuse objectivity to the assessment. Apparently, this factor contributes to the expansion of the scope of computer testing - it is successfully used in schools, universities, when applying for a job, when passing exams in the traffic police, etc.

Moreover, the set of methods for testing complexes is quite limited:

Usually in tests, you can use the following five types of questions:

  1. Choosing the only correct answer.
  2. Selecting a few possible correct answers.
  3. Setting the sequence of correct answers.
  4. Matching responses.
  5. Manually entering a response from the keyboard.

Given the small number of testing methods, it is advisable to develop a universal program that would allow teachers of various disciplines to create their own databases and quickly receive control tasks for their subject. There are several similar programs on the market, and in this article we will review them. On the CD-ROM you will find trial versions of some of the programs reviewed.

Distribution Method:  shareware

Price:

The SunRav TestOfficePro package includes programs for creating tests, conducting testing and processing test results. With its help, it is possible to organize and conduct tests and exams in educational institutions (universities, colleges, schools), and enterprises and organizations can carry out certification and certification of their employees.

The package allows you to create tests on subjects of the school curriculum, university disciplines, tests for professional testing, psychological tests, etc.

All tests and test results are encrypted using strong cryptography methods, which eliminates the possibility of falsification of results. In addition, passwords can be set for the test: for editing - protects the test from viewing its structure, correct answers, etc .; to view - prevents trial testing in order to find out the correct answers.

Questions and answer options can be formatted using the built-in text editor, which is close in its functions to MS WORD. In the editor, you can insert images, formulas, diagrams, tables, audio and video files, HTML documents and any OLE documents.

In tests it is possible to use the five types of questions listed above.

The test can be divided into several topics. At the same time, it is possible to evaluate the knowledge of the testee both for each topic individually and for the test as a whole.

Questions in the test can be mixed. Moreover, the test creator can determine how many questions from each topic a user will receive for testing. Suppose each topic consists of 100 questions. If you randomly select only 10 questions, then the test takers will receive completely different sets of questions from the same test. Answer options can also be mixed.

The order of the questions can be not only linear, but also depend on the user's answers.

Each question and answer may have its own “weight”. This allows you to accrue more points to the user for the correct answers to complex questions and fewer points for answers to easy questions.

Each question can be equipped with a comment containing information about the correct answer, etc.

The following reaction to the user's response is possible:

  • prompting the user to answer the following question;
  • a message that the user answered correctly / incorrectly;
  • showing any document related to the question. It, in particular, can explain in detail why this answer is incorrect, provide additional material that will allow a deeper study of the issue.

Testing can be limited in time - both for the test and for each question. In this case, the amount of time allocated for each question may be different.

The following programs are included in the SunRav TestOfficePro package:

  • tMaker is a program that allows you to create and edit tests. It is possible to import tests created in a text editor or in a spreadsheet editor;
  • tTester - a program for testing;
  • tAdmin is a program for remote user administration and processing of test results. Allows you to view / print test results, as well as create, print, edit, export reports on testing user groups. It is possible to create a response matrix.

Technical data of SunRav TestOfficePro:

  • the number of questions is not limited;
  • the number of answers is not limited;
  • number of users - unlimited;
  • the number of tests is not limited;
  • the number of topics in the test - up to 256;
  • tests and results are stored in files.

Currently, a large number of tests have been prepared for this package. In particular, there are educational tests in computer science, economics, English, history, and social studies.

Distribution Method:  shareware

Price:  5900 rub. (20% discount is provided for all educational institutions, that is, the price for them is 4720 rubles).

SunRav TestOfficePro.WEB is an application for testing over the Internet and Intranet. All information (tests, sections of tests, results, etc.) is stored in a database and is protected from unauthorized access. If the user does not have the appropriate rights, then he will not be able to view, edit and delete his or others test results.

The package is suitable for testing remote employees, students, schoolchildren, etc. The user does not need to install anything on his computer for testing - just a browser (Microsoft Internet Explorer, Opera, Mozilla, etc.) is enough.

The capabilities of the tests are similar to the capabilities of the tests from the SunRav TestOfficePro program, which can also be used in the SunRav TestOfficePro.WEB program.

To organize testing, you need:

  • Web server - Apache or MS IIS can be used as such. According to the authors of the program, the development was carried out using the free Apache server versions 1.3 and 2.0. It can be freely downloaded from http://www.apache.org;
  • mySQL database - according to the authors of the program, development was carried out using version 3.23. It can be freely downloaded from http://www.mysql.com;
  • PHP interpreter - according to the authors, the development was carried out using version 4.3. It can be freely downloaded from http://www.php.net.

If the user does not have his own Web server, you can use regular hosting, which provides services for using the MySQL and PHP databases.

Using SunRav TestOfficePro.WEB you can:

  • organize tests into sections;
  • register to import, edit users;
  • test both registered and non-registered users;
  • view test results by individual user and by user group (reports);
  • view rating results for this test;
  • save test results in a database.

Developer:  Keepsoft

Distribution Method:  shareware

Price:  Standard license - 300 rubles .; student license - 200 rubles .; corporate license for 10 computers - 1000 rubles; volume license for 20 computers - 1500 rubles .; corporate license for an unlimited number of computers - 3000 rubles.

Test Constructor is a universal knowledge test program. The application can be used for testing at home and in educational institutions. The program allows you to use an unlimited number of topics, questions and answers.

Features of the program:

  • questions may contain music (WAV, MID. RMI files), images (JPG, BMP, ICO, EMF, WMF files), videos (AVI files);
  • questions of all five of the above types are supported;
  • printing on a printer and saving topics, questions and answers to a file;
  • printing on a printer and saving test results to a file;
  • export of topics, questions and answers to files of various formats (MS Excel, MS Word, MS Access, Paradox, DBase, text file, HTML, XML, RTF (RichText format), PDF (Adobe Acrobat), clipboard MS Windows, Lotus 1 -2-3, etc.);
  • testing several users on one computer. For each user, a personal user card is created, the fields in which are customizable;
  • setting various access rights to edit the database in the "Editor" for different users;
  • asking questions in random order;
  • setting a price for each question in points;
  • time limit for response;
  • the ability to interrupt testing and continue at another time;
  • grading at the end of testing. The rating system is configured in the "Editor". The rating scale can be configured from a 2- to 100-point system;
  • database synchronization; using this function, you can easily exchange data with other users and transfer data from computer to computer;
  • spell check in the "Editor";
  • search the database in the "Editor";
  • database compression;
  • customizable interface;
  • internet update check function.

"Test Designer" can be downloaded from the developer's site and get acquainted with the program for free for 30 days. For further work with the program, registration with payment is required. Registered users are provided with a personal registration key and free technical support by e-mail.

In the registered version, you can use ready-made tests, which can be downloaded from the developer's website at: http://www.keepsoft.ru/simulator_download.htm. At the time of writing, the following ready-made tests were available: according to the rules of the road, a unified state exam for high school graduates, in English and French, in computer science, mathematics, etc.

Developer:  LLC Technoservice Plus

Distribution Method:  order by email

Price:  5200 rub.

The program is designed to create tests, exams, electronic textbooks. To develop a test or a textbook, the user does not need to have programming skills - the program is adapted and designed primarily to facilitate the process of testing knowledge in educational institutions. The main difference between the product and analogues is an additional opportunity - the creation of a module for fixing the material, when already in the learning process the user answers questions on a given topic.

The software package contains three modules:

  • a constructor that allows you to create tests, textbooks, as well as modules for fixing material. The designer provides the ability to use text format, formulas, sound recordings, videos and images;
  • textbook - it is created in the designer and can have an unlimited number of sections, paragraphs and pages;
  • a test, which can also be equated to an exam, since it excludes the possibility of using the textbook during the examination of knowledge, as when fixing material.

In this module, new sections and questions are created, as well as answers to questions are indicated. At the same time, the properties of the question must indicate the number of points awarded for the correct answer to it.

The program allows you to:

  • independently create tests to control student knowledge. Test development is automated and fast, it is possible to use not only text and drawings, but also sound recordings, videos, formulas, graphs, complex graphic objects, etc .;
  • easily import into the designer materials on which the current electronic textbooks are built;
  • to test students in order to identify their level of knowledge upon admission to the institution (when moving to the next class (course);
  • to carry out internal planned / unscheduled checks of knowledge after passing new material to assess the assimilation of the material;
  • create electronic textbooks, instructions, teaching materials;
  • in the learning mode to conduct a survey of the student on selected issues; in case of an incorrect answer, the program will indicate an error and recommend that you read the corresponding section of the textbook again.

The software package "Test Designer" includes:

  • module for creating tests and textbooks;
  • testing module;
  • training module;
  • module for viewing textbooks.

There are no restrictions on the number of computers on which the program is installed.

You can order the program at: [email protected].

Developer:  Pavel Kozlovsky

Publisher:  Publishing House "Balance"

Distribution Method:  CD-ROM

Price:  123 rub

This program can be used both at home and in any educational institution for testing in various fields of knowledge.

The designer allows you to cover an unlimited number of topics, questions and answers in one test, so with it parents can not only test their child’s knowledge of a particular subject, but also determine the general level of his erudition.

The program supports all five types of questions listed at the beginning of the article and allows you to include music, sounds, images, and videos in questions. In addition to using ready-made samples of questions and pictures available on the disk, the user can independently add his own options to the test.

On the CD-ROM with the program, ready-made verification tests are posted on the most relevant topics: the unified state exam, subjects of the school curriculum, traffic rules, etc.

Any data can be printed on a printer and exported to files of various formats (Word, Excel, HTML, XML, etc.).

Developer:  George Gulyaev

Distribution Method:  shareware

The AnyTest program is a tool for organizing testing people. It allows you to maintain a database of topics and tasks for tests, create any tests on its basis and test both a single person on a separate computer and a group of people (class, course, department of a company or institution, etc.) in a local network. With this program, it is easy to organize automated acceptance of tests and examinations in educational institutions, testing employees when they are hired for intelligence or knowledge of a particular specialty, certification testing of employees of enterprises, psychological testing of the team, etc. The program allows you to store the results of all tests, grouping them by specific people, by groups of people, by date, specific test and at any time print reports, as well as see all test details (which tasks fell, what answers were given, correct answers, points, received for each answer). Extensive administration capabilities built into the program allow you to configure it so that the testing process will take place even without the participation of a teacher or test organizer. All attempts to pass a particular test will be evaluated and saved with all the details and can be analyzed later at any convenient time.

You can download the program from our CD-ROM or on the Web, for example, at: http://soft-search.ru/programs/25-398-anytest-download.shtml.

Software testing is an assessment of the software / product being developed to test its capabilities, capabilities and compliance with the expected results. There are various types of methods used in the field of testing and quality assurance, and we will discuss this article.

Software testing is an integral part of the software development cycle.

What is software testing?

Software testing is nothing more than testing a piece of code for controlled and uncontrolled operating conditions, monitoring the output, and then examining whether it meets the predefined conditions.

Various sets of test cases and testing strategies are aimed at achieving one common goal - eliminating bugs and errors in the code, and ensuring accurate and optimal software performance.

Testing methodology

Commonly used testing methods are unit testing, integration testing, acceptance testing, and system testing. The software undergoes these tests in a specific order.

3) System testing

4) Acceptance tests

First of all, a unit test is carried out. As the name suggests, this is a test method at the object level. Individual software components are tested for errors. This test requires accurate knowledge of the program and each installed module. Thus, this check is carried out by programmers, not testers. To do this, test codes are created that check whether the software behaves as intended.


Individual modules that have already been subjected to unit testing are integrated with each other and checked for malfunctions. This type of testing primarily detects interface errors. Integration testing can be done using the top-down approach, following the architectural construction of the system. Another approach is a bottom-up approach, which is implemented from the bottom of the control flow.

System testing

In this testing, the entire system is checked for errors and bugs. This test is performed by interfacing hardware and software components of the entire system, and then checking it. This testing is listed under the "black box" testing method, where the expected software user conditions are checked.

Acceptance tests

This is the last test that takes place before handing the software over to the client. It is conducted to ensure that the software that has been developed meets all the requirements of the customer. There are two types of acceptance tests - one that is carried out by members of the development team, known as internal acceptance testing (Alpha testing), and the other that is conducted by the customer, known as external acceptance testing.

If testing is carried out with the help of prospective customers, it is called customer acceptance testing. If testing is carried out by the end user of the software, it is known as acceptance testing (beta testing).

There are several basic testing methods that form part of the software testing mode. These tests are usually considered self-sufficient in finding errors and bugs throughout the system.

Black Box Testing

Black box testing is carried out without any knowledge of the internal operation of the system. The tester will stimulate software for the user environment by providing various inputs and testing the generated outputs. This test is also known as Black-box, closed-box testing or functional testing.

White Box Testing

White-box testing, unlike the black-box, takes into account the internal functioning and logic of the code. To perform this test, the tester must have knowledge of the code to find out the exact part of the code that has errors. This test is also known as White-box, Open-Box or Glass box testing.

Gray Box Testing

Gray box testing or Gray box testing is a cross between White Box and Black Box testing, where the tester has only the general knowledge of this product necessary for the test. This verification is carried out through documentation and information flow diagrams. Testing is done by the end user, or by users who appear to be end users.

Non-functional tests

Application security is one of the main tasks of the developer. Security testing verifies software for confidentiality, integrity, authentication, availability and uptime. Individual tests are carried out in order to prevent unauthorized access to the program code.

Stress testing is a method in which software is exposed to conditions that go beyond the normal operating conditions of the software. After reaching a critical point, the results are recorded. This test determines the stability of the entire system.


The software is checked for compatibility with external interfaces such as operating systems, hardware platforms, web browsers, etc. The compatibility test checks whether the product is compatible with any software platform.


As the name suggests, this testing technique checks the amount of code or resources that the program uses to complete one operation.

This test verifies the usability aspect of software for users. The ease with which the user can access the device forms the main point of testing. Usability testing covers five aspects of testing - learnability, effectiveness, satisfaction, memorization, and mistakes.

Tests in the software development process

The cascading model uses a top-down approach, regardless of whether it is used for software development or for testing.

The main steps involved in this software testing methodology are:

  • Needs analysis
  • Design test
  • Implementation test
  • Testing, debugging, and verifying code or product
  • Implementation and Maintenance

In this technique, you proceed to the next step only after you have completed the previous one. The model uses a non-iterative approach. The main advantage of this technique is its simplified, systematic and orthodox approach. However, it has many drawbacks, since bugs and errors in the code will not be detected until the testing stage. Often this can lead to the loss of time, money, and other valuable resources.

Agile model

This technique is based on the selective combination of a consistent and iterative approach, in addition to a fairly wide variety of new development methods. Fast and steady development is one of the key principles of this methodology. The emphasis is on getting quick, practical, and visible exits. Continuous customer interaction and participation is an integral part of the entire development process.

Rapid Application Development (RAD). Rapid Application Development Methodology

The name speaks for itself. In this case, the methodology takes a rapid evolutionary approach using the principle of component construction. After understanding the various requirements of this project, a quick prototype is prepared and then compared with the expected set of output conditions and standards. The necessary changes and modifications are made after a joint discussion with the customer or the development team (in the context of software testing).

Although this approach has its share of advantages, it may not be appropriate if the project is large, complex, or has an extremely dynamic nature in which requirements are constantly changing.

Spiral model

As the name implies, the spiral model is based on an approach in which there are a number of cycles (or spirals) from all successive steps in the cascade model. After the initial cycle is completed, a thorough analysis and review of the achieved product or output is performed. If the output does not meet the specified requirements or expected standards, a second cycle is performed, and so on.

Rational Unified Process (RUP). Rational, unified process

The RUP technique is also similar to a spiral model, in the sense that the entire testing procedure is divided into several cycles. Each cycle consists of four stages - creation, development, construction, and transition. At the end of each cycle, the product / output is reviewed, and then the cycle (consisting of the same four phases) follows if necessary.

The use of information technology is growing every day, and the importance of proper software testing has grown at times. Many companies have staff for this special teams whose capabilities are at the developer level.

A significant part of the production process relies on software testing. What this is and how such activities are carried out will be discussed in this article.

What is called testing?

By this we mean the process during which the software is executed in order to detect places of incorrect functioning of the code. To achieve the best result, difficult sets of input data are intentionally constructed. The main goal of the inspector is to create optimal opportunities for failure. Although sometimes testing a developed program can be simplified to the usual test of performance and function. This saves time, but is often accompanied by software unreliability, user dissatisfaction, and so on.

Efficiency

How well and quickly errors are found significantly affects the cost and duration of software development of the required quality. So, despite the fact that testers receive wages several times lower than programmers, the cost of their services usually reaches 30 - 40% of the cost of the entire project. This is due to the number of personnel, since it is an unusual and rather difficult process to look for a mistake. But even if the software has passed a substantial number of tests, there is no 100% guarantee that there will be no errors. It is simply not known when they will appear. To motivate testers to choose the types of checks that are more likely to find a mistake, various means of motivation are used: both moral and material.

Approach to work

The optimal situation is when various mechanisms are implemented to ensure that there are no errors in the software from the very beginning. To do this, it is necessary to take care of competent architecture design, a clear technical task, and it is also important not to make corrections in connection when work on the project has already begun. In this case, the tester is faced with the task of finding and determining a small number of errors that remain in the final result. This will save both time and money.

What is a test?

This is an important aspect of the activity of the verifier, which is necessary for the successful detection of shortcomings in the program code. They are necessary in order to control the correctness of the application. What is included in the test? It consists of initial data and values, which should turn out as resulting (or intermediate). In order to more successfully identify problems and inconsistencies, tests must be made after the algorithm has been developed, but programming has not begun. Moreover, it is advisable to use several approaches in calculating the necessary data. In this case, the probability of detecting an error increases due to the fact that you can examine the code from a different point of view. Integrated tests should provide verification of the external effects of the finished software product, as well as its operation algorithms. Of particular interest are marginal and degenerate cases. So, in practice, activities with errors can often be revealed that the cycle operates one time less or more than it was planned. It is also important to test the computer, thanks to which you can check the compliance with the desired result on various machines. This is necessary in order to make sure that the software can work on all computers. In addition, testing the computer on which development will be carried out is important when creating multi-platform developments.

The art of finding mistakes

Programs often focus on working with a huge amount of data. Is it really necessary to create it completely? Not. The practice of "miniaturization" of the program has become widespread. In this case, there is a reasonable reduction in the amount of data compared to what should be used. Let's look at an example: there is a program in which a 50x50 matrix is \u200b\u200bcreated. In other words, you must manually enter 2500 thousand values. This, of course, is possible, but it will take a very long time. But in order to test the operability, the software product receives a matrix whose dimension is 5x5. To do this, you will need to enter 25 values. If in this case a normal, error-free operation is observed, then this means that everything is in order. Although there are pitfalls here, which are that during miniaturization, a situation occurs, as a result of which changes become implicit and temporarily disappear. It is also very rare, but still it happens that new errors appear.

Pursued goals

Software testing is not an easy thing because this process cannot be fully formalized. Larger programs almost never have the necessary exact benchmark. Therefore, a number of indirect data is used as a guideline, which, however, cannot fully reflect the characteristics and functions of software developments, which are being debugged. Moreover, they must be selected so that the correct result is calculated even before the software product is tested. If this is not done in advance, then there is a temptation to consider everything approximately, and if the machine result falls within the expected range, an erroneous decision will be made that everything is correct.

Testing under various conditions

As a rule, testing of programs takes place in volumes that are necessary for a minimal check of functionality within a limited range. Activities are carried out with changing parameters, as well as the conditions of their work. The testing process can be divided into three stages:

  • Verification under normal conditions. In this case, the main functionality of the developed software is tested. The result should be as expected.
  • Check in emergency conditions. In these cases, it is assumed to obtain boundary data that may adversely affect the performance of the created software. An example is the work with extremely large or small numbers, or in general, the complete lack of information received.
  • Exception Check. It involves the use of data that lies beyond processing. In such situations, it is very bad when the software perceives them as suitable for calculation and produces a plausible result. Care must be taken to ensure that in such cases there is a rejection of any data that cannot be correctly processed. It is also necessary to provide for informing the user about this.

Software Testing: Types

Creating software without errors is very difficult. This takes a considerable amount of time. To get a good product, two types of testing are often used: Alpha and Beta. What are they? When talking about alpha testing, then it means a test conducted by the staff of developers in "laboratory" conditions. This is the last stage of the test before the program will be transferred to end users. Therefore, developers are trying to deploy to the maximum. For ease of operation, data can be logged to create a chronology of problems and their solutions. Beta testing refers to the supply of software to a limited number of users so that they can operate the program and identify missing errors. The peculiarity in this case is that often the software is not used for its intended purpose. Thanks to this, malfunctions will be detected where nothing has been noticed before. This is quite normal and there is no need to worry about it.

Test completion

If the previous steps were successfully completed, then it remains to conduct an acceptance test. In this case, it becomes a simple formality. During this check, confirmation is made that no additional problems were found and the software can be released to the market. The more important the final result will be, the more carefully the verification should be carried out. It is necessary to ensure that all stages are completed successfully. This is what the testing process looks like in general. Now, let's dig deeper into technical details and talk about useful tools like test programs. What are they and in what cases are they used?

Automated Testing

Previously, it was believed that the dynamic analysis of the developed software is too heavy an approach that is inefficient to use to detect defects. But because of the increasing complexity and volume of the programs, the opposite view appeared. Automated testing is used where performance and safety are the most important priorities. And they should be with any input. As an example of programs for which such testing is appropriate, the following can be cited: network protocols, web server, sandboxing. We will further examine several samples that can be used for such an activity. If you are interested in free testing programs, then among them it’s quite difficult to find quality ones. But there are hacked "pirated" versions of well-proven projects, so you can turn to their services.

Avalanche

This tool helps detect defects by testing programs in dynamic analysis mode. It collects data and analyzes the execution path of the developed object. The tester is provided with a set of input data that cause an error or bypass the set of existing restrictions. Due to the presence of a good verification algorithm, a large number of possible situations are developed. The program receives various sets of input data that allow you to simulate a significant number of situations and create such conditions when the occurrence of a failure is most likely. An important advantage of the program is the use of heuristic metrics. If there is a problem, then the application error is highly likely. But this program has limitations like checking only one marked input socket or file. During an operation such as program testing, detailed information will be provided on the existence of problems with null pointers, infinite loops, incorrect addresses or malfunctions due to the use of libraries. Of course, this is not a complete list of detected errors, but only their common examples. Alas, developers will have to correct the flaws - automatic tools are not suitable for these purposes.

KLEE

This is a good memory testing program. It can intercept approximately 50 system calls and a large number of virtual processes, thus running in parallel and separately. But in general, the program does not look for individual suspicious places, but processes the maximum possible amount of code and analyzes the data transmission paths used. Because of this, the testing time of the program depends on the size of the object. When checking, the bet is placed on symbolic processes. They are one of the possible ways to complete tasks in a program that is being tested. Thanks to parallel work, a large number of options for the application under study can be analyzed. For each path, after the end of its testing, the input data sets from which the verification began are saved. It should be noted that testing programs with KLEE helps to identify a large number of deviations, which should not be. She can find problems even in applications that have been developed for decades.

Do you like the article? Share with friends: