A Proposal to write the Manual for How to Perform Software Testing
Colorado State
University
Department of Electrical Engineering
JTC300
Professional and Technical Communication
Minh Anh Nguyen
Phone:
970-223-7603
Email: minhanhnguyen@q.com
Today,
most high tech activities involve software or programs. There are many software
products available in today’s fast-growing and competitive markets. Each
software product serves various purposes in numerous fields such as medicine,
science, building, accounting, agriculture, etc. These software products must satisfy users’
needs in the best way. Customers want
more from software releases with new features to be implemented in a short time
period, but they do not like to work with defected software. Releasing software with any problems or bugs
in it may affect the users’ experience, which makes a bad impact on quality reputation
of the company name or brand. Customers
will remember a bad quality product. This is one of the reasons why testing of
software before releasing is very important. [1, 2, 4, 5]
As an example to show why
software must be tested before releasing to the user, say a group of software
engineers from company A, have designed a new feature to display a login dialog
box when the user logs in to a system or computer. This new feature is an
additional request from a customer from company B, to enhance the current
software. Due to the short time period
and deadline, the software engineers did not test the software after they
developed it and assumed that, since this new feature represented just a small
change to the code, it would not affect the existing software. They also believed that no mistakes could be
made in the software since most of software engineers in the team are senior
engineers with more than 10 years’ experience.
They released this software to you as a user from company B. You also have deadline and been excited to
use this new release for a presentation.
You followed exactly the instructions which were provided to you by the software
engineers in order to install this newly released software onto your system. Alas,
when you complete the installation, a blue screen is displayed on your system
due to a bug in the software. You are not
happy with this issue because you have to explain the situation with your
manager, spend time to troubleshoot the problem, and then also describe the
problem to the software engineers. As a
result, your tasks fall behind the schedule and you do not trust any products
from the company A. This is one
situation where testing the software is very important before deploying it.
Testing cannot be ignored because it impacts all the end users of a piece of
software. If the software would have gotten tested thoroughly for all the
possible user operations this problem would have been found well in advance and
gotten fixed before the software was released.
Releasing the software without testing will mean
there is a high risk of issues being found, and failure of the software. It
would waste a lot of user time and effort when using it. It may actually result
in more serious issues, such as security breaches, data loss and corruption. Software is written by people such
as software engineers or developers. People are imperfect and make
mistakes. Some
of those mistakes are unimportant, but some of them are expensive or dangerous. Software testing
is necessary because it helps in identifying defects.
The testing process may not fix the entire defect present in the software
application, and it cannot guarantee that the software is 100% error free, but
it provides user friendliness.
I propose to
write a quick technical manual on how to perform software testing. A technical manual provides readers with the
information they need to test software in general. Software is a set of
instructions to perform some tasks. A technical manual also can serve either
very specific or very general reader groups. The biggest challenges in
designing technical manuals are often connected to determining and meeting the
needs of my intended audiences.
Audiences
of this manual are software testing students, engineers, and professionals who
would like to understand why software testing is important and the basics of
how to do software testing. This would include types, methods, techniques and
levels of testing. This manual provides enough ingredients to start with the
software testing process, and allow readers can take themselves from low to
higher levels of expertise. For engineering students who are probably not
familiar with software testing theories, I will have to provide selected
background information from my sources. My intent is to share with readers why
software testing is important and the some basic ideas of software testing.
In this manual I
will achieve the following goals:
1. the first goal is to explain the principles of software testing and some of
the basic requirements of software. 2. The
second primary goal is to provide some basic instructions of how to test
software and types of software testing. 3.
The third goal is to explain the benefits of software testing. To achieve these goals, I will rely on four books
as sources that give an overview and definitions. I also will provide some instructions on how
to perform software testing and an example of a simple test report template
that helps readers understand and prepare for some of the software testing
tasks.
Software testing is considered as one phase of the
software development life cycle. It is
the process of finding bugs in the software. It is an activity to check whether
the actual results match the expected results and to ensure that the software
system is defect free.
This
section presents my schedule, costs and qualifications for performing the
proposal manual project. The proposed
manual research project ends in a formal report that will be completed by July
29, 2015. To reach this goal, I will
follow the schedule present in table 1.
Since I already have several books and articles on software testing,
most of my time will be spent selecting and reading through the information,
finding the key results and sharing them with my audiences on testing. There is no cost associated with performing
this research manual because I obtain all my sources for from the library. My manual research will be submitted online,
therefore, there will be no cost associated with printing and spiral binding of
the manual.
Assignment
|
Due
dates
|
pages
|
Preliminary
Technical Manual Proposal
|
July 23
|
4
|
Technical
Manual (task analysis)
|
July 24
|
3
|
Progress
Report and Notes
|
July 25
|
3
|
Technical
Manual (first draft)
|
July 26
|
10
|
Technical
Manual (second draft)
|
July 27
|
14
|
Formal
report
|
July 29
|
16
|
Table1. Assignment Sequence and Timetable
Qualifications:
I graduated from Colorado State University in 2001 with a bachelor degree in
Computer Engineering. Since 2003, I have
worked as a design-for-test (DFT) engineer and a test engineer for Intel and
Agilent Technologies companies.
Presently, I am a quality assurance (QA) engineer at KeySight
Technologies in Loveland, Colorado. My
main tasks in this position are: to write test scripts or programs, test
documentations, test planning, and test reports, and to perform
software testing on various software packages, systems and frameworks. With over 12 years of
software and system testing experiences, I believe that I will be able to share
some ideas and issues that I learned from my hands-on experiences. Besides my software testing experiences, I am
interested in software
testing education, i.e., developing materials and educational tools for
teaching software testing or software engineering in general. Therefore, I
think that I qualified for writing a manual on how to perform
software testing.
In my Software Testing career, I have found that some
people think that testing is all about executing scripts against an application
with the view of trying to find as many errors in the code as possible. But there are many other activities that are
involved in testing. Some people also think that, when they are a senior
programmer, they no longer need to test their code. This only works in the ideal world, where the
developers create software that works at the first go, and does not have any
issues. In the real life, this is not often the case, because bugs appear in
the software testing. If a bug was found after the software release,
it means that time will be need to be spent finding a fix and performing more
testing on it; these tasks must take
place while the end users are using the software. The time taken to fix defects
after the software is released is significantly more than during the testing
phase. This is because the fixes need
further testing, and need to align to any maintenance releases or other
schedules that the organization has set up.
For this reason, I want to write this manual to show what is the
importance of software testing? How to perform software testing? And, what are
the various test types?
References
1.
Limaye, M. (2009). Software testing:
Principles, techniques and tools. New Delhi: Tata McGraw-Hill Education
Private.
2.
Patton, R. (2006). Software testing
(2nd ed.). Indianapolis, IN: Sams Pub.
3.
PUMA- Publication MAnagement. (n.d.).
Retrieved July 8, 2015, from http://puma.isti.cnr.it/rmydownload.php?filename=cnr.isti/cnr.isti/2004-TR-36/2004-TR-36.pdf.
4.
Javed, A. (2012). How To Improve Software
Quality Assurance In Developing Countries. ACIJ Advanced Computing: An
International Journal, 17-28.
5.
Myers, G., & Badgett, T. (2004).
The art of software testing (2nd ed.). Hoboken, N.J.: John Wiley &
Sons.
It's quite good guide, but I think that topic are undisclosed, you need to add more sources and paper writing tips . Thanks for attention!
ReplyDelete