Добавить юзера c обычной подпиской

Стань тестировщиком сегодня
Level 4
Roles in testing. Test design
It is not very clear from the heading what will be discussed in this lesson. To put it simple - today you will find out what the testers have to deal with and what tasks this profession involves. This topic is very broad and includes not only Junior QA specialization, but also all existing positions in the field of testing. It is very important to know who is who in your future workplace.
So let's consider the development process ->


The picture is jocose, of course. But as they say, there is some truth in every joke. It very well depicts the distortions in the world of IT development, herewith the process sequence is immediately understandable.
But we are currently interested in processes inside the circle of testers. Therefore, we will pay attention to Roles in testing - these are posts/job duties in testing hierarchy, and Activities - what these people immediately do. In practice, during my career I had to try all of these roles myself, so I am pleased to present them to you, but I should tell you right away that the novice tester will not immediately face all of these roles.
Activities of the software testing process
The whole testing process includes about 20 main activities:
- For the clear structuring of activities by work stages they will be considered in the groups of corresponding testing work stages.
- Not all activities are absolutely necessary, but most of them are recommended for fulfillment.
So, let's see which roles can be found in testing:


Test Manager, Test Project Manager
Performs management oversight.
Responsibilities:
-
Maintains technical direction
-
Receives necessary resources
-
Provides management reports

Test Designer
Determines, prioritizes and ensures development of test cases.
Responsibilities:
-
Develops the testing plan
-
Develops the testing model
-
Evaluates testing effectiveness

Tester
Performs tests.
Responsibilities:
-
Performs tests
-
Keeps record of the results
-
Restores tests and the system after crashes
-
Documents change requests

Test System Administrator
Provides management and support of test environments and data.
Responsibilities:
-
Administers the testing management system
-
Installs and manages access to test systems

Database Administrator, Database Manager
Provides management and support of test data (databases).
Responsibilities:
-
Administers test data (databases)

Test analyst
Sets and defines operations, attributes and relationships of the test classes.
Responsibilities:
-
Sets and defines the test classes
-
Sets and defines test patterns (packages)

Test developer
Sets and defines operations, attributes and relationships of the test classes.
Responsibility:
-
Creates test classes, prepares test packages and integrates them into the test model
Role
Description
Regarding the roles and tasks associated with testing and quality assurance several opposing ideological trends have developed that are diligently cultivated by the followers of these ideas. Viewpoints are largely opposed and contradictory. Testing is considered, on the one hand, as a semi-mechanical process that does not require special qualification: the tester is seen as just a "clicking person" who simply runs an application, waits till it "fails", then joyfully reports an error and goes on.
But we use a completely different approach - the time of simple clicking is long gone, and the management of labor costs process, time and resources is based on Agile and RUP methodologies. And this famous mouse-clicking is based on test design technology.

I'll tell you the secret of all IT folks, though everybody say that they use some kind of methodology, we do everything by scram. For example, in the real world every company has its own micro-climate, its own rules, which will affect the selected methodology. Let's take a closer look at these methodologies. Wait however, let's first learn what the forces of evil are busy with now?

Testing accticities by RUP
Roles for testers are those operational orbits that the people from software testing hierarchy occupy. In practice, when you come to work for the first time, it is logical that you will start with the position of the tester. And if you are the only one in your company, you won't need this scheme at all. But in order to work in a large company it is necessary to interact with all the roles in testing, understand everyone's responsibilities and aspects of work.


And who am I going to be in this table??? Probably they'll hire me as a test manager immediately after courses completion and will drive me home in a red Ferrari...
These are only dreams! The roles of juniors are Tester and Test Designer. These are the basic roles necessary for every tester. Passing and writing tests is what you'll learn in these courses. As for the test analysis - you can only master it with experience. After getting sufficient knowledge about the project you will be able to analyze test cases of other testers and immediately see that they are wrong!! Or at least find their drawbacks and, what is equally important - redundant steps and tests.
As for the Test Manager - this is true art, of course, but you will learn to create a test plan that includes all the roles listed above, and try being the test manager.
Next we shall talk in more detail about the activities of testing roles

Activities of the software testing process
Tests planning
-
Setting test requirements
-
Risks evaluation
-
Testing strategy development
-
Resources identification
-
Creating schedule/sequences
-
Testing plan development
Test design
-
Analysis of the amount of work
-
Identification and description of test cases
-
Identification and structuring of test procedures
-
Review and evaluation of test coverage
Tests implementtion
-
Recording or programming the testing scripts
-
Identification of the test-critical functionality in the Design and implementation model
-
Creating/preparing external datasets
Execute Test
-
Test procedures execution
-
Tests performance evaluation
-
Recovering after failed tests
-
Checking the results
-
Studying the unexpected results
-
Description of the located bugs
Tests evaluation
-
Evaluation of the application or system functionality coverage with test cases
-
Evaluation of code coverage
-
Bugs analysis
-
Criteria identification of testing completion and success (metrics analysis)
Companies all around the world are trying to create products of better quality in less time. To achieve this, many manufacturers have started to apply agile development methodologies. This approach speeds up product time to market, improves its quality and enhances productivity.
But now the truth. The truth is that Agile is the popular process nowadays and all the companies want to use it. Therefore, knowing this methodology is advantageous, and sometimes even necessary for the successful CV. But despite the fact that everyone wants to use Agile, very few really use it, because Agile involves daily meetings and regular flashbacks. And not every company implement all Agile recommendations on practice. Let's review the flexible development methodology in more detail. Its essence is presented in the diagram:
Agile is the range of development processes that combines the principles of all agile methodologies. Agile does not involve step-by-step instructions and specific recommendations, but only outlines the general principles that use agile methodologies. They have largely formed the basis of the two most common of them - scrum and kanban.
It is to your advantage to read more about scrum and add this wonderful word to your CV :')


Practical aspects of the test design
The most common techniques of design test are listed below:
-
Equivalence Partitioning - EP. You partition all the possible ranges of values to correct and wrong, and choose one value from every range. For example, you have a range of valid values from 1 to 10, you have to choose one correct value (within the range), for example, 5, and two wrong values outside the range: 3 and 12.
-
Boundary Value Analysis - BVA. Taking into consideration the example above, for positive testing we shall choose the values corresponding to the minimum and maximum boundary (1 and 10) and values above and below the boundaries (0 and 11). Boundary value analysis can be applied to fields, records, files and any other kinds of entities that have boundaries.
-
Cause/Effect - CE. This is usually the input of combinations of conditions (causes) in order to get the response from the system (effect). For example, you check the functionality of adding the client by using a special screen form. To do this, you will need to enter some fields, such as "Name", "Address", "Phone Number" and then click "Add" - this is a "Cause". After clicking "Add" the system adds the client to the database and displays his number on the screen - this is an "Effect".
-
Error Guessing - EG. This is the situation where the test analyst uses his knowledge of the system and the ability to interpret its specifications to "guess" under which input conditions the system may get an error. For example, the specification reads: "The user must enter the code". The test analyst will think: "What if I do not enter the code?", "What if I enter the wrong code?", etc. This is the error guessing.
-
Exhaustive Testing - ET - this is an extreme case. By this technique you should check all the possible combinations of input values, and, in essence, this should locate all the problems. In practice, applying this method is unfeasible due to the huge number of input values.
1
10
1
10



Agile methodologies are aimed at minimizing the risks by narrowing the development down to a series of short cycles called iterations, which typically last for two-three weeks. Each iteration itself looks like a miniature software project and includes all the tasks required for functionality mini-incrementation: planning, requirements analysis, design, programming, testing and documentation. Though one iteration is usually insufficient for release of the new product version, it is implied that the agile software project is ready for release at the end of each iteration. At the end of each iteration the team performs reevaluation of development priorities.
So, we have seen the roles, methodologies and activities of testing. Now we are ready to move on to the most responsible practical part of testing. The ability to test depends on the knowledge and skills of using test design. This is the "core" of practical testing.
Practice
I guess you can't wait to apply this super-valuable knowledge in practice. Let's take a look at the classic example of the contacts form, applying the techniques of test design.
Attention, an assignment
Test the functionality of the application acceptance form. Link to the form.
So, where does the testing begin? The question is not rhetorical. Testing begins with requirements.
Let me tell you the secret of requirements: requirements are not always presented in an explicit form, moreover, there may be no requirements or they may be given orally. Therefore, the experienced tester should be able to formulate the software requirements on his own, based on the description, RS (requirements specification), mockups, product discussion at the meeting and common sense.
Let's look into the testing requirements of this form. They are provided in the following table for convenience:
Element
Type of an element
Requirements
Dataset:
-
Consultation
-
Testing execution
-
Advertisement positioning
-
Error on the site
* - does not affect the process of application acceptance.
Case type
combobox
Contact person
1. Required to fill
2. Maximum 25 characters
3. Use of number and special characters are not allowed
editbox
Contact number
editbox
-
Required to fill
-
Accepted symbols "+" and numbers
-
"+" can be used only in the beginning of the number
-
Accepted formats:
starts with plus - 11-15 numbers
061326164
2925167
+31612361264
+375291438884
without plus - 5-10 numbers, e.g.:
1. Required to fill
2. Maximum 1024 characters
text area
Message
Send
button
Condition:
1. By default - Disabled
2. After filling of the required fields becomes Enabled
Actions upon click
1. If the entered data are correct - send the message
2. If the entered data are NOT correct - validation message



Definition of the test dataset
-
Based on the field requirements, using the test design technology, start defining the test dataset: depending on whether the field is required or not, define which fields should be checked for null value, because it may cause an error (indicated as [1] in the resulting table)

-
since exhaustive testing is not feasible due to the huge number of possible value combinations, it is first necessary to define the minimum dataset. This can be done by using techniques such as Equivalence Partitioning and Boundary Value Analysis. Let's denote it as [2].
-
In the form there is a field of an aggregate type (numbers are used along with characters), it has a special data format and, therefore, selecting the test data for it is a time-consuming task. Within this article let's focus on performing just a simple test on formatting and basic requirements described in the application acceptance form.
-
Upon completion of data generation, by using standard techniques one can add some extra values based on personal experience (Error guessing technique) - this will include the use of special characters, very long strings, various data formats, registers in strings (Upper, Lower, Mixed cases), negative and zero values, keywords Null - NaN - Infinity, etc. Here you can include anything you think may make the application fail [2]] in the resulting table)
Result of test design application
Based on the Cause-Effect technique and, if possible, the available use case options let's create a template of the planned test. This document will include the steps and expected results of the test, but with no specific data, which are used in the next step of test case development.
Action
Expected result
1. Open the form to send a message
-
Form is opened
-
All fields are empty by default
-
Required fields are marked with *
-
"Send" button is disabled
2. Fill in the form fields:
-
Application type
-
Contact person
-
Contact phone number
-
Message
-
Fields are filled in
-
"Send" button is enabled
3. Click "Send" button
-
If the entered data are correct:
-
"Application sent" message is displayed on the screen.
-
The new application appeared in the list on the "Applications" page.
-
If the entered data are NOT correct:
-
Validation message with all errors is displayed on the screen.
-
Application did NOT appear in the list on the "Applications" page.
Example of the positive test case (all fields are OK):
Action
Expected result
1. Open the form to send a message
-
Form is opened
-
All fields are empty by default
-
Required fields are marked with *
-
"Send" button is disabled
2. Fill in the form fields:
-
Case type = consultation
-
Contact person = Ilya
-
Contact number = +38-056-111-11-11
-
Message
-
All fields are filled
-
"Send" button is active (Enabled)
3. Click "Send" button
-
"Application sent" message is displayed on the screen.
-
The new application appeared in the list on the "Applications" page.
4. Open the form to send a message
-
Form is opened
-
All fields are empty by default
-
Required fields are marked with *
-
"Send" button is disabled
5. Fill in the form fields:
-
Case type = consultation
-
Contact person = Ilya
-
Contact number = (916)333-33-33
-
Message = ... 1024 charaters
-
All fields are filled
-
"Send" button is active (Enabled)
6. Click "Send" button
-
Validation message containing all errors is displayed on the screen: "In the "Contact person" field the use of numbers and special characters is not allowed."
-
Application did NOT appear in the list on the "Applications" page.
Вебинар уровня 4
Прежде чем выполнять практическое задание, тебе будет полезно посмотреть вебинар посвященный этому уровню.

I feel that you acquire the wise tester viewpoint. Use it in practice.
Task 1 should not be hard for you:
Use test design technique to create a test case. Write a test case for testing the contact form on the site with cookies.
Use a Google table to create the test case.
Task 2 is even more interesting:
Test the site and locate all bugs! It's simple! Everything that works wrong is a bug!
Send all assignments to me via the form.


Мой юный падаван, я принес тебе полезные статьи для прохождения уровня:
Статья про проверку email: Валидация емейл адресов в суровом варианте.
И антитезис: о том что стандарты слишком замороченные
Также полезно знать:
В каком формате бывает почтовый адрес
Для перехода на уровень 5, необходимо набрать минимум 19.2 балла (60%) за задания уровня 4.





