Software Testing In The Product Term Paper

PAGES
17
WORDS
4713
Cite

" (nd) Nagle additionally relates in the work: "Test Automation Frameworks" that in the present environment: "...of plummeting cycle times, test automatic becomes an increasingly critical and strategic necessity." (nd) Even making the assumption that the historical levels of testing was deemed to be sufficient, and rarely ever has this been the actual case, the question is presented as to how the pace of new development and deployment can be maintained while simultaneously ensuring the reduction of risk and the retention of satisfactory testing results? In the past test automation has not been as successful as it positional might have been due to the early death of test automation development. Limiting the potential of test automation as well is the fact that: "otherwise fully capable testers are seldom given the time required to gain the appropriate software development skills. For the most part, tests have been testers, not programmers. Consequently, the 'simple' commercial solutions have been far to complex to implement and maintain; and they become shelfware." The statement of Nagle (nd) that is critically important to comprehend is the fact that: "Test automation MUST be approached as a full-blown software development effort in its own right. Without this it is most likely destined to failure in the long-term." (Nagle,

Some of the lessons learned relating to test automation are the following principles to guide the test development strategy:

Test automation is a fulltime effort, not a sideline.

The test design and the test framework are totally separate entities.

The test framework should be application-independent.

The test framework must be easy to expand, maintain, and perpetuate.

The test strategy/design vocabulary should be framework independent.

The test strategy/design should remove most testers from the complexities of the test framework." (Nagel, nd)

VI. Product Life Cycle Test Automation

The work of Dave Kelly entitled: "Software Test Automation and the Product Life Cycle: Implementing Software Test in the Product Life Cycle" states that the product life cycle (PLC) is the stages of development through which the product transitions. Kelly affirms other reports concerning the debate surrounding the usefulness of automated testing stating that that is where the 'product life cycle' (PLC) "comes in because the effectiveness of ones use of PLC will generally be "dependent upon...programming resources and the length of the PLC.' (Kelly, 2007))

VII. Product Life Cycle

The first phase of the product life cycle (PLC) is the "Design Phase" which is the phase for planning and formulation of ideas of the product. The second phase is the 'code complete phase' which is the phase in which the code is likely to be written but the bugs have not been fixed in the system as of yet. One important aspect of the product life cycle is the 'Automation Checklist' in this area it is related that affirmation to the following indicates the need for serious consideration of automation of the test:

Can the test sequence of actions be defined?

Is it necessary to repeat the sequence of actions many times?

Is it possible to automate the sequence of actions?

Is it possible to "semi-automate" a test?

Is the behavior of the software under test the same with automation as without?

Are you testing non-UI aspects of the program?

Do you need to run the same tests on multiple hardware configurations? (Kelly, 2007)

The next phase is referred to as the 'Alpha Phase' which identifies the precise time when the product is adjudged stable and in its' complete form by development and quality assurance teams. The product has transitioned from only 'basically functional' to 'a finely tuned product' in the Alpha Phase. In order to attain the status of the Alpha Stage the components of compatibility, interoperability, and performance tests are all in a state of being complete and a state of automation to the greatest extent possible. The next phase is the 'Beta Phase' which is a stage characterized by the system being for the most part, 'bug-free'. Kelly states that bugs not yet fixed at this point or in the 'Beta Phase' will "almost definitely be a slip in the shipping schedule." (Kelly, 2007)

The 'Zero Defect Build Phase' is a period "of stability where no new serious defects are discovered" with the product being stabilized and ready for shipment. The potential of automation during the 'zero defect build stage' includes regression tests which serve to make verification of correction of system bugs. The Green Master phase is the final inspection prior to shipping. Automation during the Green Master Phase includes: "...running general acceptance tests, running regression tests" (Kelly, 2007) saving time during this phase. The work entitled: "Software Performance and Testing" published by LioNBRIDGE states that qualify may be improved through the entire process of the application development lifecycle.

The work of Ram Chillarege entitled: "Software Testing Best Practices" states that the report identifies 28 'best practices' that provide contribution...

...

Listed as 'best practices' are the following:
Functional Specifications;

Reviews and Inspection

Formal entry and exit criteria;

Multi-platform testing

Internal Betas

Automated Test Execution;

Beta Programs; and Nightly Builds (1999)

Functional specifications are considered 'key' components in the development processes. Inspection and reviews " are one of the most efficient methods of debugging code." Formal entry and exit criteria expresses a process in which the idea is that:..."every process step, be it inspection, functional test, or software design, has a precise entry and precise exit criteria." (Chillarege, 1999)

VIII. Application Test Tools

Application test tools are inclusive of the following examples in Figure 2.

Examples of Application Test Tools

Product Vendor

Comments

AdaTEST IPL

Coverage, static and dynamic software testing for Ada Apps

CodeWizard

ParaSoft

C++ analysis tool

Logiscope DMS Source code analysis tools

PolySpace Suite PolySpace Detects run-time errors and non-deterministic constructs in applications at compilation time

TCMON Testwell Test coverage and execution profiling tool for Ada code.

Source: Software QA Testing and Test Tool Resources (2007)

IX. Classic Testing Mistakes

The work of Brian Marick (1997) entitled: "Classic Testing Mistakes" states that the mistakes of testing "cluster usefully into five groups" which are those of:

The Role of Testing: who does the testing team serve, and how does it do that?

Planning the Testing Effort: how should the whole team's work be organized?

Personnel Issues: who should test? And the Tester at Work: designing, writing, and maintaining individual tests (Marick, 1997)

X. Developing a Team of Testers is Key in Software Development and Testing

The team that is responsible for testing is a team that must critically possess certain qualities and characteristics in order for the maximum potential to be realized in the area of software development in the testing phase. In regards to the testing team staff, Marick states that a good tester has the following qualities and characteristics:

good tester is "methodical and systematic" good tester is "tactful and diplomatic" good tester is "skeptical, especially about assumptions, and wants to see concrete evidence;

good tester is able to notice and pursue odd details;

good tester has "good written and verbal skills (for explaining bugs clearly and concisely)" good tester has: "a knack for anticipating what others are likely to misunderstand"; and good tester has "a willingness to get one's hands dirty, to experiment, to try something to see what happens." (Marick, 1997)

Marick states that one should be particularly careful "to avoid the trap of testers who are not domain experts." (1997) the work of Ben-Yaacov and Gazlay entitled; "Real World Software Testing at a Silicon Valley High-Tech Software Company" states that the: "Silicon Valley high-tech software products teams face a troubling paradox on a daily basis - How to introduce new technology and features faster than ever, while simultaneously improving product quality and responsiveness to customer quality issues." (2001) Stated additionally are the following goals of the Silicon Valley high-tech software team:

Minimize time-to-market by delivering new technology as soon as possible

Maximize customer satisfaction by delivering a specific set of features

Minimize number of known defect in the shipped product releases ("built-in quality")

Maximize level of support to customer quality issues. (Ben-Yaacov and Gazlay, 2001)

Developed from customer input concerning satisfaction criteria are the following, which are stated to "...drive the development and quality assurance strategies are stated to be:

The ultra-rapidly evolving technology market. This is characterized by the fast-paced introduction of fundamental technologies, which are otherwise not available to customers.

It is further characterized by the introduction of successive revisions very quickly.

Customers are willing to put up with low quality to obtain this technology

The high-end technology market. Quality is more important but not as much as new, robust features.

The main-stream technology market. Quality and stability are of paramount importance." (Ben-Yaacov and Gazlay, 2001)

According to Ben-Yaacov and Gazlay before making a decision about the area of quality or the business priority to focus attention upon the questions asked include: (1) What would customers value most at this specific stage of the product life cycle? (2) Are there features that would influence customer's decisions to buy or not buy the product? And (3) What aspects of the product do customer perceive as drivers of their success?' (2001) Four key measurements of quality in software products are…

Sources Used in Documents:

Bibliography

Beizer, Boris (1990) Software Testing Techniques. Second Edition; in Pan, Jiantao (1999) Software Testing - Carnegie Mellon University 18-849b Dependable Embedded Systems. Spring, 1999; Online available at http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/.

Pan, Jiantao (1999) Software Testing - Carnegie Mellon University Dependable Embedded Systems. Spring, 1999; Online available at http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/.

Nagel, Carl. J. (nd) Test Automation Frameworks. Online available at http://safsdev.sourceforge.net/FRAMESDataDrivenTestAutomationFrameworks.htm

Software Performance and Functionality Testing (2007) LioNBRIDGE Online available at http://www.lionbridge.com/lionbridge/en-U.S./services/outsourced-testing/testing-strategy-and-planning.htm
Software QA and Testing Tool Resources (2007) APTest Manager. Online available at http://www.aptest.com/resources.html#info-white
Marick, Brian (1997) Classic TestingMistakes - Testing Foundations 1997. Online available at http://www.testing.com/writings/classic/mistakes.html
Ben-Yaacov, Giora and Gazlay, Lee (2001) Real World Software Testing at Silicon Valley High-Tech Software Company. STAREAST 2001 Software Testing Conference, May 14-18, 2001. Orlando Florida. Online available at http://209.85.165.104/search?q=cache:XgUvwaGfmUAJ:www.stickyminds.com/getfile.asp%3Fot%3DXML%26id%3D2858%26fn%3DXDD2858filelistfilename1.pdf+software+testing:+product+lifecycle&hl=en&ct=clnk&cd=43&gl=us.
Kelly, Dave (2007) Software Test Automation and the Product Life Cycle: Implementing Software Test in the Product Life Cycle. The PLC and Automated Test. Journal of Macintosh Technology (MACTECH) Online available at http://www.mactech.com/articles/mactech/Vol.13/13.10/SoftwareTestAutomation/


Cite this Document:

"Software Testing In The Product" (2007, April 23) Retrieved April 18, 2024, from
https://www.paperdue.com/essay/software-testing-in-the-product-38331

"Software Testing In The Product" 23 April 2007. Web.18 April. 2024. <
https://www.paperdue.com/essay/software-testing-in-the-product-38331>

"Software Testing In The Product", 23 April 2007, Accessed.18 April. 2024,
https://www.paperdue.com/essay/software-testing-in-the-product-38331

Related Documents
Software Testing Strategy
PAGES 24 WORDS 8852

Software Testing Strategy Computers and their applications have brought about waves of changes in various areas of science and technology. It is also gaining widespread prominence in the field of business and management. So the requirement of a quality oriented technological implementation, having a range of usage is the order of the day. The few gazillion dollars worth software industry is constantly evolving with the needs of people and organizations across

Software Testing Class Identification Date of Submittal Current Trends in Software Testing The continued growth of Cloud Computing, Software-as-a-Service (SaaS) and virtualization technologies in conjunction continual improvement in the automating of the Deming's Plan-Do-Check-Act (PDCA) processes are defining the future of software testing and quality assurance. The most rapidly evolving trends in software testing include the defining of PDCA-based automated testing networks and Testing-as-a-Service predicated Cloud Computing-based platforms (Nakagawa, Ferrari, Sasaki, Maldonado, 2011).

Software Testing -- to Outsource or not to Outsource: Outsourcing the testing of a company's new software system is one option for developers over the course of the software development life cycle. On one hand, outsourcing can be costly. However, an external source may spot defects in the system and possible openings to hackers that the developers who are too close to the project cannot -- and thus the company saves

The testing of software application internal infrastructure and coding is referred to as white box testing. White box testing is also called open box testing, clear box testing, transparent box testing, glass box testing, structural testing, or code-based testing [1]. White box testing primarily focuses on the internal structure, design, and implementation of the software with the aim of strengthening security, improving design and usability, and the flows of input

Considering the level of effectiveness that this procedure has, the assumption that many developers use it as part of software development is not out of the ordinary. It is evident that the development of useful applications, say those associated with dynamic code optimization and code vulnerability checkers has this process embedded in their development and application. Additionally, the process of instrumentation appears widely in the development of these applications.

Software Development Life Cycle Agile Software Development Agile software development is a popular software development process or methodology that has gained a lot of popularity in the recent years due to its effectiveness and ease of use. Firstly, it encourages collaboration and teamwork throughout the life cycle of development and this makes it easy to plan and implement. Agile software development is all about breaking a task into small chunks that make it