Software Testing: How to start


Typical day conditions, which gets the beginner: A small organization that takes orders on the development of certain software and consists of a director and several programmers, each of which performs all the possible problems - from communication with the customer to the programming, debugging, implementation and technical support. From the documentation - only "political" TK to formally meet customer requirements, and contract.
With the development of the IT-market, even small by software organizations gradually feel the need to transition from natural to write code to a more or less formalized the development process. Primarily this is done to obtain predictable timing of delivery of projects, but they often come to the fore and the quality of the final product as a weighty factor in the competition. But quality can not be achieved without adequate testing.
The desire to write this article appeared quite a long time as a result of reading the head of the newly created department of the quality of the mass of literature on the testing of software and communication in online forums of quality. The main problem with all these sources of information - a very strong sciolism as presented in general, the basic things and a complete unwillingness to move from generalities to concrete examples, of which a novice can understand anything. As for tuition fees, programs of most courses (at least in this country) suggests that the listener works in the already prepared the organization with an established process for developing, and he needed only to provide the necessary knowledge and skills so that he could in the process as possible painless to join.
And what to do to someone who is just a great desire to improve their efficiency, reduce unnecessary time and expense, to organize the work of subordinates and his own, nor is there any idea where to start and what to begin? Just what I want to tell in this article as an example of some small organizations, many of which can be very close. I do not think the proposed solutions ideal, but they were good enough for my conditions, as did the Software testing company process more efficient. The main goal - tell the tester where to start, push it in the right, in my opinion, direction.
Motives for the appearance of the tester
So, today the typical conditions under which falls the beginner: A small organization that takes orders on the development of certain software and consists of a director and several programmers, each of which performs all the possible problems - from communication with the customer to the programming, debugging, implementation and technical support . From the documentation - only "political" TK to formally meet customer requirements, and contract.
If the project is more or less long, then over time the problem of correcting errors, taking into account user feedback and technical support engineers acquire such a scale that programmers often themselves, "bottom", initiated by an increase in the state to "a girl who will poke a button." Thus the organization appears Tester who can go two ways.
First - really "poke buttons. Naturally, when working in this way errors in the tester to quickly come to an end, and users - are what causes all to accuse him of incompetence (and what you would like to “poke buttons girls”???).
Bad besides the fact that at this stage, unfortunately, the special assistance and cooperation from anyone should not wait. Typically, communication with the surrounding looks like this: "On - Test" or "What mistakes? I have everything working. " Therefore, the second way - to organize work more efficiently.
At this stage the important thing to understand the basic purpose of testing.
Definitions in the literature are many, but I like most: "The main purpose of Software QA Services - make sure the system does what you need and does what is not needed." And, again, in simple terms, the main purpose tester - how you can develop a more comprehensive system of tests and, thus, do everything, what would the next time do not forget what he did, he found and how to fix this check found.
When nothing yet …
It is important to begin to understand and formalize your existing development process. You can assume that it is not, but objectively it is simply not good enough. Collect and examine all job descriptions, enterprise standards and other necessary documentation. It may well be that all of this and there - often in small organizations, the process occurs at the level of oral communication. The most harmful consequence of this - the lack of clearly defined responsibilities. The presence of job descriptions not only guarantee that can always be found responsible. During their development are surprisingly good omissions and logical gaps in the existing labor organization. Therefore spelling of the department of testing and job descriptions (even for positions where there is not) - the first necessary step. In the future, ideally, our goal - to get his department to communicate with the outside world only through the documents.
Hence, the first conclusions:
·         terms of their responsibilities in the organization need to specify (often, incidentally, means "narrow") and secure;
·         testing needed, but oral histories developers have documented the system requirements (in simple terms the requirements, a list of what the system must do and how to comply with conditions). The more elaborated list of requirements, the easier it is to test the system;
·         found defects must somehow register in such a way so you can keep track of their life cycle;
·         test results must be stored somewhere in a convenient form of search and analysis;
·         In no case does not begin immediately with test automation. It is on that and "Automation" to automate the existing and established process, and if you start right away with her, nothing but the huge financial and time losses, will not work.
They have and what we do …
And, of course, be familiar with the theory. Do not be too lazy to allocate a week reading books and Internet forums devoted to testing, though after they left feeling full of emptiness in the head and a sense of inferiority, until you come to the conclusion that the theory should be applied, guided by common sense. You never get to implement RUP in an organization full of five programmers and three testers, so do not need and try to fully adapt to his theory, which uses a giant with many thousands of staff and a budget of billions.
Rational Unified Process - a platform IBM, presents an extensive set of methods for quality assurance at all stages of its development
Need to get out everything useful for you, ruthlessly discarding or simplifying what you think and reason, will only be time consuming. In principle, the whole sea of document types you can start to leave only four, and they simplify to the level of understanding in your organization:
·         test plan document containing brief information about the system, the forces and means by which it is supposed to test what is supposed to test (up to the list, or even a description of tests), about plans for the timing, criteria for the testing and recognition of the successful release, the risks and Other information that may affect the testing process. In literature and on the Internet there are lots of pieces of test plans from which to draw for himself the desired template. There are two approaches to writing the test plan - static and dynamic. Static - when the test plan is written once during the development of testing strategies, and contains only immutable data. And dynamic - when the test plan contains more details and tests, which in the course of software development are corrected and supplemented. Frankly, I do not understand why doing this if any changes can be made in the related test plan documents, which allows a better structuring and tracking versioning, but - a matter of taste. I take the first approach.
·         test case - a document describing a specific test. Its specification should not be excessive - after all, alleged in the article working conditions you will not get to it neither the strength nor the time. The main requirement for the test case - a description of testing and expected results of a well-defined independent of the functionality (or properties) software, which must be unequivocally clear, and you and your subordinates, if any. The beauty of these test cases is that they can then be structured as you want, making a set of tables of control (with test automation is to be set);
·         Table Control (Check-list, he’s Suite - a set) - actually, in the previous paragraph I wrote about them. This spreadsheet document, combining (via hyperlinks) set of test cases with notes on the outcome of their performance and notes.
·         test report - the result document that contains a link to a table control and the findings about the health of release signed by the tester and project manager.
Of all the sea of document types offered, such as RUP, can start to leave only four
At each assembly are all mentioned documents (except, of course, the test plan). As such, they have enough to at the end of the design stage to know that all the basic functionality of the system was tested, and to assert that the assembly is operational.
And here we go to storage and versioning. Strictly speaking, to start the approach is quite simple. Somewhere on the file server generates a shared resource, which creates folders for each project. Each such directory contains the following elements:
·         file with the test plan;
·         template file test report;
·         directory TestCase with a set of test cases for this project;
·         Catalog Builds, which are stored in separate folders exhaust test cases for this build (almost a copy of the directory TestCase, the documents from being used as a template) and a test report.
To begin with (and for later) such a structure would be enough to control the testing process. Preferably in a folder for each assembly to put the file with a list of requirements for this iteration.
Lists of requirements and registration errors
Requirements, unfortunately, the hardest - programmers do not like to deal with routine, especially in cases where it requires a significant intellectual strain. However, the requirements and needs to know what to test. Therefore, if they do not, the tester must make a list of requirements itself, at least in the form of Excel-plates. For this we have to communicate and to leadership, and with the programmers, and with the customer, and with his own common sense (in this case, again, referring back to the customer), but it is very useful, ultimately, work. By the way, and the development of test cases is very much dependent on the requirements that are checked and described in these tests.
Actually about the primary structure of all the documents, but these documents are not self-sufficient, they just describe what you want to check, but during the inspection found errors that need to process and track.
So at this stage it is time for the introduction of BTS.
Bug Tracking System - a system of registration and tracking the life cycle of defects
For a start it can be even Excel-file with customized AutoFilters, but, ideally, it is desirable to immediately determine the software, which will then be used for automated testing, bug tracking, requirements management, documentation, etc. There are a sufficient number of producers who make the whole specialized complexes. Knowing what area of IT organization operates, what databases and development environments in which we can choose the appropriate product. For example, if you want to use Rational, then as a system of registration and tracking is better to install Rational Clear Quest. And, initially as a working database is better to choose the Access connection to easily convert data from it into anything at the subsequent change management software.
Like any other writings, BTS, first met opposition from developers, but almost a week they can not work without it. Another additional advantage of these systems - formalization of communication between departments and the elimination of misunderstandings in matters of justice. Plus for managers - a way to objectively assess the skills and contribution to the cause of their employees.
Three conditions for a successful start
Thus, for initial testing organization must perform, we can say the conditions of the three "F":
·         formalization of responsibilities - a writing job descriptions and position of department;
·         formalization of communication with the programmers - the introduction of BTS;
·         formalization of the testers - creating test cases, scheduling, and account for testing.
Actually, what is different and good manufacturing process from the bad - he had not started up to itself, but streamlined and manageable.


Comments

  1. Thanks for your great information

    Looking for top software testing companies in USA? On the off chance that software needs to be useful for use, it needs to finish different arrangements of the QA assessments. DataWider has curated this list of software testing companies after broad research dependent on their client reviews, quality, loyalty, flexibility and capacity.

    ReplyDelete

Post a Comment

Popular posts from this blog

Why should I automate?

Myths about Automated Testing