D
D
Dmitry Filimonov2015-10-01 04:14:12
Software testing
Dmitry Filimonov, 2015-10-01 04:14:12

How to teach a girl the basics of web application testing?

Read a lot, need advice.
A slightly non-trivial task fell to me. The girl, one might say, my common-law wife, wants to become a tester. She herself doesn’t really know which one, but she wants to take initial positions in IT. After some thought, we settled on testing web application interfaces, because. this is, firstly, a trend (SPA time), which will only grow, and secondly, there is a huge freedom in testing on the web. Other types of applications (mobile, desktop), decided to cut off, because. the entry threshold is higher (narrow tools, less popular, more tethered to the technology). Other types of testing - even more so. Firstly, a significant part of the tests that are "close to the code" or "close to critical features" are done by programmers, and secondly, you can forget about distant tests (like load, smoke, etc.) at the initial stage. I myself have been familiar with the web for a very long time, full stack developer, as they say right now. From technologies: python/js/django/flask/backbone and everything related. I mainly write unit tests (python unittest), rarely test front-end, because freelancing and projects are not so big, but I have experience with mocha / jasmine + selenium, as well as python + selenium for e2e testing. For myself, I try a lot of things, but still I’m not a tester, I just have to know and be interested in how it is, plus there are things where it’s impossible without testing.
So, in general, we have my understanding of how it works and can be arranged, and the girl has practically zero knowledge. She has quite a technical education behind her (security in IT), she coded something, knows a little about the web. It can be characterized as follows: html / css, a bit of python (on my initiative), a rough idea of ​​\u200b\u200bprogramming paradigms (OOP), knows something about networks (gateway, route, dns, dhcp, most likely even remembers what bgp is ( sic!) etc.), but no experience at all. There is analytical thinking, but there is no confidence, "there is no impudence to do what seems right and not be afraid to write great."
And I, having comprehended this situation, decided to help a little. We now have such a task on the web that we need people who would test interfaces, write test cases, use some kind of automation language, write reports, and interact with UI designers. I see this as the most promising at the moment, in addition, it is potentially possible to go anywhere from there, even to development, even to managers, or you can, after receiving a significant background, go to mobile application testing (especially considering that the web also breaks through and quite confidently), and with a great desire, you can generally go anywhere. And there are vacancies (I didn’t monitor much myself, I just know that there are).
But from my point of view, you need to know a lot: I have a feeling that a tester is almost a developer. How can you test the interface without understanding how the layout works (html / css / svg, especially features with selectors)? How can you test complex scenarios without knowing the basics of front-end and back-end interaction (cookies, ajax, js basics, so as not to be scared, if anything)? In addition, it would be nice to know something about the backend. In addition, in a real place there may be some combination of angular, karma test runner, jasmine or something like that, you should be in the subject.
What I did: I decided to start with python, because JS is taught like a first language and die in prototypes, very interesting type casting, 100 ways to declare a private member and shoot in the legs, with millions of frameworks/paradigms/standards/modules/classes... It's a very difficult language, I think. Starting with popular Java is generally a failure, because I myself am only familiar with it at the university level, and secondly, I think that this is not the best language for development and learning, besides, we are still in the frontend area. In python, we have already written a test class and a unit test for it in order to roughly understand the essence of testing. Then I said that if you do the opposite, then it will be TDD. And if you think about and describe what you need before TDD, then it will be BDD. I understand that there are many nuances, but I try to make sure that a person has questions, and he goes to google. Along the way, I explain some features like why self is needed (for non-Pythonists - this is a pointer to the current object), what is typing, OOP, I give links to habra, to the docks, I show how to debug, parse errors, in general, I try explain as much as possible from programming in general, I can simultaneously heal on the topics "and you know, there are pointers in C, and they work there like this ...", because the language is all garbage. With a significant probability, she will have to learn either js or, God forgive me, Java. And all this will be very simple, I believe, if she knows the basic concepts. I try to explain as much as possible about programming in general, I can simultaneously heal on the topics "and you know, there are pointers in C, and they work like this ...", because the language is all garbage. With a significant probability, she will have to learn either js or, God forgive me, Java. And all this will be very simple, I believe, if she knows the basic concepts. I try to explain as much as possible about programming in general, I can simultaneously heal on the topics "and you know, there are pointers in C, and they work like this ...", because the language is all garbage. With a significant probability, she will have to learn either js or, God forgive me, Java. And all this will be very simple, I believe, if she knows the basic concepts.
In addition, we have installed the selenium webdriver and now we are writing functional tests (e2e) of real sites in the same python, we press the buttons, fill in the fields, go through the pages. Sometimes I write test pages where you need to move the mouse, click, hovers are different and check the viability to make it more difficult. All these are far-fetched examples, but the essence explains.
Periodically I explain that selenium is not only a webdriver and that there are other test runners, this is all for the horizon. About testing itself (which happens), I advised lectures from Yandex + a couple of articles from Habra, because I think that taking a book where they test abstract traffic lights is useless.
I think my approach is clear, I teach to read the docks and try to create something from the scraps of information in her head, and my task is "to know the essence + instant practice, and the nuances are needed only when you know that they exist." We look at the docks, if something is not known, then we must immediately google it, if fundamental information is needed, then articles / fragments of books on the basics and so on.
So. Am I right at all? My task is to explain the basics of the web, incl. programming, popular testing tools, popular paradigms so that you can become a junior tester. I feel that I am not a teacher, because I have some kind of vision automatically, as it should be, and I already build everything from it. There is a feeling that I am saying a lot of information at once, which leads to a stupor. There is a feeling that I cannot convey everything that I know, because there is a lot of everything and often everything drags on for long monologues, when I show something, I do it, but a person’s brain breaks. Does anyone think I'm wildly wrong, perhaps? Maybe there is fundamental literature with the basics of web testing in general? She started reading "dot com testing" from someone, in my opinion you shouldn't read it at all, because everything that is there can be seen on the wiki, a little thought. Maybe there are some really super books, such as Kormen in algorithms, for example? Or should I change my approach altogether?
I myself am in some confusion, because I began to feel that I, rather, "put information in my head" than explain something to her ...%)

Answer the question

In order to leave comments, you need to log in

5 answer(s)
Z
Zakharov Alexander, 2015-10-01
@DmitryPhilimonov

It seems to me that after the words

Girl, you can say my common-law wife
many have stopped reading ... You should have placed such information at the end. In the style of "yes, here's another - this girl is my common-law wife."
There are all sorts of historical anecdotes on this topic. I like the following:
Fan: Sherr Mozart, I'm thinking of starting to write symphonies. Could you suggest how can I get started?
Mozart: A symphony is a very complex musical form. Start with some simple ditties, and gradually complicate, move to a symphony.
Admirer: But Herr Mozart, you started writing symphonies at the age of 8.
Mozart: That's right. Because I never asked anyone how to write them.

In principle, your wife, albeit a civil one, is doing the right thing, that she is trying to understand what you are doing. You have a very good wife. Tell her, but don't be a bore. She herself will choose what from what you do will be interesting to her.

H
HappySmile, 2015-10-08
@HappySmile

Marry her! And let him cook borscht and nurse the children. Why clog your head with testing)))
For from the description it is clear that testing does not suit her. And in general, what kind of fashion went to bring their girlfriends to testing.

A
Anastasia Nosova, 2016-04-29
@nastasya1011

the only source on test design that can tell you how to test other than relying on your own subjective common sense A Practitioner's Guide to Software Test Design
Lee Copeland

E
EkS2019, 2019-10-15
@EkS2019

In theory, the demand for testers should grow. But something in my big city of Tyumen out of 167 vacancies for programmers, only 3 vacancies for testers. And new vacancies are rare in this profession.

L
Lilia Urmazova, 2020-10-20
@lilia_urmazova

I agree with Savin.
ISTQB - well, questionable. I think this is a bit harsh to start with.
For testing minimum:
-----------------------------------
Manual testing
1) Basics of test design (for starters confident knowledge of partitioning is enough, but you can take something more difficult for review).
2) Working with requirements - just a must have (analysis, quality assessment of requirements, the ability to ask questions to stakeholders)
3) Dealing with defects - quality and prioritization.
4) Fundamentals of network protocols
5) Fundamentals of SQL
6) Fundamentals of REST
7) Fundamentals of software architecture
8) Agile work and difference from other SDLCs
9) XML / JSON Automation:
10) Basic tools for work
1) UI Automation (Selenium)
2) REST Automation
3) Mobile automation (Appium or something like that)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question