QA specialty. Introduction to testing. Basic definitions

Lecture



  • Causes of QA specialty, its essence and purpose.
  • Why testing is a good start in IT
  • Disclosure of the concept of Quality Assurance and its components. Career options and career prospects

Quality Assurance engineer is a quality assurance specialist whose work is aimed at improving the software development process, preventing defects and identifying errors in the operation of a product.

Tasks and Responsibilities

The main task of QA is quality assurance. QA-engineer focuses on software development processes, improves them, prevents defects and problems (Makes sure you are doing the right things, the right way).

The quality assurance process consists of the following steps:
- verification of product requirements;
- risk assessment;
- planning ideas for improving the quality of the product;
- test planning;
- analysis of test results;

Inside the QA process, the Quality Control process is distinguished - product quality control. QC specialists analyze test results and are responsible for identifying and eliminating defects in the product (Makes sure).

An even narrower specialty within QA / QC is a software tester , which checks the finished product for errors (bugs) and non-compliance with the requirements, and then documents found defects and ways of their reproduction. Testing is one of the stages of quality assurance and control.

QA specialty.  Introduction to testing.  Basic definitions

There are 4 main roles:

  • Test Analyst - is engaged in static testing of requirements: it checks how complete they are, unambiguous, consistent, etc;
  • Test Designer - creates a set of tests based on the requirements, plans the configuration required for testing;
  • Test Executor - performs pre-prepared tests, documents found errors and steps to play them;
  • Test Manager is a manager rather than an engineer. Plans and monitors work related to testing: timing estimates, work on the schedule, monitoring the coverage of requirements with tests, setting tasks for team members, communicating with stakeholders).
"QA must understand exactly at what point the tester will take over, and have time to prepare a testing plan, test documentation, test environment by this time."
“The tester knows how the system works, where it does not work, and where it works not as intended. He knows how to determine what caused the error, or at least knows where to look for it. The more experienced the tester, the more difficult and interesting the work seems to him. ”

In Ukraine, the differences between the posts of QA and the tester are blurred, and in practice they are one and the same. Although theoretically the tester is testing the product as a result, and QA is working on providing processes that can improve the quality of the software as a whole.

“If we were talking about medicine, then QA would be engaged in prevention, and testers - in diagnostics. But it so happened that these two different professions became synonymous. Even in test plans for foreign customers, testers are recorded as QA Engineers. ”

The QA-engineer’s responsibilities include:
- Analysis and clarification of requirements with the customer or business analysts;
- Planning the testing process;
- Writing test cases (test scripts);
- Testing functionality;
- Identification of problem areas, entering them into the tracking system;
- Discussion of fixes with developers;
- Tracking the life cycle of errors;
- Re-test for fixed defects;
- Analysis of testing;
- Optimization of the testing process;
- Analysis of teamwork processes;
- Improved processes;
- Conducting test documentation.

“A good quality engineer understands the logic of the product and thoroughly knows the project: the requirements, the current state of affairs. He may have to answer clarifying questions from developers who know only their own piece of the problem and related areas. ”

A typical QA-specialist working day includes:
- Writing test cases, testing, documenting errors (depending on the phase of the project);
- Checking the bug-tracking system for the appearance of corrected errors;
- Stand-up rallies;
- Study of requirements, their specification at the customer;
- Active communication with developers;
- Registration of test documentation.

“Morning is a revision of tasks that fell or gathered overnight. Day - preparation and launch of compilations, analysis of the results of automatic tests, design of tickets, etc. Evening - restarting compilations and updating task statuses in a bug tracker. ”

Advantages and disadvantages

QA-engineers are attracted by the opportunity to improve the quality of the product and at the same time master various technologies and delve into the details of the product.

"I like the opportunity to realize my perfectionism without harming social life."

Some respondents note that interest in work increases over time: at first it is not clear what is being done and why, and then comes the understanding and the desire to take on complex tasks.

“This profession requires the presence and constant use of analytical skills. It does not allow to relax and mentally degrade, but makes us constantly study new technologies and areas of knowledge. ”

Not least is the opportunity to join the world of high technology and high wages. Some quality engineers came to their profession because they wanted to IT, and the threshold for entering QA is lower than for a programmer. Some consider QA work more interesting and diverse than the work of the developer.

“I went to QA because I’m interested in IT, but I don’t want to be a programmer. I prefer to understand something, look for mistakes, especially in logic, which BA and the maidens could miss. ”
"The tester should be smarter than the programmer ... Well, at least, smarter!".
“The thinking of programmers and testers is“ sharpened ”in different ways. The programmer is looking for a short solution, reaches the goal - and after that strives to new tasks. A tester thoroughly verifies unrecorded moments, checks different combinations. ”

The main disadvantage is the monotonous component of work, especially at the beginning of a career. These include passing test cases for manual testing and working with documentation.

“The disadvantages, most likely, can be called most of the routine work that must be done necessarily.”

How to become a QA-specialist and where to go next?

Quality engineers are not trained in universities (exception: at several faculties, KPIs read a semi-annual course devoted to testing). Future QAs acquire knowledge in courses or independently.

“If programmers from school age or elementary courses of an institute are interested in some kind of technology industry and start developing in this direction (writing first bots for games, account hackers, websites), I have never heard of such testing. In style - “Here I’m testing applications from the 11th grade and get high from it”. It is enough to have analytical skills, a little care and ingenuity. Well, and, of course, understand computer technologies, and read at least a couple of books on testing. ”

To become a QA , you need to understand the software development cycle, study the theory and basic testing tools, have a good level of English.

“The vast majority of vacancies require knowledge of English. Often, large companies take a junior with knowledge of English, refusing candidates with extensive experience, but without knowledge of the language. "

Basic knowledge of the theory of testing is the ability to answer questions:
- what is testing and what is it for;
- what are the types of testing;
- What is a bug, and what is its life cycle;
- what documentation is used for testing.

“Read a few books and many articles, forums on this topic. It is advisable to learn some programming language, as well as HTML, SQL, CSS etc. This will allow them to do their job better and move faster along the career ladder. ”

QA is responsible for improving the quality of the development process, and therefore must have some of the skills of other team members:

  • From the developer - an understanding of the technical constraints for the implementation of a functional and at least a superficial understanding of the code;
  • From business analyst - understanding the market and target audience;
  • From PM - understanding the integrity of all parts of the project.

You also need to be able to look at the product from the end user's point of view.

“The QA profession requires you to understand all the technical aspects and goals of your business, as well as be able to properly communicate with customers / managers / developers. Do not be afraid to ask questions, starting with "What if?". Very often it saves hours, and even days of development for the whole team. "

If we talk about personal qualities , it is necessary:
- Have a broad IT outlook and craving for learning new;
- To be able to communicate - the quality of communication in the development team directly affects the quality of the software being created;
- To be attentive to detail, assiduous, responsible and persevering;
- Possess analytical skills, be able to model and work with abstractions;
- Have a critical or even “destructive” mindset, aimed at finding errors;
- To distinguish a fly from an elephant.

"From skills - luck: if you stumble on a flat place, then you are in testers."

Among the prospects for professional development there are 3 areas:

  1. Learn new areas and grow as QA: junior QA -> middle QA -> senior QA -> QA team lead -> QA-manager -> Head of QA department.
  2. Master automated testing and move along this thread (requires deeper technical knowledge).
  3. Re-qualify as a business analyst or programmer.

Having received a sufficient amount of experience, you can grow to the project manager and then develop as a manager (senior project manager -> CTO). There are also many QA training courses now open, so the main work can be combined with teaching or counseling.

“And there was a case when a QA girl went to work in a theater actress.”

Software testing - basic concepts and definitions

Software testing (Software Testing) is a check of the correspondence between the actual and expected behavior of a program, performed on a final set of tests selected in a certain way. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004] In a broader sense , testing is one of the techniques of quality control, which includes activity in work planning ( Test Management ), test design ( Test Design ), test execution ( Test Execution ) and analysis of the results ( Test Analysis ).

Verification is the process of evaluating a system or its components to determine if the results of the current development stage are satisfactory to the conditions formed at the beginning of this phase [IEEE] . Those. whether our goals, deadlines, project development tasks, as defined at the beginning of the current phase, are being fulfilled.

Validation is the determination of the compliance of the software being developed to the user's expectations and needs with the system requirements [BS7925-1] .

A Test Plan is a document that describes the entire scope of testing, starting with a description of the object, strategy, schedule, criteria for starting and ending testing, up to the equipment needed during the operation, special knowledge, and risk assessment with options for resolving them. .

Test Design is a stage in the software testing process at which test cases are designed and created (test cases) in accordance with previously defined quality criteria and testing objectives.

A Test Case is an artifact that describes a set of steps, specific conditions and parameters necessary to verify the implementation of a test function or its part.

Bug / Defect Report (Bug Report) is a document describing a situation or sequence of actions that led to incorrect operation of the test object, indicating the reasons and the expected result.

Test Coverage is one of the test quality assessment metrics, which is the density of test coverage of requirements or executable code.

Detailing Test Case ( Test Case Specification ) - is the level of detail of the description of the test steps and the desired result, which ensures a reasonable ratio of the time of passage to the test coverage

Test Case Pass Time is the time from the start of the test case to the result of the test.


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Quality Assurance

Terms: Quality Assurance