Document 14671400

advertisement
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
174
Software Testing and improvement (STI) approach
Jitendra Kumar, Kolkata, India
Email: Jkoracle23@gmail.com Phone: +91 9038470689
1. Introduction
Software Testing and Improvement (STI) approach is a new approach of testing in which testing and improvement of
product go parallel. This approach redefines the testing process by adding software improvement process to it.
Software improvement is the improvement in the requirement document, the design and the developed work by:
(a) Observing the current limitations
(b) Observing and suggesting refinement or improvement in the current implementation
Testers can help in the improvement of the final product in two ways:
IJOART
(a) Testing the application presented to them and finding bugs with respect to the requirement and other documents
available.
(b)Thinking beyond the requirement and the design document and observing and analyzing the scope of improvement
in the current product at every step while doing testing.
Above two qualities a tester must possess and try to improve on both.
2. “I am a tester and why should I bother about improving the design or behavior of
the application “
We consider few points here
(a) Testers are the first users who get a working application after the development work.
(b)In most of the cases developer do not get enough time to think on improving the current function.
Developers are busy in developing the requirement.
(c)A tester approach is to find problems in the solution provided. And this is critical. Testers are unbiased with the application like the real user.
(d)A tester while testing can easily find
 Problem in the design and development of the application.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
175
 Function or design that can be added or improved.
(e)It is easy for a tester, while going through various flows of the application, to observe the behavior and think about
the improvement scope.
(f)Application design is job of a designer. But the design process is very complex and big. It requires lots of effort. And
there is no guarantee that
(a) The design is efficient
(b) There is no scope of improvement in the current design and
(c) There is no defect in the design.
Designer, developer, architect may make mistake because of the following:
 Lack of knowledge of the product ,application or domain knowledge
 Lack of experience (of designer, business analyst, architect or developers)
 Errors of omission where things are left out, and of commission, where something is stated that later turns out
to be wrong.
 Errors of clarity and ambiguity
 Lack of co-ordination among teams who are involved with the software. This lack of coordination may also occur
within a team.
 Trying to finish work in hurry. Sometimes, they are not given enough time to think deep or refine or improve
their work
 Devote less time to their work
 Unable to visualize real world scenarios and exception that might occur in future
 High Complexity. This high complexity may be in (a) requirement (b) design (c) construction
 Complexity in one phase leads to the complexity in other subsequent phase and the probability of committing
error is high in this case.
 Work was not reviewed properly
 Miss from them(functionality miss, requirement miss etc.)
So, above are the main reasons which are enough for testers to have doubts on the software presented to them for testing.
IJOART
Trust no one and doubt everything and finally clear your doubt.
Testers could bridge this gap or the error made by the designer, the developer or the architect and it will be very helpful
for a testing organization to make an impressive impact on the client.
3. Three examples
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
176
Below examples will help in understanding the need for a tester to be involved in the improvement of the application.
Example 1:
For a product selling website there are “Home Page”, “Customer info Page”, “Verify User Page” ,”Payment Page” and
”Exit Page”.
To purchase a product a user has to start from “Home Page”. In each page, except “Home Page” and “exit Page”, there
are two links
(a) Link to save and continue later  On clicking this link, a unique id of workobject is generated and all the previous
product purchase steps are saved. Using this id the user can later continue this purchase process by clicking on the link
to retrieve the earlier saved product by visiting the website again.
(b) A link to retrieve the earlier saved product  User has to give unique id to retrieve the earlier saved workobject containing the earlier product purchase steps.
Flow diagram is given below:
IJOART
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
177
IJOART
Figure 1
Can you think about the problem in this design without looking at the solution below?
In this design, a user will face problem while doing the below steps:
(a) The user is purchasing and in the middle the user wants to leave the purchase process and continue the purchasing
on some other day. So, the user saves the application (using the link to save and continue later) and gets the workobject
id.
(b)The user closes the browser.
(c)The user opens the browser and goes to the home page in order to retrieve the saved workobject.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
178
(d)But here at the home page, the user finds that there is no retrieve link to retrieve the saved workobject. The Retrieve link is present in the next page (customer info page). The user cannot go to customer info page without selecting
any product.
(f)The user has to select some products (in the home page) in order to navigate to the customer info page containing the
retrieve link. This second time forced product selection to go to the customer info page is unnecessary.
And this problem can be avoided by adding a retrieve link in the home page.
Solution: a retrieve link in the home page (see Figure 2)
IJOART
Figure 2
A tester must unearth scenarios that are not mentioned anywhere. Such observations must be shared and clarified
from other stakeholders.
Don’t hide and shy from asking questions and clearing your doubt.
Example 2:
Search User
Requirement (as mentioned in the requirement doc): User should able select user after searching in the system.
Current implementation or design:
There is a [Select user] button and on clicking this button, a list of all the users present in the system is populated and
the operator can select any value from the list.
In this implementation, the system takes considerable time to populate the list. Database query cost is high for this
search.
Can you suggest some improvement on this issue?
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
179
Improvement:
Store the 200 most recently used customers in a table and fetch those records instead of fetching all the records in one
go. And if that does not suffice the purpose then user is permitted to search and get all the records on demand. This solution can also be improved. This is only an example.
The logic should be such that the user can get the desired record with minimum cost.
Example 3:
Help text for input fields:
There are many fields where help text is very useful to a user.
Examples are given below:
Date field where user can input date using the keyboard in addition to the date picker.
Below implementation is not good. It does not tell a user about the format of the input date.
IJOART
Figure 3
Below figures show good implementation:
Figure 4
Figure 5
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
180
Date can be of any formats i.e. DD/MM/YYYY, MM/DD/YYYY, YY/MM/DD
There are many formats of inputting values in the date field and the formats are different everywhere. So before a user
does any error in inputting the data in invalid format, help the user to avoid by presenting the input format help text.
Similarly, for a date field which takes only future date, there can be a help text indicating that this field will take only
future date and a user will know the input criteria and so less chance of validation error. This will save time and cost.
Below figure has help text for a particular field which guides the user about input limit in the field.
IJOART
Figure 6
This will again save time and cost.
With the three examples above, it is clear that because of faults in earlier phases of the software development life cycle
some issues occur while doing testing. Testers are the first user and have the first look at these defects and limitations.
4. Few improvement areas that a tester can look into
Below are the few improvement areas:
(a)Data improvement: The tester can help in improving the data flow across various systems. Can suggest datatype of
variables, data size, useless fetching of data from the database, time taken to load all the data, exception handling when
array is full etc.
(b)Process improvement: Removing useless process, refining existing process and its flows, determining limitations of
processes, improvement in the way various processes interacts etc.
(c)Function improvement: Functions or methods are part of process and similar things apply for functions also.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
181
(d)User experience with the application: User experience with the system, problem area when a user interacts with the
system using keyboard, mouse or any other external device, issues because of language, region, their country policy,
internet connection speed, age etc.
(e)Graphic user interface improvement: Graphic user interface, verification in different browsers. Page generally looks
different in different web browsers, required field marker missing, alignment issues of fields, scroll bars issues etc.
(f) Security improvement: Few of the security issues are mentioned below:
Buffer overflow, format string problems, integer overflow, SQL and command injection, improper error handling, weak authentication and data protection, information leakage, improper file access, race conditions
(g)Limitations that might occur in future: We have to look for scenario that might occur in future.
Some examples are:
 Length of a field that might change in future and because of this, many changes will occur in different applications or webservices integrated with the current application. Changing everywhere is not feasible or it will be
very complex. So, future scenarios should be considered and reported.
 The year 2038 problem may cause some computer software to fail at some point near the year 2038(32bit issue).
IJOART
How you add value to the customer?
Software requirement specification writers and designers are also human being and so, can also make mistake. Tester
should be able to detect those mistakes also.
In most of the cases, customer lacks technical knowledge and if the testing team can identify and highlight the defects
and limitations in the requirement document and the design (in addition to the normal defect detection in the development) then there is a fair chance that the testing team will get appreciation from the customer and it will increase
confidence of the client in the testing team.
This confidence in the testing team will certainly help the organization of the testing team in gaining future projects
from the client.
This will help in improving the credential of the testing organization.
5. Defect finding depends on the skill and experience of a tester
We already do application improvement in GUI part. Generally, GUI things are not mentioned in the Software requirement documents.
For most of the application GUI is not defined or written explicitly but we tester, on seeing the button misalignment,
text overflow and other issues, log them as defect. We do this based on our intuition. Testers do not fear of rejection of
defects on GUI issues although they are not mentioned in the requirement document. This is because we are familiar
and experienced in GUI. Daily we see GUI of different websites and a standard of GUI is set in our mind. This standard is
based on our experience and usage of the technology.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
182
Two Testers story:
Gopi is from a village and has no experience of internet. Saniya is a city girl and is an internet geek.
Both of them are given a task of testing a comment text box.
Currently, the box functionality is implemented in such a way that on entering text more than its current visible boundary, the comment box reshapes itself to accommodate the entire entered text. The size of the box is dynamic and it expands towards right and bottom when long texts are entered. In the requirement document, it is not written that the
resizing or reshaping should not take place on entering large comments.
Now, when Gopi tests this function, he does not find any problem. He sees the resizing or reshaping of the box as normal behavior and this is according to the requirement document. According to Gopi this will help a user to see what ever
has been entered. Gopi has no concept of scroll bar.
And according to Gopi, there is no defect in this function.
The same function is given to Saniya. Saniya instantly logs a defect for auto reshaping or resizing of the comment box.
She thinks that there should be horizontal and vertical scroll bars.
IJOART
By the above scenario, we see that finding defect also depends on the user experience.
Gopi could have proactively reached to the Software requirement writer and clarified the above observation instead
of passing the test.
This questioning ability could have saved him when he saw this behavior which is not mentioned in the software requirement document.
So, Question and clarify everything. No scope of ambiguity or doubt.
6. STI in Agile approach of software development
In Scrum or agile software development methodology, requirements are not fixed or it changes frequently.
In this a tester can give constructive suggestion in the improvement of the requirement document, the design and the
development work.
In agile approach of software development, a tester can play more important role (when compared to other software
development approach) in improving the quality of software using STI methodology.
Requirement and software evolves during iterations. Tester can give suggestion in every iteration.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
183
7. STI approach by illustration:
Figure 6 below represents a design of an application with different flows.
Arrow represents the flow direction, green rectangles are the various processes in the application and the rectangles A
and Z are start and end state of the application respectively.
IJOART
Figure 7
The same design is developed by the development team and this is given to the testers to test it.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
184
Figure 8
The tester while testing finds that (a) the processes J,H,Q and (b)the flows D to H,J to K and O to K (indicated by red in
the figure 8 above) have some limitations and there are scope of improvement in these.
The application prsented to the tester is working in accordance with the requirment document and the design.But few
processes and flows can be improved for better quality product. This observation also leads to the enhancement and
improvement in the design and the requriement document.
8. Detailed STI approach:
Time has come to add “Our Thinking weapon” to the testing activity.
You should ask question to yourself about the application, state achieved and process inside.
IJOART
By asking questions in every step of the application you will improve your understanding.
And by improving your understanding you can contribute in improving the design or limitations of the application.
Following are few points of STI approach which will help in gaining the customer confidence:
(a) Work as if you are a part of the customer. Put yourself in the customer shoes.
(b) Understand the requirement clearly.
Read and understand all the documents like use cases, class diagrams, UML models, requirements and design
documents etc.
Understand the business behind any process/function/requirement.
Ask yourself questions like
What are the reasons behind this requirement?
What is the significance of this process state?
Can we improve on this?
(c) There must not be any doubt in the requirement, design, and process flow. If your understanding is complete
then only you can give fruitful ideas. Otherwise, your suggested idea will show your lack of understanding. Talk
to developer, business analyst, manager, team lead, team member and improve your understanding.
(d) Feel yourself as a business user using the application.
(e) Understand the real world scenarios that can occur in your application and align your testing with those scenarios.
(f) End to end testing is must to ensure minimum defects.
(g) Achieve every state of a workobject or workitem.
(h) The team should discuss and write the test scenarios in a meeting.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
185
(i) Test scenario creation should be a team work and not assigned to one individual only.
A team can produce better and effective test conditions and scenarios than an individual
This will also help in removing any misunderstanding about the application. Tester can ask for team help for understanding the requirement, design or implementation.
(j) Weekly team meeting(WTM):
Duration: 2 hours on Friday (or any day agreed by the team).Each team member will answer the following:
Areas he/she felt difficult to understand or difficult to test? Why that area is difficult?
Areas that can be improved
Limitations of the software
Good aspects of the software
Other functional and non-functional observations
WTM Document: A document should be maintained and updated with the topic and results discussed in the
meeting.
This document can be used for future reference.
(k) Change your shoe: Try different shoes .Talk to developer, designer, business analyst, client about current implementation, queries and improvement plan. Try to see the things with their viewpoint. This will help in enhancing your knowledge, which can be helpful in testing and improvement process.
(l) Open the black box: If you are allowed to see the code, then do not hesitate to see the code. Open the black
box frequently to see the process and function and its implementation .Use this enhanced knowledge in testing.
Code is an important repository for a tester.
Don’t test anything blindly .Your attitude should be “Think, test and think”.
IJOART
9. Result
(a) Normal testing process produces the following result shown in the flow diagram below:
A normal testing process involves many steps and processes. In the diagram they are represented with rectangles. These
processes and steps produces a satisfactory product, represented by a circle here. The customer is satisfied after seeing
the product.
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
186
IJOART
Satisfied Customer
Figure 9
(b) STI approach produces a better result as shown in the flow diagram (figure 10) below:
Compared to normal testing process, it also contains green rectangles which represent continuous improvement and feedback process. This helps in producing a high quality product with added value and it is represented with a circle. This circle contains a green concentric circle. This green circle is because of the green rectangles. This makes a customer happier, more satisfied and more confident when compared to normal testing
approach.
STI Approach
Copyright © 2013 SciResPub.
IJOART
International Journal of Advancements in Research & Technology, Volume 2, Issue 12, December-2013
ISSN 2278-7763
187
IJOART
Figure 10
Happier, satisfied and confident customer.
ACKNOWLEDGMENT
I wish to thank Ishani for her review and important suggestion to improve this work.
REFRENCES: NO REFRENCES
Copyright © 2013 SciResPub.
IJOART
Download